新手必须掌握的Linux命令(Linux就该这么学第二章)
systemctl命令(RHEL7系统)
- systemctl start foo.service 启动服务
- systemctl restart foo.service 重启服务
- systemctl stop foo.service 停止服务
- systemctl reload foo.service 重新加载配置文件(不终止服务)
- systemctl status foo.service 查看服务状态
- systemctl enable foo.service 开机自启动
- systemctl disable foo.service 开机不自启动
- systemctl is-enabled foo.service 查看特定服务是否为开机自启动
- systemctl list-unit-files --type=servive 查看各个级别下服务的启动与禁用情况
Shell概述
通常讲计算机硬件是有运算器、控制器、存储器、输入/输出设备等共同组成,而让各种硬件设备各司其职又能协同运行的东西就是系统内核。Linux系统的内核负责完成对硬件资源的分配、调度等管理任务。由此可见,系统内核对计算机的正常运行来讲太重要了,因此一般不建议直接去编辑内核中的参数,而是让用户通过基于系统调用接口开发出的程序或服务来管理计算机,以满足日常工作需要。
Shell就是这样一个命令行工具。Shell(也称为终端或壳)充当的是人与内核(硬件)之间的翻译官。用户把一些命令“告诉”终端,它就会调用相应的程序服务去完成某些工作。现在包括红帽系统在内的许多主流linux系统默认使用的终端是Bash解释器。
Linux命令
-
命令格式:命令名称 [命令参数] [命令对象]
命令对象一般是指要处理的文件、目录、用户等资源,命令参数可以用长格式(完整的选项名称),也可以用短格式(单个字母的缩写),两者分别用--与-作为前缀。
-
查看帮助命令
长格式:man --help
短格式:man -h
-
查看man命令帮助信息
命令:man man
常用系统工作命令
-
echo 命令
用于在终端输出字符串或变量提取后的值
命令格式: echo [字符串 | $变量]
例:
echo Hello World
echo $SHELL
-
date 命令
设置及设置系统时间或日期
命令格式:date [选项] [+指定的格式]
只需在date命令中输入以‘+’号开头参数,即可按照指定格式输出系统的时间或日期,日常工作中可以把备份数据的命令与指定格式输出的时间信息结合。
date命令参数及作用:
- %t 跳格[Tab键]
- %H 小时(00-23)
- %I 小时(00-12)
- %M 分钟(00-59)
- %S 秒(00-59)
- %j 今年的第几天
例:
按照“年-月-日 小时:分钟:秒”格式查看当期那系统时间:date "+%Y-%m-%d %H:%M:%S"
将系统的当前时间设置2021年11月21日20点30分:date -s "20211121 20:30:00"
查看今天是当年中的第几天:date "+%j"
-
reboot 命令
重启系统
-
poweroff 命令
关闭系统
-
wget 命令
用于在终端下载网络文件
格式:wget [参数] 下载地址
参数:
- -b 后台下载模式
- -P 下载到指定目录
- -t 最大尝试次数
- -c 断点续传
- -p 下载页面内所有资源,包括图片、视频等
- -r 递归下载
例:
递归下载xx网站内所有页面数据以及文件,下载后保存到xx目录中:wget -r -p www.baidu.com
-
ps 命令
查看系统中的进程状态
参数:
- -a 显示所有进程(包括其他用户进程)
- -u 用户以及其他详细信息
- -x 显示没有控制终端的进程
Liunx系统中运行这许多进程,有5中常见的进程状态,分别为:
- R(运行):进程正在运行或在运行队列等待
- S(中断):进程处于休眠中,当某个条件形成后或接收到信号时脱离该状态
- D(不可中断):进程不响应系统异步信号,即便使用kill命令也不能将其中断
- Z(僵死):进程已经终止,但进程描述符依然存在,直到父进程调用wait4()系统函数后将进程释放
- T(停止):进程收到停止信号后停止运行
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
显示目录中的文件信息
参数:
- -a 查看全部文件,包括隐藏文件
- -l 查看文件属性、大小等详细信息
- -d 查看目录属性信息
例:ls -ld /etc
文本编辑器命令
-
cat
查看纯文本文件(内容较少)
参数:
- -n 显示行号
-
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
用于统计指定文本行数、字数、字节数
参数:
- -l 只显示行数
- -w 只显示单词数
- -c 只显示字节数
例:passwd文件保存系统账户信息,统计当前系统中有多少个用户
wc -l /etc/passwd
-
stat
查看文件具体存储信息和时间信息
-
cut
按“列”提取文本字符
参数:
- -f 设置需要看的列数
- -d 设置间隔符号
例:
-
查看passwd文件中的用户信息
head -n 2 /etc/passwd
-
以冒号为间隔符提取第一列的内容
cut -d: -f1 /etc/passwd
-
diff
用于比较多个文本文件差异
参数:
- --brief 确认两个文件是否相同
- -c 查看文件内容具体的不同
例:
-
判断两文件是否相同
diff --brief x1.txt x2.txt
-
输出不同内容
diff -c x1.txt x2.txt
文件目录管理命令
-
touch
创建空白文件或设置文件时间
参数:
- -a 仅修改“读取时间”(atime)
- -m 仅修改“修改时间”(mtime)
- -d 同时修改 atime与mtime
例:touch -d "2021-11-11 20:00" xxx.txt
-
mkdir
创建空白目录
参数 -p 可以递归创建嵌套目录
例:mkdir -p a/b/c
-
cp
复制文件或目录
格式:cp [选项] 源文件 目标文件
如果目标文件是目录 》 复制到该目录中
如果目标文件也是普通文件 》询问是否覆盖
如果目标文件不存在 》 执行正常复制
参数:
- -p 保留原始文件属性
- -d 若对象为“链接文件”,保留该“链接文件”属性
- -r 递归持续复制(用于目录)
- -i 若目标文件存在询问是否覆盖
- -a 相当于-pdr
-
mv
剪切文件或文件重命名
-
rm
删除文件或目录
参数:
- -f 强制删除
- -r 删除一个目录
-
dd
按照指定大小和个数的数据块来复制文件或转换文件
能够按照用户指定大小和个数的数据块来复制文件内容
参数:
- if 输入文件名称
- of 输出文件名称
- bs 设置每个块大小
- count 设置要复制的“块”个数
例:
-
从/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
对文件进行打包压缩或解压
参数:
- -c 创建压缩文件
- -x 解开压缩文件
- -t 查看压缩包内有哪些文件
- -z 用Gzip压缩或解压
- -j 用bzip2压缩或解压
- -v 显示压缩或解压过程
- -f 保留文件名
- -p 保留原始权限和属性
- -P 使用绝对路径来压缩
- -C 指定解压到的目录
-f 参数必须放到参数的最后一位,代表要压缩或解压的软件包名称
一般使用: tar -czvf 压缩包名称.tar.gz
相应解压命令:tar -xzvf 压缩包名称.tar.gz -C /root/etc
-C 将压缩包文件指定解压到/root/etc目录中
-
grep
在文本中执行关键词搜索,并显示匹配结果
参数:
- -b 将可执行文件当作文本来搜索
- -c 仅显示找到的行数
- -i 忽略大小写
- -n 显示行号
- -v 反向选择,仅列出没有关键词的行
例:
-
查找Linux系统中,不再允许登录系统的用户信息
grep /sbin/nologin /etc/passwd
-
find
按照指定条件查找文件
参数:
- -name 匹配名称
- -perm 匹配权限(mode为完全匹配,-mode为包含即可)
- -user 匹配所有者
- -group 匹配所有组
- -mtime -n +n 匹配修改内容的时间(-n 指n天以内,+n指n天以前)
- -atime -n +n 匹配访问文件的时间(-n指n天以内,+n指n天以前)
- -size 匹配文件的大小
- -prune 忽略某个目录
- -exec ... {}\;后面可跟用于进一步处理搜索结果的命令
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/ ;