Linux常用指令(持续更新)

1 系统管理

1.1 系统安全

1、远程登陆其他主机:ssh [主机IP]

2、查看系统信息

cat /etc/*-release
more /etc/issue
uname -m 或uname -p (可查看CPU架构是x86还是ARM)

3、查看服务器类型
dmidecode | grep "Product Name"

4、查看suse版本:cat /etc/SuSE-release
5、查看系统编码:locale

6、获取硬盘被占用了多少空间
df -h
当前文件大小
du -sh ./*

7、重启服务器:shutdown -r now

8、查看os内核版本

ll /lib/modules/`uname -r` 

安装内核版本包 yum install kernel-devel-$(uname -r)    

9、查询内核版本,安装内核包

ll /lib/modules/`uname -r`

yum install kernel-devel-$(uname -r)       

 10、修改时间

date  #查询

date -s "时间" #修改为对应时间

 11、定时任务 crontab

crontab -e

crontab -l

1.2 进程

查看系统支持最大进程数:sysctl kernel.pid_max

查看已用的进程数:ps -eLf | wc -l

查看当前线程数:ps -o nlwp,pid,args, -u omm | awk '{sum+=$1} END {print "", sum}'

指定的进程产生的线程数目:ps -mq PID

通过服务名称查找进程:ps -ef | grep  [xxx服务]

通过进程ID查找服务(PID即进程id):ps -ef | grep  [PID]

杀掉进程:kill pid

批量杀掉进程,如通过关键字test:for((i=1;i>0;i++));do ps -ef | grep test | grep -v grep | awk '{print $2}' | xargs kill -9 ;done

通过关键字批量查找进程并kill 掉:  ps aux | grep xxxxtest | awk '{print $2}' | xargs kill -9

当前系统进程情况:jps

获取当前系统占用CPU最高的前10个进程

ps aux|head -1;ps aux|sort -rn -k3|head -10

获取当前系统占用内存最高的前10个进程

ps aux|head -1;ps aux|sort -rn -k4|head -10

 

1.3 用户及权限

1、用户权限

chmod u+x -R ./*    表示用户权限中,增加执行权限

可参考 https://blog.csdn.net/bjarnecpp/article/details/79912495

 

1.4 文件系统管理

mount -o remount /dev/sda /opt  #重新挂载

2 网络管理

查看网卡型号:lspci -vvv | grep Ethernet

根据进程查端口 :netstat -nap | grep [PID]

查看全网监听:netstat -lnp | grep -v "127.0.0.1"  | grep -v "::1:"

查看系统默认端口范围:cat /proc/sys/net/ipv4/ip_local_port_range

根据端口查看对应进程:netstat -tunlp | grep [端口号]

查看端口是否互通:ssh -v -p 5000 root@xx.xx.xx.xx

释放及恢复网卡:ifconfig eth0 down  、 ifconfig eth0 up

配置ip地址: ifconfig eth0 192.168.2.10 netmask 255.255.255.0

请求接口 :curl -i -k --negotiate -u https://xxx.com/index.html

 

3 软件|打印|工具

 

4 文件目录管理

4.1 文件查找和比较

1、查找关键字文件

df --local -P | awk '{if(NR!=1) print $6}' | xargs -I '{}' find '{}' -xdev -name "*.log" -o -name "*.log.zip" | sort

2、查找关键字文件,并排除包含No 文本的文件

find . -name "*.log" | grep -v No

4.2 文件内容查看

more text.txt | grep xxx   打印关键字

4.3 文件编辑

1、sed自动编辑文件,可以配合正则表达式

sed -i 's/原字符串/新字符串/' /home/test.txt

sed -i 's/\/opt/\/tmp' /opt/test.txt   #将/opt 替换为 /tmp,/符号前面需添加转移符

原值:ltest1=value1
sed -i -e 's|test1=value1, test2=value2|' test.properties
修改后: test2=value2

 2、vi 纯文本编辑

按ESC键 跳到命知令模式,然后:
:w   保存文件但不退出vi
:w file   将修改道另外保存到file中,不退出vi
:w!   强制保回存,不推出vi
:wq    保存文件并退出vi
:wq!   强制保存文件,答并退出vi
q:       不保存文件,退出vi
:q!      不保存文件,强制退出vi
:e!      放弃所有修改,从上次保存文件开始再编辑
shift+q q  退出
:set number 或 :set nu   打印行号
shift + g    切换到最后一行

【多行删除】

 1.首先在命令模式下,输入“:set nu”显示行号;
 2.通过行号确定你要删除的行;
 3.命令输入“:32,65d”,回车键,32-65行就被删除了,很快捷吧
 如果无意中删除错了,可以使用‘u’键恢复(命令模式下)

【全局替换】

:% s/XXX/YYY/g    XXX是需要替换的字符串,YYY是替换后的字符串

4.4 文件处理

1、创建软链接

将目录/opt/test1链接到目录/opt/test2

ln  -s /opt/test1  /opt/test2

2、cat  

cat xxx.txt | grep  xxx    #查找文件中关键字

3、touch

touch -mt 202107181222 aa.log # 修改文件的时间

touch -r 文件 文件夹   #把文件的时间设置给文件夹

touch -d "2024-07-18 12:22:00"  xxx/    #设置指定时间

4.5 目录基本操作

cp -rf ab.txt cd.txt    #强制覆盖

ls -lht      查看目录下所有文件大小

du -s -h   目录下文件大小

4.6 文件权限属性设置

 

文件权限
r 读权限read 4
w 写权限write 2
x 操作权限execute 1

 

 

1、查看csv文件一共有多少行数据
wc -l xxx.csv

2、cat

cat filename | tail -n 100 显示文件最后100行

cat filename | head -n 100 显示文件前面100行

cat filename | tail -n +100 从100行开始显示,显示100行以后的所有行

cat filename | head -n 500 | tail -n +100    显示100行到500行

3、grep

grep -r 'xxx' filename | head -n 5  搜索匹配xxx的结果中显示前5行

4.7 文件过滤分割与合并

1、显示匹配某个结果之后的1行,使用 -A 选项:

grep 'buffer.dir' -A1 core-site.xml
<name>fs.obs.buffer.dir</name>
<value>${java.io.tmpdir}/obs</value>

 2、查看CSV文件一共有多少行数据

 wc -l  xxx.csv

3、查看test.txt文件中xxx.java的数量

grep -o xxx.java test.txt | wc -l

4.8 文件压缩与解压

1、zip

压缩文件:zip -r mysql.zip mysql 

压缩所有文件,不包括文件夹:zip -qj test.zip ./*

压缩所有文件,包括文件夹:    zip -qr test.zip *

解压文件:unzip -d newfile xxx.zip

2、tar

解压:tar -zxvf FileName.tar.gz   或  tar -xvf FileName.tar.gz      #其中添加-z或--gzip或--ungzip:通过gzip指令处理备份文件;

压缩:tar -zcvf FileName.tar.gz DirName

3、gz格式

解压:gunzip file.gz

压缩:gzip -d test.log.49.gz

 

4.9 文件备份和恢复

 

4.10 文件传输

1、上传下载文件工具

安装工具:yum install lrzsz

上传文件:rz test.txt

下载文件:sz test.txt

2、远程传输

 

上传本地文件到远程机器指定目录:scp /opt/soft/nginx-0.5.38.tar.gz root@10.10.10.10:/opt/soft/scptest

从远程复制到本地:scp root@10.10.10.10:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/

 

 

 

5 硬件|检测|内核|shell

5.1 性能检测

1、free

(1) free命令默认是以kb为单位显示的,可以用free -m 用Mb单位来显示。

(2) Mem行 :   total = used  + free    其中buffers和cached虽然计算在used内, 但其实为可用内存。

(3) Mem下一行:used为真实已占内存,free为真实可用内存。

(4)Swap:内存交换区的使用情况。

 

2、top

(1)第一行: 系统时间  + 系统运行时间 + 几个用户 + 1/5/15分钟系统平均负载

(2)第二行:进程总数(total) + 正在运行进程数(running) + 睡眠进程数(sleeping) + 停止的进程数(stopped)+ 僵尸进程数(zombie)

(3)第三行:用户空间CPU占比(us) + 内核空间CPU占比(sy)+ CPU空置率(id)

注解:

PID :进程ID

USER :用户名

PR :优先级

NI :负值表示高优先级,正值表示低优先级。

VIRT :虚拟内存

RES : 真实内存

SHR :共享内存

S :进程状态 D=不可中断的睡眠状态; R=运行; S=睡眠 ;T=跟踪/停止; Z=僵尸进程

参数:

top -d 2 :每隔2秒显式所有进程的资源占用情况

top -c  :每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)

top -p 12345 -p 6789:每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况

top -d 2 -c -p 123456 :每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数

 

3、清除缓存

sync

echo 3 > /proc/sys/vm/drop_caches

 

 4、lsof查询进城打开文件

lsof | grep deleted  #清除数据为释放空间  

 

6 扩展:

Linux 命令大全》参考  https://www.runoob.com/linux/linux-command-manual.html

《Linux命令大全》参考 https://man.niaoge.com/

posted @ 2020-10-26 19:50  七彩木兰  阅读(115)  评论(0编辑  收藏  举报