长期更新,空置、缺漏的部分会逐渐补上。未指明时,均为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

最新文章

  1. [Erlang 0111] Erlang Abstract Format , Part 2
  2. 通过重构VO实现校验功能
  3. sql语句 之聚合函数
  4. S(tuple)类及可选(Optional)类型型
  5. C语言堆内存管理上出现的问题,内存泄露,野指针使用,非法释放指针
  6. HDU 1423 Greatest Common Increasing Subsequence(最长公共上升LCIS)
  7. java web 入门级 开发 常用页面调试方法
  8. Web Application和Web Site两个模板的比较
  9. 入门项目 A4 db_handler 数据操作文件
  10. AcceptEx与完成端口(IOCP)结合实例
  11. mysql怎么查看是否支持分区
  12. TabControl控件在左侧绘制tabPage页面
  13. Jquery——几个注意的小知识
  14. git仓库搬家
  15. Java学习笔记_22_Set接口的实现类
  16. html5新属性contenteditable 对于那些不可编辑的标签,现在都可以编辑了
  17. django用户认证系统——注销和页面跳转5
  18. Hibernate中 一 二级缓存及查询缓存(2)
  19. Spring:与Redis的集成
  20. STL学习笔记(仿函数)

热门文章

  1. codeforces 424D Biathlon Track
  2. memset struct含有string的崩溃
  3. Apache Hadoop各版本发布的SVN地址
  4. springmvc入门之HelloWorld篇
  5. poj 2289 Jamie&#39;s Contact Groups【二分+最大流】【二分图多重匹配问题】
  6. weblogic之CVE-2018-3246 XXE分析
  7. 十五项指标衡量DevOps是否成功
  8. SQL Server 断开某个数据库所有连接(还原的时候需要)
  9. Node.js框架之Egg.js
  10. 记录一下iOS Leak的使用方法。