前语
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 | 虚拟文件系统 |
关机命令
shutdown -h now 立刻关机shutdown -h 60 60分钟后关机
重启命令
reboot 重启shutdown -r now 立即重启shutdown -r 30 30分钟后重启
列举文件命令
ls 列举当前文件夹所有可见文件-a all 所有文件-l 长列表详细显示-h 人性化输出显示-d 列出目录名-t 按照修改时间排序-r 逆排序-S 按照文件大小排序-i 显示文件索引号-R 递归列出目录的内容-m 用逗号分隔显示

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

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

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

查看文件内容
cat 小文件查看-n 显示行号-A 显示控制符tac 查看小文件more和less 一般查看大文件head 默认查看前10行head -n 15 或者 head -15 表示前15行tail 默认查看文件后10行tail -n 15 或者 tail -15 查后面15行tail -f 动态查看连续输出ldd 查看二进制文件


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

移动文件或重命名
mv 源文件 目标文件(移动到不同的目录)mv 源文件名称 目标文件名称(需要指定相同目录)

删除文件
rm 删除文件-r 递归删除-f 强制删除不提示

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

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

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

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


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


打包工具
tar 打tar包,不会改变文件属性-c 创建tar包-z 调用gzip压缩-j 调用bzip2-J 调用xz-v 显示详细信息-f 指定包名-x 解压-C 指定文件路径-t 列出tar包内容-r 往tar里追加文件(调用压缩工具不能追加)

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

查看硬件时间
hwclock-l 查看硬件时间-s 设置硬件时间覆盖系统时间-w 设置系统时间覆盖硬件时间
设置时区
timedatectlstatus 查看当前状态set-time 设置时间,先停止时间set-timezones 设置时区list-timezones 列举时区set-ntp no 关闭时间同步
日历和按照日期创建文件
$() 优先执行的脚本等同``cal 日历指令

