常用命令行使用技巧,有些你可能已经知道,有些可能不知道。
基础
💻 学会使用 Vim (vi
)编辑你的文本
$ vi text.txt
💻 学会使用 man
查阅文档
$ man ls
💻 学会使用输入输出重定向:<
和 >
,学会使用重定向管道:|
$ echo 'Hello World' > hello.txt
$ ls | grep .txt
💻 学会使用任务管理工具 ctrl+Z
, ctrl+C
, jobs
, fg
, bg
, kill
等
<ctrl+z>
[1] +65847 suspended vi hello.txt
$ jobs
[1] +suspended vi hello.txt
💻 学会使用 ssh
进行远程命令行登录,以及 ssh-agent
,ssh-add
等命令来实现基础的无密码认证登录。
$ ssh root@<yourserver>
💻 学会基本的文件管理工具:ls
和 ls -l
(了解 ls -l
中每一列代表的意义),less
,head
,tail
和 tail -f
(甚至 less +F
),ln
和 ln -s
(了解硬链接与软链接的区别),chown
,chmod
,du
(硬盘使用情况概述:du -hs *
)。 关于文件系统的管理,学习 df
,mount
,fdisk
,mkfs
,lsblk
。知道 inode 是什么(与 ls -i
和 df -i
等命令相关)。
💻 学习基本的网络管理工具:ip
或 ifconfig
,dig
💻 学习 git
,并熟悉使用基于 git 的代码托管平台,如:Github, Gitlab, Bitbucket。
💻 熟悉正则表达式,学会使用 grep
/egrep
,它们的参数中 -i
,-o
,-v
,-A
,-B
和 -C
这些是很常用并值得认真学习的。
日常必备
💻 在 Bash 中,可以通过按 Tab 键实现自动补全参数,使用 ctrl+r 搜索命令行历史记录(按下按键之后,输入关键字便可以搜索,重复按下 ctrl+r 会向后查找匹配项,按下 Enter 键会执行当前匹配的命令,而按下右方向键会将匹配项放入当前行中,不会直接执行,以便做出修改)。
$ vi he <Tab>
$ vi hello.txt
<ctrl+r>
$ vi hello.txt
bck-i-search: vi _
💻 在 Bash 中,可以按下 ctrl+W 删除你键入的最后一个单词,ctrl+U 可以删除行内光标所在位置之前的内容,alt+B 和 alt+F 可以以单词为单位移动光标,ctrl+A 可以将光标移至行首,ctrl+E 可以将光标移至行尾,ctrl+K 可以删除光标至行尾的所有内容,ctrl+L 可以清屏。键入 man readline
可以查看 Bash 中的默认快捷键。内容有很多,例如 alt+. 循环地移向前一个参数,而 alt-* 可以展开通配符。
💻 键入 history
查看命令行历史记录,再用 !n
(n 是命令编号)就可以再次执行。其中有许多缩写,最有用的大概就是 !$
, 它用于指代上次键入的参数,而 !!
可以指代上次键入的命令了(参考 man 页面中的“HISTORY EXPANSION”)。不过这些功能,你也可以通过快捷键 ctrl+R 和 alt-. 来实现。
$ history
10245 history
10246 vi hello.txt
💻 cd 命令可以切换工作路径,输入 cd ~
可以进入 home 目录。要访问你的 home 目录中的文件,可以使用前缀 ~
(例如 ~/.bashrc
)。在 sh 脚本里则用环境变量 $HOME 指代 home 目录的路径。pwd
可以查看当前目录位置。
💻 如果经常使用 autojump 跳到一个特定路径,想要回到前一个工作路径:cd -
。
$ pwd
/User/hanggi/great/works
$ j hell_
/User/hanggi/hello
$ cd -
~/great/works
💻 如果你输入命令的时候中途改了主意,按下 alt-# 在行首添加 # 把它当做注释再按下回车执行(或者依次按下 ctrl+A, #, enter)。这样做的话,之后借助命令行历史记录,你可以很方便恢复你刚才输入到一半的命令。
💻 使用 xargs
( 或 parallel)。他们非常给力。注意到你可以控制每行参数个数(-L
)和最大并行数(-P
)。如果你不确定它们是否会按你想的那样工作,先使用 xargs echo
查看一下。此外,使用 -I{}
会很方便。例如:
$ find . -name '*.py' | xargs grep some_function
$ cat hosts | xargs -I{} ssh root@{} hostname
使用 uptime
或 w
来查看系统已经运行多长时间。
$ uptime
14:48 up 13 days, 48 mins, 2 users, load averages: 1.32 1.69 1.98
$ w
14:48 up 13 days, 48 mins, 2 users, load averages: 1.32 1.69 1.98
USER TTY FROM LOGIN@ IDLE WHAT
hanggi console - 22May20 13days -
hanggi s000 - 22May20 31 tmux
💻 使用 data
查看当前时间
$ date
Wed Jun 17 14:49:36 GMT 2020
💻 使用 alias
来创建常用命令的快捷形式。例如:alias ll='ls -latr'
创建了一个新的命令别名 ll
。
也可以吧这个命令写进 ~/.bashrc
或 ~/.zshrc
中保存。
💻 使用 screen
或 tmux
来使用多份屏幕,当你在使用 ssh
时(保存 session 信息)将尤为有用。而 byobu 可以为它们提供更多的信息和易用的管理工具。另一个轻量级的 session 持久化解决方案是 dtach
。
💻 以其他用户的身份执行命令,使用 sudo
。默认以 root 用户的身份执行;使用 -u
来指定其他用户。使用 -i
来以该用户登录(需要输入_你自己的_密码)。
可能有用
yes
: 疯狂打印字符串cal
: 漂亮的日历 📅printenv
: 打印环境变量seq
: 顺序打印数字bc
: 计算器file
: 确定文件类型time
: 执行命令,并计算执行时间timeout
: 在指定时长范围内执行命令,并在规定时间结束后停止进程htop
: top 的加强版last
: 登入记录