2.3常用系统工作命令
序号 |
命令 |
描述 |
|
|
1 |
echo |
打印字符串 |
echo Linux |
|
|
|
|
echo $HSELL |
|
|
|
字符写入文件中追加 |
echo “随便几行”>>文件名 |
|
2 |
date |
打印时间 |
date |
2019年06月12日星期三12:06:24CST |
|
|
|
date’+%Y-%m-%d%H:%M:%S’ |
2019-06-12 12:07:08 |
|
|
|
date’+%j’ |
打印当前天是今年多少天163 |
3 |
reboot |
重启 |
|
|
4 |
poweroff |
关机 |
|
|
5 |
wget |
网络下载 |
|
|
6 |
ps |
查看系统进程 |
|
|
7 |
top |
动态监控进程和系统负载 |
|
|
8 |
pidof |
查询指定进程的PID值 |
|
|
9 |
kill |
终止某个PID服务进程 |
|
|
10 |
kill |
终止某个服务全部进程 |
|
|
2.4系统状态检测
序号 |
命令 |
描述 |
用法 |
|
1 |
ifconfig |
打印网络信息 |
|
|
2 |
uname |
查看系统内核和版本信息 |
uname -a |
|
3 |
uptime |
系统负载 |
12:29:06up25min,1user,loadaverage:0.00,0.01,0.05 |
平均负载1,5,15,分钟的情况,不要长期超过1,生产不要超过5 |
4 |
free |
内存使用 |
|
total:总内存1.8G。user:已使用136M。free:可用未被任何应用使用的真实空间内存1.5G。shared:共享,被共享的物理内存。chche:缓存缓冲内存数。available:可用内存,真正可被程序应用的内存数量1.5G |
5 |
who |
查看登录用户信息 |
|
终端设备,登录到系统的时间 |
6 |
last |
查看登录记录 |
|
|
7 |
history |
显示历史执行过的命令 |
history 显示历史命令,默认记录一千条 |
|
|
|
|
history -c 清楚历史命令 |
|
|
|
|
!33 重复执行第 33 个某一个命令 |
|
8 |
sosreport |
诊断系统用 |
|
|
2.5工作目录常用命令
1 |
pwd |
显示当前路径 |
|
|
2 |
cd |
切换目录命令 |
cd /etc |
|
|
|
|
cd - |
返回上一次目录 |
|
|
|
cd ~ |
切换到家目录 |
3 |
ls |
文件信息 |
ls -a |
查看全部包括隐藏信息 |
|
|
|
ls -l |
查看文件属性大小 |
|
|
drwxr-xr-x.3root root40967月409:00shell |
d代表文件类型rwxr-xr-x三个权限文件所有者,所属组,其他用户 |
两个root,代表文件所属的组4096代表文件字节大小时间为最后一次修改时间 |
|
|
|
ls -al |
整合上面两个 |
|
|
|
ls -ld /etc |
查看etc目录信息 |
4 |
clear |
清屏 |
|
|
2.6文本编辑器
序号 |
命令 |
描述 |
用法 |
|
1 |
cat |
查看短文件纯文本内容 |
cat -n |
显示行号 |
2 |
more |
查看长文件文本内容 |
空格回车下翻 |
|
3 |
head |
前多少行 |
head -n 20 |
前20行 |
4 |
tail |
后多少行 |
tail-n 20文件名 |
后20行 |
|
|
|
tail -f 文件名 |
查看日志持续刷新 |
5 |
tr |
替换文本文件中的字符 |
tr [原始字符] [目标字符] |
cat 文件名 | tr[a-z][A-Z] |
6 |
WC |
查看文本文件信息 |
wc 文件名 |
行数,字数,字节数 |
7 |
stat |
查看文件的具体存储信息和时间等信息 |
stat 文件名 |
文件的三种时间状态:Access最近访问时间Modify最新修改时间Change最近更新时间 |
8 |
cut |
按列提取数据 |
cut -d: -f1 文件名 |
把文件每一行按照冒号分割,区第一列 |
9 |
diff |
比较文本差异 |
|
|
2.7目录管理
序号 |
命令 |
描述 |
详细描述 |
|
1 |
touch |
创建空白文件 |
touch 文件名 |
|
|
|
|
touch -d “2017-05-0415:44” anaconda-ks.cfg |
修改文件时间 |
|
|
|
-a仅修改“读取时间”(atime)-m仅修改“修改时间”(mtime)-d同时修改atime与mtime |
|
2 |
mkdir |
创建文件夹 |
mkdir 文件夹名称 |
创建文件夹 |
|
|
|
mkdir -p a/b/c/d |
递归创建文件夹 |
3 |
cp |
复制 |
cp test.txt testdir/test.txt |
基本的复制 |
|
|
|
-p |
保留原始文件属性 |
|
|
|
-d |
如果对象为链接对象则保留该链接属性 |
|
|
|
-r |
递归复制 |
|
|
|
-i |
若目标文件存在则询问是否覆盖 |
|
|
|
-a |
相当于-pdr(p、d、r为上述参数) |
4 |
mv |
剪切,重命名 |
mv 源文件目标文件 目标文件名 |
|
5 |
rm |
删除 |
-r 递归 -f 强制删除 |
|
6 |
dd |
|
|
|
7 |
file |
查看文件类型 |
文本,目录,设备等都算文件,无法根据后缀判断类型,用file命令查看类型 |
|
2.8打包压缩搜索
序号 |
命令 |
描述 |
用法 |
|
1 |
tar |
压缩 |
tar -czvf压缩的文件名称要压缩的文件 |
c压缩,z使用Gzip压缩结解压,v打印过程,f指定文件名 |
|
|
解压 |
tar -xzvf待解压的文件 |
x解压缩过程 |
2 |
grep |
文本中搜索匹配 |
grep 查找的文本文件名称 |
grep hello test.txt -n |
|
|
|
-b |
将可执行文件当文本来搜索 |
|
|
|
-c |
仅显示找到的行数 |
|
|
|
-i |
忽略大小写 |
|
|
|
-n |
显示行号 |
|
|
|
-v |
反选 |
|
|
找出所有限制登录的用户 |
grep “/sbin/nologin” /etc/passwd; |
|
3 |
find |
查找文件并且进行操作 |
find / -name“test” |
查找文件名字是test |
|
|
|
-name |
匹配名称 |
|
|
|
-perm |
匹配权限(mode为完全匹配,-mode为包含即可) |
|
|
|
-user |
匹配所有者 |
|
|
|
-group |
匹配所有组 |
|
|
|
-mtime -n +n |
匹配修改内容的时间(-n指n天以内,+n指n天以前) |
|
|
|
-atime -n +n |
匹配访问文件的时间(-n指n天以内,+n指n天以前) |
|
|
|
-ctime -n +n |
匹配修改文件的时间(-n指n天以内,+n指n天以前) |
|
|
|
-nouser |
匹配无所有者的文件 |
|
|
|
-nogroup |
匹配无所有组的文件 |
|
|
|
-newer f1 !f2 |
匹配比文件f1新但比f2旧 |
|
|
|
–type b/d/c/p/l/f |
匹配文件类型(后面的字母分别代表1.设备2.目录3字符设备4管道5链接文件6文本文件 |
|
|
|
-size +50mb -50mb |
匹配文件大小+50代表大于50MB-50代表小于50MB |
|
|
|
-prune |
忽略某个目录 |
|
|
|
-exec…..{}; |
后面可跟用于进一步处理搜索结果的命令(下文会有演示) |
|
|
|
find /etc -name “host*” -print |
查询/etc文件夹下所有host开头的文件,并且打印出来 |
|
|
|
find / -perm -4000 -print |
查询全部文件权限为4000的文件输出 |
|
|
|
find / -usershuoshuo -exec cp -a {} /root/shuoshuo/; |
搜索所有的属于shuoshuo用户的文件 |
3.1输入输出重定向
序号 |
命令 |
用法 |
|
|
1 |
STDIN文件描述0 |
标准输入重定向,默认从键盘输入,也可以重其他文件或者命令中输入 |
1.<用法:命令<文件 |
将文件作为命令的标准输入 |
|
|
|
2.<<用法:命令<<分界符 |
从标准输入中读入数据,直到遇见分界符才停止 |
|
|
|
3.<>用法:命令<文件1>文件2 |
将文件1作为命令的标准输入并将标准输出到文件2 |
|
|
|
查看文件行数 |
wc -l < test.txt |
2 |
STDOUT文件描述1 |
标准输入重定向,默认输出到屏幕,重定向到文件或者别里面 |
|
|
|
|
符号:>用法: |
命令>文件 |
将标准输入重定向到文件中(清空原始数据) |
|
|
符号:2>用法: |
命令2>文件 |
将错误输入重定向到文件中(清空原始数据) |
|
|
符号:>>用法: |
命令>>文件 |
将标准输入重定向到文件中(追加到原始数据后面) |
|
|
符号:2>>用法: |
命令2>>文件 |
将错误输入重定向到文件中(追加到原始数据后面) |
|
|
|
用法:命令>>文件2>&1或者:命令&>>文件 |
将标准输出与错误输出都写到同一个文件中(追加写入) |
3.2管道符
1 |
管道符 |
| |
把前个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入 |
|
|
|
|
grep “/sbin/nologin” /etc/passwd |
从nologin文件中查找行,匹配行上有/etc/passwd的,找出所有限制登录的用户 |
|
|
|
grep “/sbin/nologin” /etc/passwd | wc -l |
统计前一步有多少行, |
|
|
|
ls -l | more |
|
|
|
修改用户密码,需要输入两次确认,编写自动化脚本会出现问题,所以把管道符和passwd命令的–stdin结合使用 |
修改密码的命令:修改自己账号密码直接输入passwd |
echo”新密码” |
|
|
自定义的的邮箱发送命令,一直输入直到结束 |
mail -s “readme” root@123.com<<over |
输入over则结束输入,否则一直输入命令 |
3.34命令行通配符和转义符
1 |
通配符 |
ls - l /dev/sda* |
星号*匹配符 |
代表0~任意多个字符查看所有硬盘文件的相关属性 |
|
|
|
问好? |
匹配单个任意符号 |
|
|
|
[0-9] |
匹配0-9单个数字的字符 |
|
|
|
[abc] |
匹配abc三个字符单个字符 |
2 |
转义符反斜杠() |
使反斜杠后面的一个变量变为单纯的字符串 |
|
|
|
单引号(‘’) |
转义其中所有的变量为单纯字符串。 |
|
|
|
双引号(“”) |
保留其中的变量属性 |
|
|
|
反引号(``) |
把其中的命令执行后返回结果。 |
|
|
|
–实际操作– |
|
|
|
|
定义变量 |
PRICE=5 |
等号左右不能有空格 |
|
|
|
双引号将变量符替换成变量 |
echo “Price is $PRICE” |
显示:Price is 5 |
|
|
双$$符号像是神秘代码?? |
echo “Price is $$PRICE” |
显示:Price is 3789465PRICE |
|
|
想要显示$符号,加一个右杠 |
echo “Price is \$$PRICE” |
显示:Price is $5 |
|
echouname-a |
效果和单独打印uname-a一样 |
|
|
3 |
命令别名 |
查看别名重定向 |
alias rm |
alias别名 |
|
|
命令重定向,设置重名 |
alias rm=’rm -i’ |
|
|
|
删除重名 |
unalias 别名 |
|
4 |
查看命令执行 |
type命令 |
type mkdir |
mkdir是/usr/bin/mkdir |
5 |
重要的环境变量 |
HOME |
用户的主目录(即家) |
|
|
|
SHELL |
用户使用的shell解释器名称 |
|
|
|
HISTSIZE |
输出的历史命令记录条数 |
|
|
|
HISTFILESIZE |
保存的历史命令记录条数 |
|
|
|
MALL |
邮件保存的路径 |
|
|
|
LANG |
系统语言,语系名称 |
|
|
|
RANDOM |
随机生成一个数字范围(0~32767) |
|
|
|
PS1 |
bash解释器的提示符 |
|
|
|
PATH |
定义解释器搜索用户执行命令的路径 |
|
|
|
EDITOR |
用户默认的文本编辑器 |
|
6 |
把Linux一般变量转换成全局变量 |
export变量名 |
|
|
4.Vim文本编辑器
序号 |
命令 |
描述 |
|
1 |
三种模式 |
输入模式命令模式末行模式 |
|
2 |
默认进入的命令模式 |
dd |
删除(剪切)光标所在行 |
|
|
5dd |
删除(剪切)光标处开始的5行 |
|
|
yy |
复制光标所在行 |
|
|
5yy |
复制光标所在行开始的5行 |
|
|
n |
显示搜索命令定位的下一个字符串 |
|
|
N |
上一个字符串 |
|
|
u |
撤销上一步操作 |
|
|
p |
将之前删除或者复制的数据粘贴到光标后面 |
3 |
末行模式 |
:wq |
保存退出 |
|
|
:q! |
强制退出,(放弃对文档的修改) |
|
|
q退出w保存 |
|
|
|
:wq! |
强制保存退出 |
|
|
:setnu |
显示行号 |
|
|
:setnonu |
不显示行号 |
|
|
:整数 |
跳转行 |
|
|
:命令 |
|
|
|
:s/one/two |
将光标所在行的第一个one替换成two |
|
|
:s/one/two/g |
将光标所在行的所有one替换成two |
|
|
:%s/one/two/g |
将全文的one替换成two |
|
|
?字符串 |
从下到上搜索 |
|
|
/字符串 |
从上到下 |
4 |
修改系统名称 |
/etc/hostname |
修改后重庆就可以 |
5 |
错误关闭产生的隐藏文件处理 |
产生的文件默认都是点.开头,结尾格式为.swp文件 |
vi -r .xxxx.swp就可以恢复文件恢复之后swp文件还存在,直接删除就可以 |
4.3定时任务一次性
1 |
一次性任务 |
at时间然后输入指令 |
|
|
安装at |
yum install at |
启动at service atd start |
|
|
systemctl restart httpd | at 22:00 |
|
|
|
查看所有定时任务 |
at -l |
|
|
删除定时任务 |
atrm 序号 (at-l查询出的序号) |
1 2 3
| at 22:00 >systemctl restart httpd >ctrl + d 结束输入
|
4.4定时任务循环任务
系统调度的任务一般存放在/etc/crontab这个文件下
/etc/cron.deny 表示不能使用crontab 命令的用户
/etc/cron.allow 表示能使用crontab的用户。
如果两个文件同时存在,那么/etc/cron.allow 优先。
如果两个文件都不存在,那么只有root用户可以安排作业。
序号 |
命令 |
|
|
|
1 |
crontab |
创建任务 |
crontab-e |
会打开一个vi文件编辑器,在里面输入命令。 |
|
|
|
打开后文件里面写入如下两行内容然后wq保存退出就可以五个乘号date>>/root/shell/定时任务/data1.txt |
头五个*号代表一分钟执行一次后面的指令data>>文件意思是把当前时间追加到文件后面可以使用命令tail-f文件查看 |
|
|
|
crontab -l |
查看目前定时任务 |
|
|
|
crontab -r |
删除目前定时任务 |
|
|
|
分时天月星期 |
|
|
|
|
分取值为0~59的整数时取值为0~23的任意整数日取值为1~31的任意整数月取值为1~12的任意整数星期取值为0~7的任意整数,其中0与7均为星期日 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| 43 21 * * * 每天的21:43 执行 15 05 * * * 每天的05:15 执行 0 17 * * * 每天的17:00 执行 0 17 * * 1 每周一的 17:00 执行 0,10 17 * * 0,2,3 每周日,周二,周三的 17:00和 17:10 执行 0-10 17 1 * * 毎月1日从 17:00到7:10 毎隔1分钟 执行 0 0 1,15 * 1 毎月1日和 15日和 一日的 0:00 执行 42 4 1 * * 毎月1日的 4:42分 执行 0 21 * * 1-6 周一到周六 21:00 执行 0,10,20,30,40,50 * * * * 每隔10分 执行 */10 * * * * 每隔10分 执行 * 1 * * * 从1:0到1:59 每隔1分钟 执行 0 1 * * * 1:00 执行 0 */1 * * * 毎时0分 每隔1小时 执行 0 * * * * 毎时0分 每隔1小时 执行 2 8-20/3 * * * 8:02,11:02,14:02,17:02,20:02 执行 30 5 1,15 * * 1日 和 15日的 5:30 执行
|
Linux 查询目录下每个文件夹的大小
du -sh *
命令效果,文件和文件夹的大小都会计算出来:
