前语

Linux下一切皆文件!

Linux介绍

1991年,林纳斯·托瓦兹编写了与Unix兼容的Linux操作系统内核,并且发布到GPL
Liunx只是一个操作系统内核,大多数Linux发行版是由操作系统内核加上GNU的软件或者图形工具构成完整的操作系统,GNU/Linux是一种Unix Like的操作系统简称Linux

认识目录结构

目录 说明 备注
/root 管理员根目录
/home 普通用户默认目录
/bin->/usr/bin 普通用户命令 /usr/bin/ls
/sbin->/usr/sbin 管理员吗命令
/user/local 第三方源码包默认安装目录
/etc 系统和服务配置相关 /etc/passwd
var 动态可变数据文件
/tmp 临时目录 全局可写
/dev 设备文件
/lib->/usr/lib 库文件
/lib64->/usr/lib64 库文件
/proc 虚拟文件系统

关机命令

  1. shutdown -h now 立刻关机
  2. shutdown -h 60 60分钟后关机

重启命令

  1. reboot 重启
  2. shutdown -r now 立即重启
  3. shutdown -r 30 30分钟后重启

列举文件命令

  1. ls 列举当前文件夹所有可见文件
  2. -a all 所有文件
  3. -l 长列表详细显示
  4. -h 人性化输出显示
  5. -d 列出目录名
  6. -t 按照修改时间排序
  7. -r 逆排序
  8. -S 按照文件大小排序
  9. -i 显示文件索引号
  10. -R 递归列出目录的内容
  11. -m 用逗号分隔显示

image.png

判断文件类型

文件类型 描述
字符设备(c) 输入输出设备:键盘,鼠标,显示器,打印机….
块设备(b) 储存设备:硬盘,U盘,光驱,软驱等
软连接文件(l) 快捷方式相似
目录文件(d) 文件夹目录
普通文件(f或-) 一般文件
管道文件(p) 其他
套接字文件(s) 其他

image.png

创建文件夹

  1. mkdir ./test 当前文件夹创建test目录
  2. -p 级联创建,指定多级目录不存在就创建相对应的目录

image.png

创建文件

  1. touch abc 创建文件,区分大小写
  2. touch -a abc -t "202001011212" 修改最近访问时间
  3. touch -d "20200202" abc 访问和更改时间修改

image.png

查看文件内容

  1. cat 小文件查看
  2. -n 显示行号
  3. -A 显示控制符
  4. tac 查看小文件
  5. moreless 一般查看大文件
  6. head 默认查看前10
  7. head -n 15 或者 head -15 表示前15
  8. tail 默认查看文件后10
  9. tail -n 15 或者 tail -15 查后面15
  10. tail -f 动态查看连续输出
  11. ldd 查看二进制文件

image.png

image.png

复制文件

  1. cp 复制治疗
  2. -r 递归拷贝目录
  3. -v 显示拷贝过程信息
  4. -p 文件属性一起拷贝
  5. -a 递归拷贝包含文件熟悉信息

image.png

移动文件或重命名

  1. mv 源文件 目标文件(移动到不同的目录)
  2. mv 源文件名称 目标文件名称(需要指定相同目录)

image.png

删除文件

  1. rm 删除文件
  2. -r 递归删除
  3. -f 强制删除不提示

image.png

