工作中用到的一些linux命令

linux常用命令

常用软件安装

1. rz,sz

yum install lrzsz

2. ifconfig

# 1. 先搜索ifconfig
yum search ifconfig

# 2. 具体执行安装
yum install net-tools.x86_64

3. nc

yum -y install nc

常用命令

cp

打 tar 包时,路径下有软连接,无法正常归档。

cp source dist -Lvr

设置主机名

hostnamectl set-hostname [主机名]

创建用户

useradd -m test4(用户)

创建用户

useradd -M(不创建主目录) -s(不允许登录) /sbin/nologin mysql -g(加入mysql组) mysql

把user添加到组group中

usermod -a -G group_name user_name

进程

寻找最占CPU的进程

top -c (按键P按CPU占有资源排序)

查看进程

ps -ef | grep processname
ps -aux|grep processname

查看进程打开的端口

ss -tnlp | grep 25178

或

ss -tnlp | grep ssh

或者

 netstat -tnlp | grep ssh

或者
netstat -lntp | grep 860

sleep

sleep 3s

监听端口

netstat -anp | grep 2888

查看文件被那个进程占用

fuser <filename>

umask权限掩码

查看默认权限

默认创建文件夹的权限为755,文件为644
注意:创建文件要比创建文件夹默认权限都少1(可执行)也就是 755 - 111 = 644

umask

//或者

umask -S

设置权限

umask 022

date

时间戳和时间相互转换

时间戳转化为时间

date -d @1562641547

时间转化为时间戳

// date +%s
 date -d '06/12/2018 07:21:22' +"%s"

ll

查看目录的隐藏文件

ll -a

文件按修改时间顺序倒序查看

ls -lrt *

文件按修改时间正序倒序查看

ls -lt *

find

查找根目录下student前缀的文件并展示

find / -name student* -exec ls -l {} \;

查找根目录下student前缀的文件并移动到/opt目录下

find / -name student* -exec mv {} /opt \;

查找/mnt目录下student前缀的文件并删除

find /mnt -name student* -exec rm {} \;

查找/mnt 目录下大于10M的文件

find /mnt -size 10M -exec ls -l {} \;

查找/mnt 目录下的文件并展示

find /mnt -type f -exec ls -l {} \;

查找并打印

find path /mnt/disk01/es7_log_online/nodes/0/ -name "index" -print

awk

转大写为小写

echo "abcdefg" | awk '{print toupper($0)}'  #转大写为小写

转小写为大写

echo "ABCDEF" | awk '{print tolower($0)}'  #转小写为大写

grep

只查找当前文件夹的目录

ls -al |grep "^d"

只查找当前文件夹的文件

ls -al |grep "^-"

反向匹配

grep -v grep

过滤多个字段

例如: 滚动打印日志 并匹配ERROR和WARN级别的日志

tailf /var/log/kafka/server.log | grep -E "ERROR| WARN"

完全匹配

docker inspect container | grep "\<Memory\>"

忽略大小写

例如: 滚动打印日志 忽略大小写匹配关键字error

tailf /var/log/kafka/server.log | grep -i "error"

还有一些别的参数

  • -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker
  • -n :显示行号
  • -c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
    这篇博文中对grep总结的很到位可以直接参考 转载地址:https://www.cnblogs.com/flyor/p/6411140.html

sed命令

匹配文件内容

sed '/^FLINK_URL/!d;s/.*=//' properties

文件内容

FLINK_URL=https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.9.2/flink-1.9.2-bin-scala_2.11.tgz
匹配结果

https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.9.2/flink-1.9.2-bin-scala_2.11.tgz
  • ^ 行首匹配 (匹配FLINK_URL 开头的行)

  • d 删除行 (删除上面匹配的行)

  • ! 反向匹配 (删除 不是以FLINK_URL 开头的行)

  • ; 连接两个命令

  • s 替换

  • . 字符通配

    • 任意个数量

所以连起来为 匹配以FLINK_URL 开头的行,然后匹配 “=” 后面的内容

awk

  • 案例一:累加第一列的和
vim test
1
2
3
4
5

cat test |awk '{a+=$1}END{print a}'
21
  • 案例二:match
df -h |awk '{if(match($6, "mnt")) print $6}'|wc -l
  • 案例三:if else
df -h |awk '{if(match($6, "mnt")) print $6;else if (match($6, "home")) print $6; else print $6}'

分区文件系统类型

查看磁盘挂载

df -h

查看磁盘挂载(默认树形方式显示)

lsblk
df -T
或者

blkid
或者

lsblk -f

对磁盘进行操作(添加,删除分区)

fdisk /dev/sdb

定时任务

查看定时任务

crontab -l

编辑定时任务

crontab -e

删除定时任务(慎用)

crontab -r

查看定时脚本存放位置

ll /var/spool/cron/crontabs

cpu、内存、磁盘、IO

cpu

  • 查看cpu物理核数
cat /proc/cpuinfo | grep "physical id"
  • 查看cpu逻辑核数
cat /proc/cpuinfo | grep "processor"

内存

free -g
free -m
free -h

cpu

top

网络io负载

ifstat

iftop -i eth1 -P

磁盘io负载

iostat
iostat -dx

一些场景

列出访问次数前十的ip地址

last | awk '{print $3}'| sort| uniq -c |sort -rn | head -10
  1. last显示服务器上用户最近登录信息

  2. 第三列为登录主机ip

  3. 第一次sort排序来让 unip -c 显示重复行出现次数

  4. sort -rn 依据显示的次数降序排序,

  5. head -10 显示前10行

干掉某一进程(脚本)

ps -ef | grep processname | grep username | grep -v grep  | awk {'print $2'} | xargs kill -9

挂载iso镜像文件

mount  -o  loop  /centos-iso/centos-7iso    /mnt/yum/

清除缓存

echo 3 > /proc/sys/vm/drop_caches

统计行数

ll | wc -l

获取uuid

blkid /dev/sda4 | awk '{print $2}'|awk -F\" '{print $2}'

获取uuid(cut)

blkid /dev/sda4 | cut -d "\"" -f 2

开启nc服务

nc -lk 9999

wget下载文件

wget --user user --password pass http://example.com/

查看使用swap的应用

echo -e "PID\t\tSwap\t\tProc_Name"

ping 大包

ping -l 5000 ip

shell执行linux命令

两种方式
执行linux命令,将执行命令返回的值,赋给shell中的变量

  • 第一种
data=`command`
  • 第二种
data=$(command)

查看系统各个进程打开的文件描述符数量

lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr

结果是以 打开的文件描述符数量:进程号 的格式排序的 。降序排序

lvm 磁盘扩容

xfs_growfs /dev/nvme2n1

date

查看7天前的日期,并且格式化

date -d '7 day ago' '+%Y.%m.%d'

压缩文件

gzip

压缩

gzip -r 目录

解压

gzip -d xxx.gz
posted @ 2022-11-10 19:26  彬在俊  阅读(61)  评论(0编辑  收藏  举报