rm 安全增强
如果要谨慎使用 rm 命令,可以为它设置一个别名,在删除之前需要确认:
$ rm -i # 请求确认
可以用 unalias 临时禁用别名,直到下次登录或重新设置:
$ unalias rm
如果 rm -i 已被设为默认别名但你希望删除时不确认,可以将 unalias rm 放入 ~/.bashrc。
快捷修正命令
| 快捷键 | 作用 |
|---|---|
Ctrl + U |
删除从光标到行首的文本 |
Ctrl + K |
删除从光标到行尾的文本 |
Ctrl + A |
光标移到命令开头 |
Ctrl + E |
光标移到命令结尾 |
Alt + F |
光标向前移动一个单词 |
Alt + B |
光标向后移动一个单词 |
Ctrl + W |
删除一个词(以空格分隔) |
快速创建目录并进入
在 ~/.bashrc 中定义以下函数,source ~/.bashrc 后即可使用 md temp 一键创建目录并进入:
md () { mkdir -p "$@" && cd "$1"; }
别名
$ alias update='sudo apt update'
别名能做的只有替换命令、增加参数以节省输入时间。如果需要更复杂的功能,可以编写脚本或向 ~/.bashrc 添加函数。
查看当前所有别名:
$ alias
alias butterfly='ssh -v -l jdoe 192.168.0.11'
alias c='clear'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
查找进程
按名称查找进程 PID:
pgrep hello
或:
$ pidof hello
22692
按名称直接杀死进程:
$ killall hello
查看进程已运行时间:
$ ps -p 24525 -o lstart,etime
STARTED ELAPSED
Sat Mar 23 20:52:08 2019 02:45
文件与日志
实时显示日志文件内容:
$ tail -f filename.log
也可用 less 查看文件,按 Shift + F 达到类似效果。
查看磁盘占用:
$ df -h
/dev/sda14 4.6G 10M 4.4G 1% /tmp
/dev/sda11 454M 366M 61M 86% /boot
查看内存占用:
$ free -h
total used free shared buff/cache available
Mem: 7.7G 3.5G 452M 345M 3.7G 3.5G
Swap: 7.6G 0B 7.6G
清空文件内容而不删除文件:
>filename
不解压查看压缩日志:
$ zcat test.gz
$ zless test.gz
快速目录切换
cd - # 回到上一个目录
cd # 回到用户家目录
注意:用 ; 分隔多条命令时,前一条失败不会阻止后续执行——例如 cd /temp/log/;rm -rf * 如果 cd 失败,rm -rf * 会在当前目录执行,非常危险。应使用 && 确保前一条成功才执行后一条:
$ cd /temp/log/ && rm -rf *
日志同时输出到文件和控制台
$ ./test.sh | tee test.log
进程控制
Ctrl + Z 暂停进程,fg 恢复前台执行,bg 切到后台继续执行。
使用 time 计算程序运行时间:
$ time ./fibo 30
the 30 result is 832040
real 0m0.088s
user 0m0.084s
sys 0m0.004s
查看内存占用前 10 的进程:
$ ps -aux | sort -k4nr | head -n 10
搜索
按功能描述搜索相关命令:
$ man -k "copy files"
cp (1) - copy files and directories
cpio (1) - copy files to and from archives
install (1) - copy files and set attributes
在当前目录下查找包含某字符串的文件:
$ grep -rn "test"
test2.txt:1:test
查看 ELF 文件头信息:
$ readelf -h filename
查看库中是否包含某个接口:
$ nm filename | grep interface
控制台实用技巧
终端日志太多时,Ctrl + S 冻结屏幕输出,Ctrl + Q 恢复。
没有 vi 编辑器时,可以用 cat 临时编辑文件:
$ cat > file.txt
some words
编辑完成后按 Ctrl + D 保存。
命令行下的复制粘贴:
Ctrl + Insert # 复制
Shift + Insert # 粘贴