帮助查询

  1. 内部命令(shell自带bash)
  2. help cd
  3. 外部命令(第三方软件产生)
  4. ls --help
  5. type 查看命令是内部还是外部命令
  6. man 手册查询
  7. 1 可执行程序或 shell 命令
  8. 2 系统调用(内核提供的函数)
  9. 3 库调用(程序库中的函数)
  10. 4 特殊文件(通常位于 /dev)
  11. 5 文件格式和规范,如 /etc/passwd
  12. 6 游戏
  13. 7 杂项(包括宏包和规范,如 man(7),groff(7))
  14. 8 系统管理命令(通常只针对 root 用户)
  15. 9 内核例程 [非标准

image.png

bash标准输入输出

  1. stdin 标准输入 文件描述符:0
  2. stdout 标准输出 文件描述符:1
  3. stderr 错误输出 文件描述符:2
  4. > 输出重定向:1>或者>标准输出重定向 2>错误输出重定向
  5. >> 追加方式
  6. < 标准输入
  7. &> 错误输出重定向

image.png

echo命令

  1. echo 字符串 标准输出
  2. -n 不输出最后的换行符:\n
  3. -e 解释转义字符:\n \t

image.png

文件查找命令

  1. 命令查找
  2. which ls 找出绝对路径
  3. whereis ls 找出命令路径和文档信息
  4. 查找文件命令
  5. find 精确查找磁盘搜索
  6. -name 按文件名查找
  7. -iname 按文件名忽略大小写
  8. -size 按大小查找 +1M:大于1M -1M:小于1M
  9. -type 按类型查找
  10. -mtime 按修改时间查找 +nn天以前 -nn天以后
  11. -atime 按文件访问时间查找
  12. -ctime 按文件创建时间查找
  13. -perm 按文件权限查找
  14. 查找文件并且执行命令
  15. -exec 查找后直接执行shell
  16. -ok 查找后询问执行shell
  17. -delete 查找后删除
  18. -ls 查找后列举
  19. -print 查找后打印文件列表(默认)
  20. 注意:执行命令需要使用 \;结尾

image.png

image.png

压缩工具

压缩工具 说明 解压工具
zip 兼容Unix和windows,可以压缩多个目录 unzip
gzip 压缩单个文件,压缩率低,cpu开销低 gunzip
bzip2 压缩单个文件,压缩率高,cpu开销高 bunzip2
xz 压缩单个文件,压缩高解压快 unzx
  1. zip
  2. -r 递归压缩/压缩目录,压缩中存在目录,目录数据也会压缩进去
  3. -d 解压到目录(unzip使用解压到指定目录)

image.png

image.png

打包工具

  1. tar tar包,不会改变文件属性
  2. -c 创建tar
  3. -z 调用gzip压缩
  4. -j 调用bzip2
  5. -J 调用xz
  6. -v 显示详细信息
  7. -f 指定包名
  8. -x 解压
  9. -C 指定文件路径
  10. -t 列出tar包内容
  11. -r tar里追加文件(调用压缩工具不能追加)

image.png

Linux日期格式

  1. date [选项]... [+格式]
  2. -d 显示时间,非当前时间
  3. -s 设置系统时间
  4. 格式:
  5. %% 一个文字的 %
  6. %a 当前locale 的星期名缩写(例如: 日,代表星期日)
  7. %A 当前locale 的星期名全称 (如:星期日)
  8. %b 当前locale 的月名缩写 (如:一,代表一月)
  9. %B 当前locale 的月名全称 (如:一月)
  10. %c 当前locale 的日期和时间 (如:200533 星期四 23:05:25)
  11. %C 世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20)
  12. %d 按月计的日期(例如:01)
  13. %D 按月计的日期;等于%m/%d/%y
  14. %e 按月计的日期,添加空格,等于%_d
  15. %F 完整日期格式,等价于 %Y-%m-%d
  16. %g ISO-8601 格式年份的最后两位 (参见%G)
  17. %G ISO-8601 格式年份 (参见%V),一般只和 %V 结合使用
  18. %h 等于%b
  19. %H 小时(00-23)
  20. %I 小时(00-12)
  21. %j 按年计的日期(001-366)
  22. %k hour, space padded ( 0..23); same as %_H
  23. %l hour, space padded ( 1..12); same as %_I
  24. %m month (01..12)
  25. %M minute (00..59)
  26. %n a newline
  27. %N nanoseconds (000000000..999999999)
  28. %p locale's equivalent of either AM or PM; blank if not known
  29. %P like %p, but lower case
  30. %q quarter of year (1..4)
  31. %r locale's 12-hour clock time (e.g., 11:11:04 PM)
  32. %R 24-hour hour and minute; same as %H:%M
  33. %s seconds since 1970-01-01 00:00:00 UTC
  34. %S 秒(00-60)
  35. %t 输出制表符 Tab
  36. %T 时间,等于%H:%M:%S
  37. %u 星期,1 代表星期一
  38. %U 一年中的第几周,以周日为每星期第一天(00-53)
  39. %V ISO-8601 格式规范下的一年中第几周,以周一为每星期第一天(01-53)
  40. %w 一星期中的第几日(0-6),0 代表周一
  41. %W 一年中的第几周,以周一为每星期第一天(00-53)
  42. %x 当前locale 下的日期描述 (如:12/31/99)
  43. %X 当前locale 下的时间描述 (如:23:13:48)
  44. %y 年份最后两位数位 (00-99)
  45. %Y 年份
  46. %z +hhmm 数字时区(例如,-0400)
  47. %:z +hh:mm 数字时区(例如,-04:00)
  48. %::z +hh:mm:ss 数字时区(例如,-04:00:00)
  49. %:::z 数字时区带有必要的精度 (例如,-04,+05:30)
  50. %Z 按字母表排序的时区缩写 (例如,EDT)

image.png

查看硬件时间

  1. hwclock
  2. -l 查看硬件时间
  3. -s 设置硬件时间覆盖系统时间
  4. -w 设置系统时间覆盖硬件时间

设置时区

  1. timedatectl
  2. status 查看当前状态
  3. set-time 设置时间,先停止时间
  4. set-timezones 设置时区
  5. list-timezones 列举时区
  6. set-ntp no 关闭时间同步

日历和按照日期创建文件

  1. $() 优先执行的脚本等同``
  2. cal 日历指令

image.png