Articles of shell

如何区分本地和远程terminal?

这不是一个常见的情况,但我发现自己意外地把命令插入错误的terminal。 我还没有损坏任何重要的东西。 所以在我之前,有什么区分本地和远程terminal会话的最佳方法?

为所有用户更改Linux命令提示符的最有效方法?

我有几台机器和主机名是真的很长..即companyname-ux-staging-web1.companyname.com。 所以我的提示看起来像 [root@mycompany-ux-staging-web1 ~]# 我想尽可能缩短所有机器上所有用户的工作量。 从我读到的我有几个select,但他们都有他们的缺点。 我可以更改主机名,但这可能会影响应用程序。 不是一个很好的select。 我可以通过编辑现有用户的所有.bashrc,并为潜在的新用户编辑/etc/skel/.bashrc,在login时为所有用户更改$ PS1。 在10台以上的机器上,这是很多的工作。 我最好的select是什么,或者我忽略了什么?

防止“cd”记住遍历的符号链接

假设你有目录〜/ mytool,它们可以连接到/ usr / local / mytool。 然后, cd mytool将当前目录保留为〜/ mytool,这可能会导致脚本的行为不正确。 有没有办法避免这种行为? 用一些Googlesearch,我看到你可以做到这一点如下: cd $1 ; cd `pwd -P` 有没有切换到“CD”? 环境variables?

将文件从子文件夹移到当前文件夹

说我在Ubuntu服务器上的文件是这样的: /folder1/folder2/ 我目前在folder1 ,并且我想将所有文件/文件夹(recursion)从folder2到当前文件夹。 我怎样才能做到这一点?

不小心在Linux服务器上运行chmod 775 -R /(不是./)(RedHat)

我不小心运行了“chmod 775 -R /”而不是“chmod 775 -R ./”,并改变了所有的权限,现在服务器坏了。 任何人都知道我可以如何快速解决这个?

SSH – 运行一个命令,然后给我一个shell

这个问题让我想起了我自己的一个问题 。 我想创build一个ssh到机器的别名,运行一个命令(在这种情况下, cd到提供的path),然后给我一个shell。 我已经运行了一百个这样的变体: $ ssh user@machine 'cd /some/path/ && bash -i -l' 这是我可以做的最好的。 它给了我一个正确的目录bash提示符,但没有作业控制,没有能力使用箭头键(和一些其他的快捷键)。 是否有捷径可寻? 我不能在我的bashrc或者configuration文件的末尾轻松地做到这一点,因为我想要去的path会有所不同(我会把它作为别名的parameter passing),偶尔我甚至会ssh到那台机器根本不想去任何奇怪的 – 主目录是好的。

Linux:如何改变一堆文件的扩展名?

我有一个目录充满了以.xxx结尾的文件。 ( Apple.xxx , Orange.xxx , Bannana.xxx ) 我想将其扩展名更改为.yyy。 ( Apple.yyy , Orange.yyy , Bannana.yyy ) 使用基本的shell命令完成这个最快的方法是什么?

Unix分离了多个具有“&”(后台执行)的命令

在Unix中分离常规命令是将分号放在最后,如下所示: cd /path/to/file;./someExecutable; 但它似乎不适用于这样的命令: ./myProgram1 > /dev/null & ./myProgram2 > /dev/null & =>./myProgram1 > /dev/null &;./myProgram2 > /dev/null &; 有什么办法可以分开这些命令吗? 另外,如果我复制粘贴到命令提示符下,如果是低于2的情况下是相当的? 谢谢。 cd /path/to/file;./someExecutable; cd /path/to/file; ./someExecutable;

用名称中的<Down>删除文件?

所以,在一个CentOS盒子上,我意外地在vim编辑器中执行了:w<Down> ,其中“ <Down> ”实际上是按下键盘上的向下箭头键(在屏幕上显示为“ <Down> ”),现在我有一个名为“ <Down> ”,我似乎无法摆脱; 运行“ rm <Down> ”(字面上拼写“小于,D,o,w,n,大于”)给出语法错误。 我怎样才能摆脱这个文件与时髦的名字?

在PowerShell中排队重启

我正在开发一个重启大量计算机的项目。 其中一个重要的要求是重新启动,以便所有机器不会立即重新启动(速度太快,会导致SAN问题)。 我试图通过限制50个并行操作并添加15秒的延迟(每分钟200次重启)来尝试在工作stream中执行此操作。 workflow Bounce-Computer { param( [string[]]$Computers ) foreach -parallel -throttlelimit 50 ($computer in $Computers) { Restart-Computer -PSComputerName $computer -Force Start-Sleep -Seconds 15 } } 但是我遇到了一个问题,如果WMI在目标计算机上被破坏,工作stream程将会挂起。 除了在所有目标机器(有几千个)上修复WMI之外,我将如何以受控的方式去做这样的事情呢? 工作?