一、正则表达式和数据操作
grep命令,筛选命令,全局搜索正则表达式并打印
grep text file
在profile中搜索包含path的行,grep path /etc/profile;搜索包含hello world的行,grep ’hello world‘ /etc/profile
-i,忽略大小写;-n,显示行号;-v,显示不包含文本的行;-r,在所有子目录和子文件中查找;-E,使用正则表达式;
grep -E 与 egrep一致
greo -E ^path /etc/profile(匹配行首)
sort,为文件排序 sort file,按照顺序将file中的行进行排序
-o,将排序后的内容写入新文件 sort -o 输出文件 输入文件
-r,倒序排列;-R,随机排序;-n,对数字排序
wc,文件统计,显示文件行数,单词数,字节数;
-l,只统计行数;-w,统计单词数;-c,统计字节数;-m,统计字符数
uniq,删除文件中重复内容;只能将连续重复行变为一行
uniq file;uniq 输入文件 输出文件
-c,统计重复行数;-d,只显示重复行的值
cut,剪切文件
-c,根据字符数来剪切
cut -c 2-4 file(每一行只保留第二个字符到第四个字符)
二、流、管道、重定向
重定向:把本来显示在终端的结果,输送到其他地方
管道:把两个命令连接起来使用,一个命令的输出作为另一个命令的输入
>和>>,重定向到文件,就不会显示在终端中
cut命令,根据分隔符剪切,cut -d , -f 1 notes.csv,按照逗号分隔符剪切csv文件中的第一列
>,将输出内容重定向到文件中 cut -d , -f 1 notes.csv > student.txt,若重定向文件不存在,则新建文件;否则覆盖该文件
若不想在终端显示,也不写入到文件中,则可以将内容重定向到 /dev/null中
>>,重定向到文件末尾,不会覆盖文件,只是追加到文件末尾
stdin,stdout,stderr,标准输入流、标准输出流、标准错误流
>,>>只能将标准输出重定向到文件
2>可以将标准错误输出重定向到文件 cat not_exist_file.csv > results.txt 2> errors.log
2>&1,将标准错误输出与标准输出重定向到相同文件 cat not_exist_file.csv >> results.txt 2>&1
输入重定向 <,<<
cat < notes.csv
<<,从键盘读取
sort -n << END
wc -m << END
管道,|,
排序输出结果,cut -d , -f 1 notes.csv | sort
sudo grep log -Ir /var/log | cut -d : -f 1| sort | uniq
三、进程和系统监测
Linux是一个多任务、多用户的系统
w,查看用户信息
tload,实时查看系统负载
ps,top命令,列出运行的进程
ps -ef,列出所有进程;-efH,按照乔木状列出进程;-u xxx,列出指定用户进程;-aux,通过cpu和内存过滤进程
pstree,以树形结构显示进程,与ps -asjf效果类似
top,实时进程状态
q键,退出top状态;h,显示帮助文档;u,依照用户过滤显示;k,结束某些进程;s,改变更新时间;
ctrl + c和kill,停止进程命令
ctrl + c,结束终端中的进程
kill + 进程号,结束进程,kill -9 +进程,立即结束进程;killall + 程序名,结束多个进程
halt,关闭系统;reboot,重启系统;poweroff,关闭系统
&和nohup,后台运行进程
让一个进程在后台运行,cp file.txt file-copy.txt &,但是依然与终端相关联,一旦终端关闭,进程自动结束
nohup让进程与终端分离
ctrl + z, jobs,bg,fg控制进程前后台切换
ctrl + z,转到后台,暂停运行;bg,使进程转入后台,开始运行
jobs,显示后台进程状态
fg,使进程转到前台
四、任务的定时和延期
可以使用at设定一个程序的执行时间
at 22:10(在22:10的时间点执行的程序,回车并输入程序),并使用ctrl+d退出命令输入
at 22:10 tomorrow;at 22:10 12/10/20;at now + 10 minutes
atq、atrm,列出和删除正在等待执行的at任务
atq,列出正在等待执行的at任务
atrm+任务编号,删除正在等待执行的at任务
sleep命令,在两条命令之间插入休眠时间
touch file.txt; sleep 10; rm file.txt
&&和||,逻辑与,逻辑或
&&前的命令执行成功,才会执行后面的命令
||前面的命令执行失败,才会执行后面的命令
;不论分号前命令是否执行成功,都会执行后面的命令
crontab命令,可以定时重复执行
前期配置,修改.bashrc文件,将export EDITOR=nano添加到.bashrc文件中(echo "export EDITOR=nano">> ~/.bashrc)
source ./bashrc让配置立即生效
crontab,-l,显示crontab文件;-e,修改crontab文件;-r,删除crontab文件
修改crontab文件,修改格式 m h dom mon dow command
每天的22点10分都在家目录下创建file.txt 10 22 * * * touch ~/file.txt
五、文件的解压与压缩
打包,将多个文件变成总的文件,成为archive
压缩,使用算法将文件压缩
tar命令,将多个文件归档为总的文件,然后使用gzip或者bzip2压缩归档文档
tar,将多个文件合并一个文件
-cvf,创建归档文件 tar -cvf sorting.tar sorting/
-tf,显示归档里的内容,并不解开归档
-rvf,追加文件到文档
-xvf,解开归档
gzip,bzip2压缩归档
.tar.gz,用gzip压缩后的文件后缀名
.tar.bz2,用bzip2压缩后的文件后缀名
gzip xx.tar
gunzip和bunzip2进行解压
gunzip xxx.tar.gz
用tar同时进行归档和压缩
tar -zcvf sorting.tar.gz sorting/
解压
tar -zxvf sorting.tar.gz
-jcvf,归档,然后用bzip2压缩
-jxvf,解压bzip2的压缩文档
zcat可以查看tar.gz文件;bzcat查看tar.bz2文件
使用zip、rar、unzip、unrar压缩和解压对应文件
六、编译安装软件
下载源代码,解压压缩包,配置,编译,安装
alien软件可以将.rpm和.deb软件相互转换,sudo yum install alien
alien -r *.deb,将deb文件转换为rpm,然后使用rpm -i xxx.rpm即可安装
编译安装
wget命令下载压缩文件
tar -zxvf xxx.tar.gz解压文件
./configure,检查是否电脑配置是否符合要求
make,编译源码
make install,安装程序