通常讲计算机硬件是有运算器、控制器、存储器、输入/输出设备等共同组成,而让各种硬件设备各司其职又能协同运行的东西就是系统内核。Linux系统的内核负责完成对硬件资源的分配、调度等管理任务。由此可见,系统内核对计算机的正常运行来讲太重要了,因此一般不建议直接去编辑内核中的参数,而是让用户通过基于系统调用接口开发出的程序或服务来管理计算机,以满足日常工作需要。
Shell就是这样一个命令行工具。Shell(也称为终端或壳)充当的是人与内核(硬件)之间的翻译官。用户把一些命令“告诉”终端,它就会调用相应的程序服务去完成某些工作。现在包括红帽系统在内的许多主流linux系统默认使用的终端是Bash解释器。
命令格式:命令名称 [命令参数] [命令对象]
命令对象一般是指要处理的文件、目录、用户等资源,命令参数可以用长格式(完整的选项名称),也可以用短格式(单个字母的缩写),两者分别用--与-作为前缀。
查看帮助命令
长格式:man --help
短格式:man -h
查看man命令帮助信息
命令:man man
echo 命令
用于在终端输出字符串或变量提取后的值
命令格式: echo [字符串 | $变量]
例:
echo Hello World
echo $SHELL
date 命令
设置及设置系统时间或日期
命令格式:date [选项] [+指定的格式]
只需在date命令中输入以‘+’号开头参数,即可按照指定格式输出系统的时间或日期,日常工作中可以把备份数据的命令与指定格式输出的时间信息结合。
date命令参数及作用:
例:
按照“年-月-日 小时:分钟:秒”格式查看当期那系统时间:date "+%Y-%m-%d %H:%M:%S"
将系统的当前时间设置2021年11月21日20点30分:date -s "20211121 20:30:00"
查看今天是当年中的第几天:date "+%j"
reboot 命令
重启系统
poweroff 命令
关闭系统
wget 命令
用于在终端下载网络文件
格式:wget [参数] 下载地址
参数:
例:
递归下载xx网站内所有页面数据以及文件,下载后保存到xx目录中:wget -r -p www.baidu.com
ps 命令
查看系统中的进程状态
参数:
Liunx系统中运行这许多进程,有5中常见的进程状态,分别为:
ps命令允许参数不加减号,因此可以直接写成:ps aux
top 命令
动态监视进程活动与系统负载等信息
pidof 命令
查询指定服务进程PID
格式 pidof [参数] [服务名称]
例:pidof sshd
kill 命令
终止某个指定PID服务进程
格式:kill [参数] [进程PID]
killall 命令
终止某个指定名称的服务所对应的全部进程
格式:killall [参数] [进程名称]
例:
pidof httpd 查看httpd服务下进程PID
killall 批量结束httpd下所有进程
ifconfig 命令
获取网卡配置与网络状态等信息
uname 命令
查看系统内核与系统版本等信息
格式:uname [-a]
-a 完整的查看系统的内核名称、主机名、内核发行版本等信息
如果要查看当前系统版本详细信息,需要查看redhat-release文件:cat /etc/redhat-release
uptime 命令
查看系统负载信息
平均负载值是系统在最近1分钟、5分钟、15分钟内的压力情况;负载值越低越好,尽量不要长期超过1,在生产环境不要超过5.
free 命令
显示当前系统中内存的使用量信息
格式:free -h
-h 参数更任性化输出当前内存的实时使用量信息
who 命令
查看当前登入主机的用户终端信息
last 命令
查看所有系统的登录记录
history 命令
显示历史执行过的命令
格式:history -c
-c 命令会清空所有的命令历史记录
可以使用 "!编码数字" 的方式重复执行某一次命令
sosreport 命令
收集系统配置及架构信息并输出诊断文档
pwd
显示用户当前所处的工作目录
cd
切换工作路径
ls
显示目录中的文件信息
参数:
例:ls -ld /etc
cat
查看纯文本文件(内容较少)
参数:
more
查看纯文本文件(内容较多)
more相较与cat命令,会在最下面使用百分比形式来提示阅读了多少内容,使用空格键往下翻
head
查看纯文本文档的前N行
例:head -n 20 xxx.txt
tail
查看纯文本文档后N行或持续刷新内容
例:
tail -n 20 文件名
tail -f 文件名
tr
替换文本文件中的字符
格式:tr [原始字符] [目标字符]
例:cat xxx.txt | tr [a-z] [A-Z]
使用cat读取待处理的文本,然后通过管道符把文本内容传递给了tr命令进行替换操作,把文本中英文全部替换成大写。
wc
用于统计指定文本行数、字数、字节数
参数:
例:passwd文件保存系统账户信息,统计当前系统中有多少个用户
wc -l /etc/passwd
stat
查看文件具体存储信息和时间信息
cut
按“列”提取文本字符
参数:
例:
查看passwd文件中的用户信息
head -n 2 /etc/passwd
以冒号为间隔符提取第一列的内容
cut -d: -f1 /etc/passwd
diff
用于比较多个文本文件差异
参数:
例:
判断两文件是否相同
diff --brief x1.txt x2.txt
输出不同内容
diff -c x1.txt x2.txt
touch
创建空白文件或设置文件时间
参数:
例:touch -d "2021-11-11 20:00" xxx.txt
mkdir
创建空白目录
参数 -p 可以递归创建嵌套目录
例:mkdir -p a/b/c
cp
复制文件或目录
格式:cp [选项] 源文件 目标文件
如果目标文件是目录 》 复制到该目录中
如果目标文件也是普通文件 》询问是否覆盖
如果目标文件不存在 》 执行正常复制
参数:
mv
剪切文件或文件重命名
rm
删除文件或目录
参数:
dd
按照指定大小和个数的数据块来复制文件或转换文件
能够按照用户指定大小和个数的数据块来复制文件内容
参数:
例:
从/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存为名为560_file的文件
dd if=/dev/zer0 of=560_file count=1 bs=560M
将光驱设备中的光盘制作成iso格式镜像
dd -f=/dev/cdrom of=xxx.iso
file
查看文件类型
tar
对文件进行打包压缩或解压
参数:
-f 参数必须放到参数的最后一位,代表要压缩或解压的软件包名称
一般使用: tar -czvf 压缩包名称.tar.gz
相应解压命令:tar -xzvf 压缩包名称.tar.gz -C /root/etc
-C 将压缩包文件指定解压到/root/etc目录中
grep
在文本中执行关键词搜索,并显示匹配结果
参数:
例:
查找Linux系统中,不再允许登录系统的用户信息
grep /sbin/nologin /etc/passwd
find
按照指定条件查找文件
参数:
exec用于把find命令搜索结果交由紧随其后的命令作进一步处理,类似于管道符技术,并且由于find命令对参数的特殊要求,虽然exec是长格式形式,但依然只需要一个减号。
例:
获取目录/etc目录下所有以host开头的文件列表
find /etc -name "host*" -print
整个系统中搜索权限中包括SUID权限的所有文件
find / -perm -4000 -print
在整个系统中找出所有归属于liunxprobe用户的文件并复制到/root/findresults目录
-exec {} ;
其中 {} 表示find命令搜索出的每一个文件,命令结尾必须是;
find / -user linuxprobe -exec cp -a {} /root/findresults/ ;