$PATH 中有一些我不想要的路径。我不确定他们是如何到达那里的;他们不是来自我的.profile. 有没有办法确定哪些脚本正在修改 $PATH?
我想将某些 USB 端口专用于某些设备。我怎样才能做到这一点?
例如:我希望 ttyUSB0 是我的鼠标,而 ttyUSB1 是我的键盘(总是)。我想确定 Linux 的启动永远不会交换它们。
实际上,问题是我有 XBee 通常去 USB0 和第二个 FTDI 去 USB1,出于安全原因,我总是希望它们在我正在运行的代码中具有相同的地址。
亲切的问候
如何编辑我的.profile文件来为我的PATH变量设置一个永久值?
是否还有其他文件需要编辑?(这是在 CentOs 6.2 上)
我终于屈服并决定将 XP 更新到 SP3。关于 SP2+ 困扰我并让我推迟这么长时间的一件事是,它需要文件类型和资源管理器动词的完全限定路径。
例如,在 SP1 中,您可以执行以下操作:
REGEDIT4
[HKCR\txtfile\shell]
"@"="Notepad2"
[HKCR\txtfile\shell\Notepad2]
"@"="notepad2.exe %1"
Run Code Online (Sandbox Code Playgroud)
假设它notepad2.exe在路径中,那么您可以通过直接运行它或从其上下文菜单中选择Notepad2来打开文本文件。
在 SP2+ 中,这将不起作用,而是显示打开方式...对话框。要修复它,您必须使用可执行文件的完全限定路径:
[HKCR\txtfile\shell\Notepad2]
"@"="e:\tools\editors\text\notepad2\notepad2.exe %1"
Run Code Online (Sandbox Code Playgroud)
此更改(使PATH变量基本上毫无意义)是添加到 SP2 的Great Security Update的安全增强功能,它的意义在于它可以防止路径注入攻击。
然而,这样做的麻烦多于其价值,因为如果病毒可以修改您的系统路径变量,那么它已经可以访问系统并可以为所欲为。而且,它只影响资源管理器;从命令提示符运行的东西仍然像以前一样工作。此外,它仅适用于主命令;也就是说,如果infectednotepad.exe在路径中,以下仍然有效:
"@"="e:\tools\misc\shellexecute.exe /c infectednotepad.exe %1"
Run Code Online (Sandbox Code Playgroud)
这种变化并没有真正提供任何额外的安全性;相反,它所做的只是让用户不得不花费数小时在可以注册文件类型、应用程序和资源管理器动词的 6-10 个不同位置中的每一个中扫描注册表,搜索不合格的路径并替换每个和每一个(仅替换主条目HKCR是不够的,因为其他位置的级别会使问题复杂化和混淆)。
此外,微软显然意识到他的“功能”毫无意义,因为他们在 Vista 中删除了它。在 Windows 7 中,第一个示例的工作方式与 SP1 中的一样。
“修复”这些项目对于已经配置并使用了任何时间的系统来说可能是一项不可逾越的任务,尤其是在添加了第三方程序的情况下。
有没有办法关闭这个“功能”并让PATH变量再次发挥作用?
windows-registry windows-explorer path file-types windows-xp
我可以设置驱动器(卷),但不能设置目录路径或文件路径。chkdsk(with /h) 实用程序显示我可以设置可选参数pathand filename,但我收到以下消息。
>chkdsk c:\Users /f
The drive, the path, or the file name is not valid.
Run Code Online (Sandbox Code Playgroud)
以下命令与Microsoft 帮助页面中的命令相同,但我仍然遇到相同的错误:
>chkdsk *.* /f
The drive, the path, or the file name is not valid.
Run Code Online (Sandbox Code Playgroud)
这有什么原因不起作用吗?我使用的是 Windows 7 Pro x64,文件系统是 NTFS。
我是一名 Linux 用户,在 Windows 上花费了一些时间,我试图了解一些 Windows 范式,而不是与它们作斗争。我注意到以传统方式安装的每个程序都将可执行文件添加到
C:\Program Files
Run Code Online (Sandbox Code Playgroud)
然后向包含整个路径的桌面/开始菜单添加快捷方式。但是,没有包含软件链接的公共目录,即
C:\bin\bar.exe链接到
C:\Program Files\foo\bar.exe
Run Code Online (Sandbox Code Playgroud)
因此,安装应用程序后,使用该应用程序的唯一方法是通过菜单或导航到文件系统中的可执行文件。不能简单地Win-R打开运行对话框,然后键入bar或bar.exe
作为是可能的notepad或mspaint。我意识到 Windows 8 通过其他可怕的开始屏幕对此进行了改进,该屏幕确实支持键入应用程序的名称,但这同样取决于已为此注册的应用程序。
通过C:\Program Files递归添加到 Windows 路径会造成任何伤害吗?我确实意识到会出现名称冲突(即卸载.exe),但还会有其他问题吗?
我将常用的 powershell 脚本存储在%USERPROFILE%\Bin. 我创建了一个USER_BIN环境变量,我PATH通过Control Panel > System and Security > System > Advanced system setting > Environment Variables.
当我在cmd 或 powershell 提示符中输入存储在Bin, 即中的脚本的名称时,my-script.ps1我收到消息my-script.ps1 : The term 'my-script.ps1' is not recognized as the name of a cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
如果我提供完整路径,即C:\Users\Ari\Bin\my-script.ps1脚本工作正常。
我想循环文件
for f in `grep -rsl "foo" . `: do sed -i -- "s/foo/bar/g" $f; done;
但由于文件名包含空格,因此只要找到空格,就会拆分文件名。
如何将文件名及其空格传递给do块?
path ×10
bash ×2
windows-8 ×2
.profile ×1
centos ×1
chkdsk ×1
command-line ×1
file-types ×1
grep ×1
installation ×1
linux ×1
osx-lion ×1
powershell ×1
script ×1
sed ×1
solaris ×1
usb ×1
windows ×1
windows-7 ×1
windows-xp ×1