Liunx下常用命令收集
1、查看liunx版本
[~] cat /etc/redhat-release -- 查看内核版本 [~] uname -a
2、常用修改IP方式(static模式)
[~] cd /etc/sysconfig/network-scripts [~] vi ifcfg-eth0 [~] /etc/init.d/network restart
3、截取IP
ifconfig ens33|grep "inet"|awk '{print $2}'|grep '^[0-9]'
4、查看服务器资源消耗(内存&磁盘*负载)
(1)free - 查看服务器内存消耗
-- 参数说明 { -b 以 Byte 为单位显示内存使用情况。 -k 以 KB 为单位显示内存使用情况。 -m 以 MB 为单位显示内存使用情况。 -g 以 GB 为单位显示内存使用情况。 -o 不显示缓冲区调节列。 -s<间隔秒数> 持续观察内存使用状况。 -t 显示内存总和列。 -V 显示版本信息。 } -- 显示参数说明 { total: 总计物理内存的大小。 used: 已使用多大。 free: 可用有多少。 Shared: 多个进程共享的内存总额。 Buffers/cached: 磁盘缓存的大小。 第三行 (-/+ buffers/cached): used: 已使用多大。 free: 可用有多少。 SWAP:交换分区,也就是我们通常所说的虚拟内存 } -- 常用命令 [~] free -mh total used free shared buff/cache available Mem: 1.8G 1.6G 78M 16M 137M 65M Swap: 0B 0B 0B [~] free -m total used free shared buff/cache available Mem: 1837 1622 76 16 139 64 Swap: 0 0 0 [~] free -g total used free shared buff/cache available Mem: 1 1 0 0 0 0 Swap: 0 0 0 [~]# free -t total used free shared buff/cache available Mem: 1881640 1662340 72144 17004 147156 62364 Swap: 0 0 0 Total: 1881640 1662340 72144 ## 每10s输出一次 [~] free -s 10 total used free shared buff/cache available Mem: 1881640 1661828 65884 17004 153928 60580 Swap: 0 0 0 total used free shared buff/cache available Mem: 1881640 1664684 72740 17004 144216 61496 Swap: 0 0 0 total used free shared buff/cache available Mem: 1881640 1664524 64092 17004 153024 57888 Swap: -- 备注信息 { 第二行 (mem) 的 used/free 与第三行 (-/+ buffers/cache) used/free 的区别。这两个的区别在于使用的角度来看,第一行是从 OS 的角度来看,因为对于 OS,buffers/cached 都是属于被使用,所以他的可用内存是 2098428KB, 已用内存是 30841684KB, 其中包括,内核(OS)使用+Application(X, oracle,etc) 使用的+buffers+cached. 第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为 buffer/cached 是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached 会很快地被回收。 所以从应用程序的角度来说,可用内存=系统 free(memory+buffers+cached)。 } -- 内存交换机制 { ## 可用内存少于额定值的时候,就会开会进行交换。如何看额定值: [~] cat /proc/meminfo }
(2)top - 查看服务器负载CPU等
View Code
(3)df - 查看服务器磁盘消耗
-- 查看磁盘消耗 [~] df -TH Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 953M 0 953M 0% /dev tmpfs tmpfs 964M 0 964M 0% /dev/shm tmpfs tmpfs 964M 18M 946M 2% /run tmpfs tmpfs 964M 0 964M 0% /sys/fs/cgroup /dev/vda1 ext4 43G 17G 24G 43% / tmpfs tmpfs 193M 0 193M 0% /run/user/0
5、sshpass - 免密传输文件
-- 参数说明
首次使用 sshpass 命令前需要检查 /etc/ssh/ssh_config, 将 #StrictHostKeyChecking ask 修改为StrictHostKeyChecking no, 然后 systemctl restart sshd重启ssh服务
-- 使用样例
-- 常用方式一: 免密登录远程主机 # 其中-p选项后面指定密码 [~] sshpass -p '123456' ssh root@192.168.16.19 # 从文件的读取密码进行远程登陆 [~] sshpass -f ~/passwd.txt ssh root@192.168.16.20 -- 免密传输文件 [~] sshpass -p '123456' scp ~/Movie/bmw.ts root@192.168.16.21:/tmp [~] sshpass -p '123456' scp -o StrictHostKeyChecking=no timage.tgz root@10.129.10.219:/home/
6、find - 文件查找
View Code
7、vim
View Code
8、查看文件大小
(1)du
-- 查看文件大小
[~] du -h --max-depth=1 php [~] du -h --max-depth=1 /usr/local/src/zabbix-4.0.3/frontends/php
-- 查看文件或文件夹大小
[~]# du -sh * 4.0K app 17M demo-1.jar
-- 查看目录下所有文件的大小并按照大小排序
[~] du -sh * | sort -rh
(2)ll
-- 查看当前文件夹下所有文件信息 [~] ll -rth total 74M drwxr-xr-x 2 tingyun tingyun 4.0K Nov 29 2021 app -rw-r--r-- 1 root root 21M Dec 28 2021 springboovue02-0.0.1-SNAPSHOT.jar -- 在当前目录查看其他目录下的文件信息 [~] ll -h /usr/local/php/etc
9、cp - 文件复制
(1)文件复制:-r 递归
[~] cd /usr/local/src/lua/frotends [~] cp -rf php /usr/local/dome/html/ -- 切换到frotends目录,拷贝php文件
(2)文件备份:常用于修改配置文件前备份,可以提供后续还原
[~] cp /usr/local/mysql/my.conf /usr/local/mysql/my.conf .bak
10、mv - 文件移动
(1)文件移动
-- 把当前目录的一个子目录里的文件移动到另一个子目录里 [~] mv 12.tar.gz /tmp ## 文件名 目标目录地址 -- 移动当前文件夹下的所有文件到上一级目录 [~] mv * ../
(2)文件名称重命名
-- 将my.conf配置文件修改为my.conf.bak [~] mv my.conf my.conf.bak
11、tar 命令
View Code
12、防火墙 - firewall
(1)参考命令
1、查看版本: firewall-cmd --version 2、查看帮助: firewall-cmd --help 3、显示状态: firewall-cmd --state 4、查看所有打开的端口: firewall-cmd --zone=public --list-ports 5、更新防火墙规则: firewall-cmd --reload 6、查看区域信息: firewall-cmd --get-active-zones 7、查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0 8、拒绝所有包:firewall-cmd --panic-on 9、取消拒绝状态: firewall-cmd --panic-off 10、查看是否拒绝: firewall-cmd --query-panic
(2)常用语法
View Code
13、防火墙 - iptables
(1)参考命令
-- 安装 [~] yum install iptables-services -y -- 禁用 [~] service iptables stop && systemctl disable iptables -- 清空防火墙规则 [~] iptables -F
(2)常用语法
1.接受某个ip段的所有访问请求 [~] iptables -I INPUT -s 124.78.1.2 -ptcp --dport 50075 -j ACCEPT [~] iptables -I INPUT -s 124.78.0.0/24 -p tcp --dport 50075 -j ACCEP 2.拒绝所有访问请求 [~] iptables -I INPUT -p tcp --dport 50070 -j DROP [~] iptables -I INPUT -p tcp --dport 50075 -j DROP
14、sed - 文本信息替换
(1)参数说明
(1)”^”:表示行首 (2)”$”:如果在引号中表示行尾,但是在引号外却表示末行(最后一行) (3)“g”:表示替换所有匹配到的关键字,否则只替换每行的第一个 # 注意这里的 " & " 符号,如果没有 “&”,就会直接将匹配到的字符串替换掉 { sed 's/^/添加的头部&/g' #在所有行首添加 sed 's/$/&添加的尾部/g' #在所有行末添加 sed '2s/原字符串/替换字符串/g' #替换第2行 sed '$s/原字符串/替换字符串/g' #替换最后一行 sed '2,5s/原字符串/替换字符串/g' #替换2到5行 sed '2,$s/原字符串/替换字符串/g' #替换2到最后一行 }
(2)常用语法
-- db.properties配置文件中的 1.0.0.6 替换为 1.0.0.7 [~] sed -i 's/1.0.0.6/1.0.0.7/g' /root/data/code-s3201/publish_codex/deploy/db.properties ## 可能遇到的问题:使用sed在修改本地上次的文件过程中,出现sed: -e expression #1, char 5: unterminated `s' command错误 ## 解决方案:使用vim打开需要修改的文件,再推出,在执行修改
15、scp - 文件包上传
-- 将桌面文件复制到指定服务器 [~] scp ~/Desktop/a.log root@ip:/tmp
16、mmv - 批量修改文件名称
(1)参数说明:
mmv后面第一个单引号里的参数叫做From,第二个单引号里面的参数叫做To,From中可以使用的通配符有*、?、[]、;,To中可以使用的通配符是#1,#2,#3…等,#号加数字形式,对应着From中的每一个通配符。
-- Centos7下安装mmv
[~]# wget http://mirrors.aliyun.com/repo/epel-7.repo --directory-prefix=/etc/yum.repos.d -- 从阿里下载epel源文件
# 清除yum缓存,并重新生成缓存
[~]# yum clean all && yum makecache
# 安装mmv
[~]# yum install mmv -y
(2)常用语法
-- 将当前目前下文件名含有abc的名称文件修改为xyz [~] mmv '*abc*' '#1xyz#2' -- 修改文件主名称,不修改后缀 [~] mmv -n a \ * b \ # 1 { a1.txt >>> b1.txt a2.txt >>> b2.txt a3.txt >>> b3.txt } -- 将当前目录中的.html.cn、.html.en修改为 cn.html、en.html [~] mmv '*.html.??' '#1.#2#3.html' -- 将当前目录里面所有.png格式的文件转换成.jpg格式: [~] mmv '*.jpeg' '#1.jpg' -- 修改文件扩展名不改变主文件名称 [~] mmv 'test*.zip' 'test#1.rar' { test01.zip >>> test01.rar } -- 删除重复的扩展名,例如扩展名是.zip.zip.zip,只保留一个.zip [~] mmv '*.*.*.*' '#1.#2' { test01.zip.zip.zip >>> test01.zip }
17、crontab - 定时任务
(1)参数信息
-- crontab配置定时任务时候的时间表示时间格式一共5位,分别对应: { * * * * * 分 时 日 月 周 分钟有效值:0 - 59; 时的有效值:0 - 23; 日的有效值: 1 - 31; 月的有效值:1 - 12 或jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec;周的有效值:0 - 6 ,星期天可以用0或7表示,这个是个特例,也可以用周的英文缩写,sun,mon,tue,wed,thu,fri,sat; } -- 例如: { 3 * * * *:执行频率为 每小时执行一次;每小时的第3分钟执行; 3 4 * * 5:执行频率为 每周执行一次;每周5的4点3分执行; 5 6 7 * *:执行频率为 每月执行一次;每月的7号的6点5分执行; 7 8 9 10 *:执行频率为 每年执行一次;每年的10月9号8点7分执行; } -- 离散取值 { ## 在时间点上使用逗号分隔的多个值;x,y,z 9 8 * * 3,7:每周三和周日执行的8点9分执行; } -- 连续取值 { ## 在时间点上使用符号短破折号"-"连接开头和结束:x-y 0 9-18 * * 1-5:周1到周5,每天的9点到18点,执行; } -- 步长取值:在指定时间点上,定义步长:/number :其中number表示步长;(建议使用能被时间线整除的数) { */5 * * * *:每5分钟执行一次;(5/60) * */1 * * *:每1小时执行一次; * * */5 * *:每5天执行一次; */7 * * * *:这个并不完全是每7分钟执行一次,这种不整除的现象,不建议使用。(7/60) }
(2)常用脚本
-- 1、每12小时备份一次/etc目录至/backups目录中,保存文件 名称格式为"etc-yyyy-mm-dd-hh.tar.xz"要添加的任务计划为: { * */12 * * * /usr/bin/mkdir -p /backups >/dev/null && /usr/bin/tar -JPcvf /backups/etc-`date '+%Y-%m-%d-%H'`.tar.xz /etc >/dev/null } -- 2、每周2、4、7备份/var/log/secure文件至/logs目录中,文件名格式为"secure-yyyymmdd";要添加的任务计划为: { * * * * 2,4,7 /usr/bin/mkdir -p /logs >/dev/null && tar -JcvfP /logs/secure-`date +%Y%m%d`.tar.xz /var/log/secure >/dev/null } -- 3、每两小时取出当前系统/proc/meminfo文件中以S或M开头的行信息追加至/tmp/meminfo.txt文件中; { * */2 * * * /usr/bin/grep -E '^(S|M)' /proc/meminfo >> /tmp/meminfo.txt } -- 4、制定每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00; { ## 脚本内容为: [~]# cat /var/tmp/print_dtime.sh #! /bin/bash PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin LANG="en_US.UTF-8" export PATH LANG source /etc/profile shopt -u expand_aliases #关闭 bash alias 扩展 echo `date +'%Y-%m-%d %H:%M:%S'` ## 定时任务计划为: 10 3,5 * * 3 bash /var/tmp/print_dtime.sh } -- 5、每天6.30执行sh脚本 { #! /bin/bash /app/tingyun/service_manager.sh stop base-druid sleep 30 /app/tingyun/service_manager.sh start base-druid ## 定时任务为: [~] crontab -e 30 6 * * * /bin/sh /app/tingyun/bin/restart-druid.sh }
18、d
20、rename - 修改文件名称
liunx 命令网站 https://man.niaoge.com/