任务。
Unix中的Links就好比是Windnows里的快捷方式,它让你快速访问到某些文件。Links通过ln
命令来创建。它可以有两种类型:hard和symbolic。每种类型都有不同的属性,用于不同的事务。(了解更多)
这里有许多你可以使用Links的例子。比如,我们在桌面有一个文件夹叫做Scripts,干净地放着ix我们常用的bash脚本。每当想调用这些脚本时,我们需要这么做:
~/Desktop/Scripts/git-scripts/git-cleanup
显然,每次输入此绝对路径,并不是很方便。相反,我们可以为Script文件夹在/usr/local/bin
下创建一个symlink,这就让在所有目录下都可以执行Scripts里的脚本了。
sudo ln -s ~/Desktop/Scripts/git-scripts/git-cleanup /usr/local/bin/
有了创建好的symlink,我们现在可以打开任一个命令行窗口,然后直接通过脚本文件名执行它:
使用ssh命令,用户可以快速连接到远程主机,并登录其Unix shell。 这使得我们可以方便地直接从本地计算机,向终端在服务器发出命令。
要建立连接,只需给出正确的ip地址或url。首次连接到新服务器时,将会有某种形式的身份验证。
如果要快速执行在服务器上的一些不需要登录的命令,你只需在url后添加命令即可。该命令将在服务器上运行,然后返回结果。
ssh username@remote_host ls /var/www
some-website.com
some-other-website.com
有很多ssh
可做的事情,比如创建代理和隧道,使用私钥加密你的连接,传输文件等等。你可在这个指南里读到更多。
grep
是标准的Unix工具,用于在文本中查找字符串。它以文件或流作为输入,让其内容跟正则表达式做运算,并返回所有匹配的行。
需要过滤大型文件时,此命令很实用。具体来讲就是,我们可以把grep
和date
命令一起使用,用来搜索大的日志文件,并生成只包含今天错误信息的新文件。
// 搜索今天的日期(格式为yyyy-mm-dd)并将结果写入新文件。
grep "$(date +"%Y-%m-%d")" all-errors-ever.log > today-errors.log
另一个很棒的、处理字符串的命令是sed。它比grep
更强大(也更复杂),几乎可执行任何与字符串相关的任务,包括添加,删除或替换字符串。
许多Unix命令,包括本文提到的一些,在向它们添加所有选项后,往往变得很长。为让它们更好记,你可以使用内置的alias
命令创建简短的别名:
# 创建用于启动本地Web服务器的别名。
alias server="python -m SimpleHTTPServer 9000"
# 不是键入整个命令只需使用别名。
server
Serving HTTP on 0.0.0.0 port 9000 ...
只要保持命令窗口打开,别名就保持有效。要使其长久被记住,你可以将alias
命令添加到.bashrc
文件中。
总结
以上就是我这总结出的12个Web开发者应该了解的命令行,可能不是那么完整和全面,那么希望如果大家还了解什么命令或没有在文中提到的,也欢迎大家补充和讨论。