「功能笔记」Linux常用Shell命令(终端命令)备忘录
长期更新,空置、缺漏的部分会逐渐补上。未指明时,均为GNU版本。
文件命令
基础操作
ls
默认显示非隐藏文件、以文件名进行排序、文件名有颜色(蓝色文件夹、白色一般文件、绿色可执行文件)。
Cheatsheet:
ls -al ~ # 显示主文件夹下的所有文件(夹);并显示它们的属性与权限。
ls -alF --color=never ~ # 同上,并不显示颜色,在文件名末显示该文件名代表的类型。/表示文件夹,*表示可执行文件
ls -al --full-time ~ # 同1,并显示长时间
ls -si ~ # 显示主文件夹下的所有文件(夹),以及其所在的i-node号码;并排序文件
cp
-i
:若目标文件已经存在,覆盖时会询问。-p
:复制属性。-d
:若文件为link file,复制link file的属性而非源文件本身。-r
:递归复制。-a
:等价于-pdr
。-s
:复制为symbolic link。-l
:复制为hard link。
Cheatsheet:
cp -r /home/zuiho/ /tmp # 复制主文件夹下的所有内容到/tmp下面
cp -s /path/to/file /new/path/to/dir # 复制文件的symbolic link到新文件夹下。
rm
如果想要不可逆转的删除,使用shred。
-f
忽略不存在的文件,不会出现警告信息。-i
删除前会询问。-r
递归删除。会删除目录。
Cheatsheet:
rm -i /path/to/an/important/file # 会询问。
rm -r /path/to/a/dir # 不会询问,删除目录。
rm ./-aspecialfile- # 删除一个带杠的文件。
mv
这个命令其实往往用来重命名。Linux内还有一个专门的批量重命名的命令,为rename
。
-f
强制。-i
若存在,会询问。-u
“update”,即源文件比目标文件更新时才会覆盖。
Cheatsheet:
mv originfile /path/to/dest
mv of1 of2 of3 /path/to/dest # 最后一个是文件夹,前面的是文件,则可以批量移动。
其他命令
basename
取得文件名dirname
取得目录名
touch
最基础的用法是用来创造一个空文件。
不过,它是用来修改文件时间的。
a
修改访问时间。c
仅修改时间,若文件不存在不创建新文件。d
自定义修改的日期。 长命令形式为--date=<DATE>
。m
修改mtime,即上一次被修改的时间。t
自定义修改的时间,格式为[YYMMDDhhmm]。
Cheatsheet:
touch -d "2 days ago" .zshrc
touch -t "0805121428" .bashrc #修改时间为一个悲伤的时刻。
file
查看文件
cat & tac & nl
more & less
head & tail
od
权限管理
umask
chattr/lsattr
查找
which/whereis/locate
find
磁盘管理
管道命令
xargs
综合应用示例
显示系统目前支持的文件系统
cat /proc/filesystems
删除文件夹内所有无后缀名可执行文件并删除之
find . -type f -perm /u+x -regex "\./[^/.]*" | xargs rm -f
(伪)图形化克隆磁盘
(pv -n /dev/sda | dd of=/dev/sdb bs=128M conv=notrunc,noerror) 2>&1 | dialog --gauge "Running dd command (cloning), please wait..." 10 70 0
监控所有被进程ID:1551 所使用的文件
pv -d 1551
fork bomb
# DO NOT TRY IT IN THE PRODUCTION ENVIROUMENT!!!
:(){ :|:& };:
有趣的命令
牛力与否
apt moo # And you can try it in openSUSE!!!
zypper moo
如非注明,原创内容遵循GFDLv1.3发布;其中的代码遵循GPLv3发布。