目录
tar 对文件打包压缩或解压,格式为:“ tar [选项] [文件] ”
计算机硬件由运算器、控制器、存储器、输入/输出设备等组成,让各个设备各司其职的东西叫内核。内核不能被用户直接操作,需要基于“系统调用接口’开发出的程序满足用户日厂工作。”Shell“可以充当人与内核的翻译官。
系统命令
echo在终端显示字符串或变量
格式 ” echo [字符串|常量] “
字符串输出
user@user-virtual-machine:~$ echo hello world
hello world
变量输出
user@user-virtual-machine:~$ echo $SHELL
/bin/bash
对于变量的输出要使用$ 即,$变量名;
Date显示/设置系统时间或日期
格式” date [选项] "[+指定格式]" ‘;
具体格式如下:
参数 | 作用 |
%t | 跳格,等同TAB键 |
%H | 小时(0-23) |
%I | 小时(0-12) |
%M | 分钟(0-59) |
%S | 秒(0-60) |
%X | 相当于%H:%M:%S |
%Z | 显示时区 |
%p | 显示AM或PM |
%A | 星期几(Sunday-Saturtday) |
%a | 星期几(Sun-Sat) |
%B | 完整月份(January-December) |
%b | 缩写月份(Jan-Dec) |
%d | 日(01-31) |
%j | 一年中的第几天(001-366) |
%m | 月份(01-12) |
%Y | 年 |
结果测试:
user@user-virtual-machine:~$ date "+%Y-%m-%d %H-%M-%S"
2022-11-06 19-17-15
user@user-virtual-machine:~$ date "+%p"
下午
user@user-virtual-machine:~$ date "+%j"
310
user@user-virtual-machine:~$ date "+%b"
11月
user@user-virtual-machine:~$ date "+%B"
十一月
user@user-virtual-machine:~$ date "+%A"
星期日
user@user-virtual-machine:~$ date "+%a"
日
user@user-virtual-machine:~$ date -s "20221106 19:11:00"
2022年 11月 06日 星期日 19:11:00 CST
uptime查看系统的负载情况
格式" uptime " ,使用 " watch -n 1 uptime "每秒刷新一次获得当前负载情况,输出内容为 系统当前时间、系统已运行时间、当前在线用户、平均负载值(1分钟、5分钟、15分钟)
user@user-virtual-machine:~$ uptime
19:54:46 up 7:29, 0 users, load average: 0.00, 0.00, 0.00
free显示当前系统中内存的使用情况
格式为" free [-m/-g] "。
user@user-virtual-machine:~$ free -m
total used free shared buff/cache available
内存: 3889 934 861 14 2093 2697
交换: 923 0 923
ls查看目录中有那些文件
格式"ls [选项][文件] "
参数 | 作用 |
-a | 查看全部文件(包括隐藏文件) |
-d | 仅看目录文件 |
-h | 易读的文件容量(如,k,m,g) |
-l | 显示文件的详细信息 |
cat查看文本(较短)
格式为“ cat [选项] [文件] ”。
参数 | 作用 |
-n | 显示行号 |
-b | 显示行号(不含空行) |
-A | 显示不可见的符号,如空格,TAB键等 |
more查看文本(较长)
格式为“ more [选项] 文件 ”
tr转换文本文件中的字符
格式为“ tr [原始字符] [目标字符]”
user@user-virtual-machine:~/shell$ cat tr.txt
hello world!
user@user-virtual-machine:~/shell$ cat tr.txt | tr [a-z] [A-Z]
HELLO WORLD!
wc统计文本行数、字数、字节数
格式为“ wc [参数] 文本 ”
参数 | 作用 |
-l | 只显示行数 |
-w | 只显示单词数 |
-c | 只显示字节数 |
diff比较多个文本文件的差异
格式为“ diff [参数] 文件 ”
参数 | 作用 |
-b | 忽略空格的影响 |
-B | 忽略空行的影响 |
--brief或-q | 仅报告是非有差异 |
-c | 使用上下文输出格式 |
mkdir创建文件夹
格式为“ mkdir [选项] 目录 ”
参数 | 作用 |
-m=MODE | 默认的文件夹权限,如“ -m 755 ” |
-p | 连续创建多层目录(若目录已存在则忽略) |
-v | 显示创建过程 |
cp复制文件或目录
格式为" cp [选项] 源文件 目标文件 "
三种情况:
(1) 目标文件为目录,将原文件复制到目录中
(2)目标文件为文件,将原文件覆盖目标文件
(3)目标文件不存在,复制源文件并重命名为目标文件
参数 | 作用 |
-p | 保留源文件的属性 |
-d | 若对象为链接文件,保留链接文件的属性 |
-r | 递归复制(用于目录) |
-i | 若目标文件存在则询问是否覆盖 |
-a | 相当于-pdr |
rm删除文件或目录
格式为" rm 文件名 "
参数 | 作用 |
-f | 不提示警告信息 |
-i | 删除前先询问 |
-r | 删除目录 |
useradd用于创建用户
格式为" useradd [选项] 用户名 "
参数 | 作用 |
-d | 指定用户的家目录(默认为/home/username) |
-D | 显示默认值 |
-e | 账号有截止日期,格式:YYYY-MM-DD |
-g | 指定一个初始用户组(必须已存在) |
-G | 指定一个或多个拓展用户组 |
-N | 不创建与用户同名的用户组 |
-s | 指定默认的Shell |
-u | 指定用户UID |
passwd 修改用户密码
格式为“ passwd [选项] [用户名] ”
参数 | 作用 |
-l | 锁定用户禁止其登录 |
-u | 解除锁定 |
-stdin | 从标准输入修改密码如(echo "password" | passwd -stdin username)(Ubuntu系统无法使用该命令) |
-d | 使用户无密码 |
-e | 强制用户下次登录时修改密码 |
-S | 显示用户密码状态 |
tar 对文件打包压缩或解压,格式为:“ tar [选项] [文件] ”
参数 | 作用 |
-c | 压缩 |
-x | 解压 |
-t | 查看压缩包内文件 |
-z | 用Gzip压缩或解压 |
-j | 用bzip2压缩或解压 |
-v | 显示压缩或解压过程 |
-f | 目标文件名 |
-p | 保留原始权限与属性 |
-P | 使用绝对路径来压缩 |
-C | 指定解压到的目录 |
//压缩
user@user-virtual-machine:~$ tar -czvf shell.tar.gz shell
shell/
shell/tr.txt
shell/tr2.txt
user@user-virtual-machine:~$ ls -l shell.tar.gz
-rw-rw-r-- 1 user user 196 11月 7 15:51 shell.tar.gz
//解压到指定文件夹
user@user-virtual-machine:~$ tar -xzvf shell.tar.gz -C tarfile
shell/
shell/tr.txt
shell/tr2.tx
grep 对文本进行搜索
格式为,“ grep [选项] [文件] ”
参数 | 作用 |
-b | 将二进制文件当文本文件进行搜索 |
-i | 忽略大小写 |
-n | 显示行号 |
-c | 找到的次数 |
-v | 反向,显示未找到的行 |
find 查找文件
格式为,“ find [查找路径] 寻找条件 操作 ”
参数 | 作用 |
-name | 匹配名称 |
-perm | 匹配权限 |
-user | 匹配所有者 |
-group | 匹配所有组 |
-mtime -n +n | 匹配修改内容的时间(-n为n天以内,+n为n天以前) |
-atime -n +n | 匹配访问时间 |
-ctime -n +n | 匹配修改权限时间 |
-nouser | 匹配无所有者的文件 |
-nogroup | 匹配无所有组的文件 |
-new f1 !f2 | 匹配比f1新但比f2旧的文件 |
-type b/d/c/p/l/f | 匹配文件类型(块文件/目录文件/字符文件/管道文件/链接文件/文件文件) |
-size | 匹配文件的大小(+50K表示超过50K的文件,-50K表示小于50K的文件) |
-prune | 忽略某个目录 |
-exec {} \; | 对搜索到的结果进一步处理 |
//找出user用户下的文件并复制到/root/findresults/目录中,其中{}表示find搜索到的结果,结尾要用\;
find / -user user exec cp -arf {} /root/findresults/ \;