Shell小技巧 和高手的区别

136 阅读2分钟

参考:你可能不知道的SHELL

  • cd –
    回到上一次的目录 。
    场景举例:当前目录为/home/a,用cd ../b切换到/home/b。这时可以通过反复执行cd –命令在/home/a/home/b之间来回方便的切换。
    (陈皓注:cd ~ 是回到自己的Home目录,cd ~user,是进入某个用户的Home目录)

  • cd ~
    可以进入当前用户目录

  • > file.txt
    创建一个空文件,比touch短。

  • wget --random-wait -r -p -e robots=off -U mozilla http://www.example.com
    下载整个www.example.com网站。(注:别太过分,大部分网站都有防爬功能了:))

  • curl ifconfig.me
    当你的机器在内网的时候,可以通过这个命令查看外网的IP。

  • 执行命令 export 可以打印出所有环境变量

    LANG=zh_CN.UTF-8
    LC_TERMINAL=iTerm2
    LC_TERMINAL_VERSION=3.4.20
    LOGNAME=zhaojingchun
    
  • 在 bash 里,使用 Ctrl-R 而不是上下光标键来查找历史命令。

  • history | grep <command>
    查找历史命令中包含指定关键字的命令。
    场景举例:如果你想查找之前用过的某个命令,可以用history | grep <command>来查找。

  • !!
    运行上一个命令。
    场景举例:如果你刚刚输入了一个需要sudo权限的命令而忘记了加sudo,可以用sudo !!来重新执行上一个命令并加上sudo

  • !$
    获取上一个命令的最后一个参数。
    场景举例:如果你刚刚创建了一个目录mkdir /path/to/dir,然后你想进入这个目录,可以用cd !$

  • Ctrl-A
    将光标移动到当前行的开头。

  • Ctrl-E
    将光标移动到当前行的末尾。

  • source <file> 或 . <file>
    在当前shell环境中执行文件中的命令。
    场景举例:如果你修改了某个配置文件(如.bashrc.bash_profile),可以用source <file>. <file>来重新加载它,而无需重启终端。

  • fg
    将后台运行的任务调到前台。
    场景举例:如果你用Ctrl-Z将一个任务挂起,可以用fg命令将其调回前台继续运行。

  • bg
    将挂起的任务放到后台继续运行。
    场景举例:如果你用Ctrl-Z将一个任务挂起,可以用bg命令将其放到后台继续运行。

  • <command> &
    在后台运行一个命令。
    场景举例:如果你想在后台运行一个长时间执行的任务,可以在命令后加上 &

  • nohup <command> &
    使命令在退出终端后继续运行。
    场景举例:如果你想在退出终端后继续运行一个任务,可以用 nohup <command> &

  • <command> && <next_command>
    在前一个命令成功执行后再执行下一个命令。
    场景举例:如果你只想在前一个命令成功后再执行下一个命令,可以用这个命令。

  • <command> || <next_command>
    在前一个命令失败后再执行下一个命令。
    场景举例:如果你想在前一个命令失败后再执行下一个命令,可以用这个命令。

  • <command> ; <next_command>
    无论前一个命令是否成功,都会执行下一个命令。
    场景举例:如果你想连续执行多个命令,可以用这个命令。