什么是Shell

Linux中的shell就是Linux内核的一个外层保护工具,并负责完成用户与内核之间的交互
内核
内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。
Shell的分类

常用命令
关机重启相关
立即关机linux@ubuntu:~$ sudo shutdown -h now
立即重新启动linux@ubuntu :~$ sudo shutdown -r now 或linux@ubuntu :~$ sudo reboot now
定时关机linux@ubuntu:~$ sudo shutdown -h +45 “That is all, game over.”
定时重启linux@ubuntu:~$ sudo shutdown -r +60
man手册
用法:man <命令>
可以man man查看man手册如何使用
date命令
date - print or set the system date and time
| 符号 | 说明 | 示例 |
| %Y | 四位年份 | 2030 |
| %m | 两位月份(01-12) | 10 |
| %d | 两位日期(01-31) | 07 |
| %H | 24小时制小时(00-23) | 15 |
| %M | 分钟(00-59) | 30 |
| %S | 秒(00-59) | 45 |
| %A | 星期全名(如Sunday) | Saturday |
| %a | 星期缩写(如Sat) | Sat |
| %B | 月份全名(如October) | October |
| %b | 月份缩写(如Oct) | Oct |
| %F | 等效 %Y-%m-%d | 2023-10-07 |
| %T | 等效 %H:%M:%S | 15:30:45 |
基本格式
date #输出:Sat Oct 7 15:30:00 CST 2023
按时区显示
TZ='America/New_York' date # 显示纽约时间
获取当前时间戳
date +%$ # 输出:1696663845(从1970-01-01 00:00:00 UTC开始的秒数)
将时间戳转换为可读格式
date -d @1696663845 # 将时间戳转换为本地时间
修改日期和时间(root)
sudo date -s "2030-10-07 15:30:00"
计算未来或过去的日期/时间
date -d "next Monday" # 下周一日期
date -d "-3 days" # 三天前的日期
date -d "1 month 2 days" # 一个月零两天后的日期
date -d "2030-12-31 +10 days" # 指定日期的10天后
动态显示时间戳
touch log_$(date +%Y%m%d).log
clear命令
clear 或 ctrl+l 清屏
df命令
显示所有文件系统的磁盘使用情况
以易读单位显示磁盘空间df -h
du命令
显示当前目录下各子目录的磁盘使用(默认以KB为单位)
以易读格式显示目录总大小
du -sh /home/user # 查看 /home/user 目录的总大小
查看文件相关命令
cat命令
功能:查看、合并文件
常用选项
-n 显示行号
-b 仅为非空行编号
示例
cat file.txt 查看文件file.txt里的内容
cat file1.txt file2.txt > newfile.txt 先清空newfile.txt再把合并的内容写进去
cat file1.txt file2.txt >> newfile.txt 以追加的方式,把合并的内容写进去
tac命令
功能:反向显示文件内容的命令
常用选项
-s 指定自定义分隔符代替默认的换行符(默认以行为单位逆序)
示例
tac file1.txt 以换行符为单位做逆序输出
tac -s ";" file1.txt 以自定义符号分号为单位做逆序输出
more
功能:可以翻页显示内容
less
功能:可以翻页显示内容
常用选项
-N 显示行号
-X 退出时不清理屏幕
/关键字 向下搜索
?关键字 向上搜索
q 退出
head
功能:默认显示前10行
常用选项
-n 指定显示行数
-c 指定显示的字节数
-q 多个文件显示时,隐藏文件名
示例
head -n 5 passwd
head -c 5 passwd
head -q -n 5 passwd file2.txt
ls -l | head -n 2
tail
功能:默认显示后10行
常用选项
-n 指定显示行数
-c 指定显示的字节数
-q 多个文件显示时,隐藏文件名
nl
功能:带行号显示文件内容