分类 操作系统 下的文章

https://www.linuxquestions.org/questions/linux-newbie-8/telinit-vs-init-539578/

这里给出结论:从用户的角度来说,是没有任何区别的。

但是如果从实际上出发的话。使用telinit更加容易理解。init本身是一个应该只运行在pid==1情况下的程序,它是Linux系统在启动后执行的第一个进程,它负责一系列的系统初始化工作。因而,“所有其他进程都是init的子进程”的说法是正确的。也就是说,init初始化了哪些服务,系统就会进入哪种状态,这也正是系统运行级别runlevel的原理。

正因为init是一个用于初始化系统的程序,所以它理论上不应该被重复执行,所以从便于用户理解的角度来说,应该给予修改系统运行级别的指令一个单独的命令,它负责告诉(tell)init,用户要求切换至另一种系统运行级别,这就是telinit。实际上,由于init内部在设计的时候就已经考虑到了这种可能性(即runlevel的切换),实际上在init执行任务前会对自身的进程编号pid进行判断,在进程号不为1的时候就执行telinit的功能,即允许通过直接调用init指令来更改系统的运行级别。因而在不少情况下,是允许直接创建一个telinitinit的链接来实现等同功能的——因为在多进程模式下,用户是创建不了pid==1的进程的。

查找

grep -iRl 'your-text'

替换

find /your/path \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i 's/old-string/new-string/g'

还能自动贴心地跳过.git目录

红帽系的系统安装moreutils包,可以提供errno命令,快速查看errno含义。

不记得之前为什么用过了,反正在配置VS2019+CUDA9.2的时候用过这个方法,至于有没有用,为啥用都忘记了

https://devtalk.nvidia.com/default/topic/1049858/cuda-setup-and-installation/msvs-2019-and-cuda-10-1-issues/

复制一下防止原链翻车

I found a solution to this.

  1. Copying the content of the folder: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\visual_studio_integration\MSBuildExtensions

    to:

    C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations

  2. Close all running instances of Visual Studio. Go to C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\Extensions\NVIDIA. Create a directory here called CUDA 10.1 Wizards, then create a sub-directory underneath it called 10.1.

  3. In this 10.1 sub-directory, create shortcuts to: (VS will not allow to create the shortcuts directly here. Create the shortcuts on the desktop and move them from there to this 10.1 sub-directory):

    C:\ProgramData\NVIDIA GPU Computing Toolkit\v10.0\extras\visual_studio_integration\CudaProjectVsWizards\2019\extension.vsixmanifest

    and

    C:\ProgramData\NVIDIA GPU Computing Toolkit\v10.1\extras\visual_studio_integration\CudaProjectVsWizards\Nvda.Vsip.CudaWizards.dll.pkgdef

  4. Once these shortcuts are in place, open a Visual Studio 2019 developer command prompt in administrator mode and run 'devenv.com /setup /nosetupvstemplates'.

  5. Re-start Visual Studio 2019 and see if the project templates are available now.

All information collected above are from the forums. Only summarizing it here.

However the intellisense does not work.

Thanks.

今天配VS2019+CUDA10.0的时候又看到这个了,码一下

这波很诡异,NSight for Visual Studio Edition已经卸载过了,扩展里的选项卡居然还在。重置一下VS试试。

之前拿appveyor编译hadoop试手的时候,突然发现了一个严肃的问题:Windows下没有自带默认的命令行下载工具。之前用Windows的时候一直是图形界面操作,需要敲命令的时候才打开cmd,然而我需要指明从网络上下载某个文件

之后看到Stackoverflow上有人推荐用Powershell,Powershell有内置的下载功能,然后去试了一下。觉得也是时候与时俱进一下了。

示例如下:

$cloent = new-object System.Net.WebClient
$client.DownloadFile("https://github.com/protocolbuffers/protobuf/releases/download/v2.5.0/protoc-2.5.0-win32.zip", "C:\protoc-2.5.0-win32.zip")

顺带码一下操作zip文件的Compress-Archive / Expand-Archive命令。

结果发现set不能用了,对应的Get-Value命令里由缺失了不少环境变量,最后决定换回cmd,因为不想将一个工作拆分为cmd和Powershell两个脚本= =

然后决定使用cmd调用Powershell,问题出在这里:Powershell函数的参数需要双引号。cmd有转义符吗?

又是一个让人沉思的问题。咕果一下之后发现,有是有,不过是^(Ctrl+6),而且似乎对双引号没有作用。
此时顺便查了一下,Powershell的转义符是`esc下面那个),不过由于Powershell相对于cmd是个新产品,功能还是能正常使用的。

最后解决cmd向Powershell传递双引号的方法是 连着三个双引号"""。特别神奇,不知道为什么。
管他的,只要能用就行了