Linux-level

Posted tngh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux-level相关的知识,希望对你有一定的参考价值。

grep text file  在文件中搜索文件 -i 忽略大小写 -n 显示所在行号 -v颠倒(所有不包含的) -r递归(此时file为目录名)
grep -i text filename
rgrep 等效 grep -r
grep -E text file 使用正则表达式搜索 -E
egrep 等效 grep -E

sort 为文件的行进行排序
sort filename  只是显示排序后的内容,文件内容行没有改变
sort -o sortfilename filename 将排序后的内容另存为sortfilename
sort -r 倒序排列 
sort -R 随机排列
sort -n 按数字从小到大排列

wc 文件统计
wc filename  行数/单词数/字节 
wc -l filename 只统计行数
wc -e filename 只统计单词数
wc -c filename 只统计字节数

uniq 删除文件中重复的内容,只能删除连续的行
uniq filename  只显示删除后的内容,文件内容没有改变
uniq filename unfilename 把删除后的内容另存到unfilename文件中
uniq -c filename 统计行数
uniq -d filename 只显示重复的内容

cut 剪切文件的一部分内容
cut -c filename 根据字符数剪切  原文件不改变
cut -c 2-4 filename 每行只保留第二到第四个字符
cut -d , -f 1 filename -d分割符(以","分割) -f区域(第一个区域)
cut -d , -f 1 notes.csv 在notes.csv中以","为分割符,剪切出第一区域的内容

tngh,74/100,不错
annier,87/100,还行 #notes.csv中的内容

cut -d , -f 1,3 fliename  剪切出以","分割的 第一和第三区域的内容
cut -d , -f 2- filename   剪切出以","分割的 从第二区域开始至到最后的内容

>和>>:重定向到文件 >创建新文件,如果文件存在就重写(覆盖)文件。 >>把内容添加到文件的结尾,不重写
cut -d , -f 2- filename > refilename 将剪切出的结果重定向到refilename文件中

/dev/null 黑洞文件
2> 标准错误输出 2>>标准错误重定向到文件结尾
2>&1 标准错误与标准输出文件 输出到一个文件中

cat not_exist_file.txt > results.txt 2> errors.log #将not_exist_file文件重定向到results.txt文件中显示,如果出错重定向到errors.log文件中.
cat not_exist_file.txt > results.txt 2>&1  #将标准输出与标准错误都输出到results.txt文件中
cat not_exist_file.txt >> results.txt 2>&1 #将标准输出与标准错误都追加到results.txt文件中

< ,<< :从文件或键盘读取
< 用于指定命令的输入
cat < filename  结果同效于 cat filename 但过程不同“<”是直接在终端打印出文件的内容,而cat是先在终端打开文件,再将文件的内容打印出来

<< 从键盘读取
sort -n << END  #将是键盘输入模式(回车为换行) 以end结束,将键盘输入的结果排序
sort -n << END > filename 2>&1 将键盘输入的内容排序结果重定向到filename文件中

| :管道 #一个命令的输出是另一个命令的输入
cut -d , -f 1 fliename | sort 先剪切出文件的内容(以","分割,文件的第一区域),再将剪切出的内容排序
du | sort -nr | head  #du 遍历当前目录下的所有子目录 ,这句命令是将当前目录下的所有子目录以数据大小倒序排序,只输出前十个。

w #谁 在做什么 
update #正常运动时间
who #当前哪些用户在登陆
ps #进程的静态列表 默认只输出当前用户当前终端的进程
ps -ef #所有用户 所有终端的进程
ps -efH #以乔木状列出所有的进程
ps -u who #某个(who)用户下所有的进程
ps -aux #通过CPU和内存使用来过滤进程
ps -aux --sort -pcpu #根据CPU使用率降序排列
ps -aux --sort -pmem #根据内存使用率降序排列
ps -aux --sort -pcpu,+pmem #CPU和内存参数合并一起使用

pstree #以树形结构显示进程
ps -axjf和pstree效果比较类似

top #进程的动态列表 默认使用处理器的比率来排序的

使用第三方软件 glances  htop

在终端中停止进程Ctrl+C  终端中拷贝与粘贴是Ctrl+Shift+C ,Ctrl+Shift+V
kill #结束一个进程
kill -9  #强制结束进程
killall #结束所有进程,后接程序名而不是进程号
halt #关闭系统
reboot # 重启系统
shutdown #定时关机或重启系统
poweroff #关机

& #在后台运行进程,此时运行在后台进程与终端是有关系的,若终端关闭,进程也是结束
sudo find / -name "*.log" &
sudo find / -name "*.log" > filename  & #重定向与后台运行结合使用
sudo find / -name "*.log" > filename 2>&1 &  #

