Shell终端
- Shell(也称为终端或壳)充当的是人与内核(硬件)之间的翻译官。
- 主流 Linux 系统默认使用的终端是 Bash(Bourne-Again SHell)解释器。
命令基本格式:
命令名称 命令参数 命令对象
- 命令名称、命令参数、命令对象之间请用空格键分隔。
- 命令对象一般是指要处理的文件、目录、用户等资源。
- 命令参数可以用长格式(完整的选项名称),也可以用短格式(单个字母的缩写),
两者分别用--
与-
作为前缀。例:man --help
或man -h
。
常用工作命令
echo
- 输出变量或字符串。
- 输出变量:
echo $变量名
。 - 输出字符串:
echo 字符串
。
date
- 用于查看当前时间。
- 按格式查看
date '+格式字符串'
。 - 日期参数:%y 两位数年份、%Y 四位数年份、% 月份、%d 天、%D 斜杠分隔的日期、
%H 24小时时、%I 12小时时、%M 分钟、%S 秒、%j 今年第几天。
reboot
- 重启机器。
poweroff
- 关闭系统。
wget
wget 命令用于在终端中下载网络文件。
格式为
wget [参数] 下载地址
。命令不存在使用
yum -y install wget
安装。参数列表:
参数 说明 -b 后台下载模式 -P 下载到指定目录 -t 最大尝试次数 -c 断点续传 -p 下载页面内所有资源,包括图片、视频等 -r 递归下载
ps
用于查看系统中的进程状态。
命令格式
ps 参数
。参数列表:
参数 说明 -a 显示所有进程(包括其他用户的进程) -u 用户以及其他详细信息 -x 显示没有控制终端的进程 aux 格式化查看进程状态 进程状态:
状态 说明 R(运行) 进程正在运行或在运行队列中等待 S(中断) 进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态 D(不可中断) 进程不响应系统异步信号,即便用 kill 命令也不能将其中断 Z(僵死) 进程已经终止,但进程描述符依然存在, 直到父进程调用 wait4()系统函数后将进程释放 T(停止) 进程收到停止信号后停止运行
top
- 用于动态地监视进程活动与系统负载等信息,其格式为 top。
- 可将它看作 Linux 中的强化版的Windows 任务管理器。
pidof
- 用于查看指定名称服务的pid。
- 命令格式:
pidof 参数 服务名
。
kill
- 用于终止某个指定 PID 的服务进程。
- 命令格式:
kill 参数 进程的pid
。
killall
- 用于终止某个指定名称的服务所对应的全部进程。
- 命令格式:
killall 参数 服务名称
。 - 命令不存在使用
yum -y install psmisc
安装。
系统检测命令
ifconfig
- 用于获取网卡配置与网络状态等信息。
- 命令格式:
ifconfig 网络设备 参数
。 - 打头文字为网卡名称。
- inet 参数后面的 IP 地址。
- ether 参数后面的网卡物理地址(又称为 MAC 地址)。
uname
- 用于查看系统内核与系统版本等信息。
- 命令格式:
uname -a
。 - 一般会固定搭配上-a 参数来完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息。
uptime
显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。
平均负载值指的是系统在最近 1 分钟、5 分钟、15 分钟内的压力情况。
负载值越低越好,尽量不要长期超过 1,在生产环境中不要超过 5。
free
- 用于显示当前系统中内存的使用量信息。
- 命令格式:
free -h
。
who
- 用于查看当前登入主机的用户终端信息。
last
- 用于查看所有系统的登录记录。
- 这些信息都是以日志文件的形式保存在系统中,因此黑客可以很容易地对内容进行篡改。
history
显示出当前用户在本地计算机中执行过的最近 1000 条命令记录。
/etc/profile
文件中的HISTSIZE
变量值控制历史记录上限。history -c
清除所有命令历史记录。Linux 系统中以点(.)开头的文件均代表隐藏文件,这些文件大多数为系统服务文件,
可以用cat
命令查看其文件内容。~/.bash_history
路径为当前用户命令执行记录的位置。
sosreport
- 用于收集系统配置及架构信息并输出诊断文档,格式为 sosreport。
- 命令不存在执行
yum -y install sos
安装。
文件目录操作命令
pwd
- 显示用户当前所处的工作目录。
cd
- 切换到指定目录。
- 命令格式:
cd 路径
。 /
代表根路径,目录名使用/
分隔。~
代表当前用户的家目录。-
切换到上次所在的目录。
ls
显示目录中的文件信息。
命令格式
ls 参数 文件
。参数列表:
参数 说明 -a 显示全部文件(包括隐藏文件) -l 查看文件的属性、大小等详细信息 -d 查看目录属性信息 参数可以结合使用,如
-al
或-ld
。
touch
创建空白文件或设置文件的时间。
命令格式
touch 参数 文件名
。参数列表:
参数 说明 -a 仅修改“读取时间”(atime) -m 仅修改“修改时间”(mtime) -d 同时修改 atime 与 mtime 实例
touch "2019-06-26 15:34" linux.txt
。
mkdir
- 用于创建空白的目录,命令格式
mkdir 目录名
。 - 结合-p 参数来递归创建出具有嵌套叠层关系的文件目录。
命令格式mkdir -p 层叠目录路径
,使用/
分隔目录。
cp
用于复制文件或目录。
命令格式
cp 参数 源文件 目标文件
。参数列表:
参数 说明 -p 保留原始文件的属性 -d 若对象为“链接文件”,则保留该“链接文件”的属性 -r 递归持续复制(用于目录) -i 若目标文件存在则询问是否覆盖 -a 相当于-pdr(p、d、r 为上述参数)
mv
- 用于剪切文件或将文件重命名。
- 命令格式
mv 参数 源文件 目标文件或路径
。 - 源文件与目标文件相同则为文件重命名。
rm
令用于删除文件或目录。
命令格式
rm 参数 文件
。参数列表:
参数 说明 -f 强制删除 -r 删除目录 -rf 相当于同时使用-f -r 参数
dd
按照指定大小和个数的数据块来复制文件或转换文件。
命令格式
dd 参数列表
。参数列表:
参数 说明 if 输入的文件名称 of 输出的文件名称 bs 设置每个“块”的大小,可使用存储单位 count 设置要复制“块”的个数 实例
dd if=test of=newtest bs=10MB
bs 与 count 都是用来指定容量的大小,只要能满足源文件空间,可随意组合搭配方式。
file
- 查看文件类型。
- 命令格式
file 对象名称
。
文本编辑命令
cat
- 查看内容较少的纯文本文件。
- 命令格式
cat 参数 文件名
。 - 参数
-n
显示行号。
more
- 查看内容较多的纯文本文件。
- 命令格式
more 参数 文件名
。 - 查看时会有百分比显示当前进度,使用空格或回车向下翻页。
head
- 查看纯文本文件的前n行。
- 命令格式
head 参数 文件名
。 - 参数
-n行数
指定查看的行数。
tail
- 查看纯文本文档的后 N 行或持续刷新内容
- 命令格式
tail 参数 文件名
。 - 参数
-n行数
指定查看的行数。 - 参数
-f
持续刷新内容。
tr
用于替换文本文件中的字符。
命令格式
tr 原始字符 目标字符
。实例
cat login | tr [a-z] [A-Z]
- 先使用 cat 命令读取待处理的文本。
- 然后通过管道符把这些文本内容传递给 tr 命令进行替换操作。
wc
统计指定文本的行数、字数、字节数。
命令格式
wc 参数 文件名
。参数列表:
参数 说明 -l 只显示行数 -w 只显示行数 -c 只显示字节数
stat
- 查看文件的具体存储信息和时间等信息。
- 命令格式
stat 文件名称
。
cut
按“列”提取文本字符。
命令格式
cut 参数 文件名
。参数
-d分隔符
设置间隔符号。参数
-f列数
设置需要查看的列数。实例:
cut -d: -f1 /etc/passwd
diff
- 用于比较多个文本文件的差异。
- 命令格式
diff 参数 文件名称1 文件名称2
。 - 参数
--biref
用于确认两个文件是否不同。 - 参数
-c
列出文件的差异之处。
打包压缩命令
- tar命令用于对文件进行打包压缩和解压操作。
- Linux 系统中,常见的文件格式比较多,其中主要使用的是.tar 或.tar.gz 或.tar.bz2 格式
命令格式:
tar 参数 文件名称
参数列表:
参数 | 说明 |
---|---|
-c | 创建压缩文件 |
-x | 解开压缩文件 |
-t | 查看压缩包内有哪些文件 |
-z | 用 Gzip 压缩或解压 |
-j | 用 bzip2 压缩或解压 |
-v | 显示压缩或解压的过程 |
-f | 目标文件名 |
-p | 保留原始的权限与属性 |
-P | 使用绝对路径来压缩 |
-C | 指定解压到的目录 |
- 命令参数可以同时使用进行组合参数。
实例:
-- 压缩文件
tar -czvf study.tar.gz study
-- 解释
-- czvf 创建压缩文件使用gzip格式,查看创建过程,指定目标文件名称
-- study.tar.gz 目标文件名称
-- stiudy 待压缩文件路径
-- 解压文件
tar -xzvf study.tar.gz -C /study
-- xzvf 解压缩文件使用gzip格式,查看解压过程,指定目标文件名称
-- study.tar.gz 目标文件名称
-- -C 指定输出目录
-- stiudy 解压缩后存放文件路径
文件查找命令
grep
用于在文本中执行关键词搜索。
命令格式
grep 参数 关键字 文件名
。参数列表:
参数 说明 -b 将可执行文件(binary)当作文本文件(text)来搜索 -c 仅显示找到的行数 -i 忽略大小写 -n 显示行号 -v 反向选择,仅列出没有“关键词”的行 实例
grep user login.html
find
用于按照指定条件来查找文件。
命令格式
find 查找路径 查找条件 操作
。参数列表:
参数 说明 -name 匹配名称 -perm 匹配权限(mode 为完全匹配,-mode 为包含即可) -user 匹配所有者 -group 匹配所有组 -mtime -n +n 匹配修改内容的时间(-n 指 n 天以内,+n 指 n 天以前) -atime -n +n 匹配访问文件的时间(-n 指 n 天以内,+n 指 n 天以前) -ctime -n +m 匹配修改文件权限的时间(-n 指 n 天以内,+n 指 n 天以前) -nouser 匹配无所有者的文件 -nogroup 匹配无所有组的文件 -newer f1 !f2 匹配比文件 f1 新但比 f2 旧的文件 --type b/d/c/p/l/f 匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管
道、链接文件、文本文件)-size 匹配文件的大小(+50KB 为查找超过 50KB 的文件,而-50KB 为查找小
于 50KB 的文件)-prune 忽略某个目录 -exec ... {}; 后面可跟用于进一步处理搜索结果的命令
这个参数用于把 find 命令搜索到的结果交由紧随其后的命令作进一步处理操作
-print
打印文件路径。实例:
-- 将etc文件夹下host开头的文件复制到study文件夹下 find /etc -name 'host*' -exec cp -a {} /study \;