nohup #使进程与终端分离
nohup cp filename file_copy_name #在后台运行复制文件

Ctrl+Z #转到后台,并暂停运行
bg #使进程转到后台

进程状态 R(正在运行或在运行队列中等待) S (中断,休眠中,受阻) D(不可中断) Z(僵死,进程已终止,但进程描述符依然存在) T(停止)

jobs 显示后台进程状态

fg #使进程转到前台

date #时间
date "+%H:%M:%S"  #定制时间格式 时:分:秒

at #延时执行一个程序,只能让程序执行一次.at命令需要安装
sudo yum install at
at 22:12 #先输入要执行的时间,再输入要执行的程序或命令
sudo find......
退出按Ctrl+D

at 22:10 12/10/14 #在某年某月某日某时执行
at now +10 minutes #在十分钟之后执行

atq 和atrm #列出和删除正在等待执行的at命令

sleep #休息一会
touch file.txt; sleep 10m; rm file.txt # ";" 可以隔开多个要执行的命令,touch创建文件

1)";"前后的命令执行与";"没有关系,都会被执行
2)"&&"符号前的命令执行成功才会执行"&&"符号后的命令
3)"||"符号前的命令执行失败才会执行"||"符号后的命令

crontab #定时执行程序  at只能一次执行某个(某几个)命令,crontar可以重复执行 
sudo yum install vixi-cron crontab #crontab 也需要安装
chkconfig crond on  #设为开机自启动
service crond start #启动

Ubuntu系统中
sudo apt install cron #安装crontab
service cron restart或者restart cron #重启crontab

需要修改 .bashrc文件
echo "export EDITOR=nano" >> ~/.bashrc  #使用输出重定向,设置nano为默认文本编辑器.将export EDITOR=nano写入到.bashrc文件的结尾
source ~/.bashrc  #立即生效

crontab用于修改crontab文件,cron用于实际执行定时的程序
crontab 参数 -l:显示crontab文件
             -e:修改crontab文件,文件不存在就创建文件
             -r:删除crontab文件
crontab文件格式: m h dom mon dow command  #分 时 天(一月中的某天) 月 星期几 定时执行的命令

10 22 * * * touch filename  #每天的22点10分创建文件

tar #归档
tar -cvf #创建一个tar归档
tar -cvf file.tar file/ #此时为将目录里所有的文件归档
tar -cvf file.tar file1,file2,file3 #将文件1,2,3归档,此时归档的是文件

tar -tf #显示归档里的内容,并不解开归档
tar -tf file.tar

tar -rvf #追加文件到归档
tar -rvf file.tar file1.txt #将file.txt文件追加到file.tar归档里

tar -xvf #解开归档
tar -xvf file.tar

gzip和bzip2 压缩归档
gzip file.tar  #压缩后,后缀名为.gz
bzip2 file.tar  #压缩后,后缀名为.bz2
gunzip和bunzip2 解压
gunzip file.tar.gz

tar -zcvf file.tar.gz flie #一步到位,tar归档并用gzip压缩
tar -zxvf file.tar.gz  #解压
tar -jcvf file.tar.bz2 file #一步到位,tar归档并用bzip2压缩
tar -jxvf file.tar.bz2 #解压

zcat/bzcat,zmore/bzmore,zless/bzless,显示用gzip/bzip2压缩的文件内容
zip/unzip和rar/unrar 压缩/解压 zip和rar文件
命令有时可能需要安装才能运行
sudo yum install unzip
unzip file.zip #解压.zip文件
unzip -l file.zip #不解压,只看其中的内容
zip -r file.zip file #压缩  递归的压缩子目录中所有的文件
rar a file.rar file  #压缩
unrar e file.rar  #解压
unrar l file.rar  #不解压只看内容 

 编译安装软件
alien软件 #将deb(Debian,Ubuntu)安装包和rpm(Centos)安装包互相转换
首先需要安装alien
sudo yum install alien
alien -r file.deb #将.deb安装包转换成.rpm安装包
sudo rpm -i file.rpm #安装.rpm安装包  #注 yum安装时会安装依赖包 ,直接rpm安装不会安装依赖包

源代码编译安装
1)从网上下载程序源代码
 wget http://www.XXXXXXXX     #通常为.tar.gz的格式
2)解压压缩包
tar -zxvf xxx.tar.gz
3)进入解压目录中,运行configure文件
./configure  #用"./"直接运行 ,configure是可执行程序
4)运行make编译
sudo make
sudo make install

 

以上是关于Linux-level的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数