常用Linux命令

󰊒 󰅏

常用Linux命令

归属:原创     作者:龙云君 标签:技巧 IT java

已累计阅读253次, 发布于2022-03-22 22:03

1 yum install lrzsz 安装rzsz,shell上传下载
2 ps -ef|grep java 查看指定进程  例java
3 kill -9 pid 结束指定pid的进程
4

netstat -L -n   

netstat -aptn

netstat -ntpl 

ss -apn|grep 8080

 查看端口

 

 

查看端口监听状态

5

a.iptables -I INPUT -p tcp --dport 8087 -j ACCEPT

b.iptables-save

c.apt-get install iptables-persistent

d.

sudo netfilter-persistent

save sudo netfilter-persistent reload

开放指定端口(a,b暂时,c,d持久化)
 6  top  
 7  free  
 8

jmap -option pid

jmap -histo:live [pid] | head -n 100

jmap -dump:live,format=b,file=xxx.xxx [pid]

 查询pid内具体占用情况
 9  
sar -u -o test 10 3

 
 
每10秒采样一次,连续采样3次,观察CPU 的使用情况,并将采样结果以二进制形式存入当前目录下的文件test中
 
 10

jps -j 

jstat -gcutil pid 1000

查找java进程

每1000毫秒查询一次,一直查。gcutil的意思是已使用空间站总空间的百分比  例如

这台服务器的新生代Eden区(E,表示Eden)使用了28.30%(最后)的空间,两个Survivor区(S0、S1,表示Survivor0、Survivor1)分别是0和8.93%,老年代(O,表示Old)使用了87.33%。程序运行以来共发生Minor GC(YGC,表示Young GC)101次,总耗时1.961秒,发生Full GC(FGC,表示Full GC)7次,Full GC总耗时3.022秒,总的耗时(GCT,表示GC Time)为4.983秒。
 

 11  chmod 777 file  修改权限为777  /chmod a+x file  给当前用户添加文件夹执行权限
 12  systemctl start|stop|restart firewalld  防火墙开关 重启
 13
firewall-cmd --zone=public --add-port=端口/tcp --permanent
 在防火墙开放端口:
14 

yum list installed

rpm -qa|grep redis

rpm -ql redis_xxx_86

 查找yum安装的软件名称/路径
 15

ctrl+L

ctrl+d 

ctrl+c

ctrl+z 

/ fg /bg

 

清空

exit+enter

退出

挂起

恢复挂起

 

 16

 重定向

>

>> 

<

<<

重定向

改变输出(1正确  2错误)

追加输出

改变输入

eof结束  不需要ctrl+d

 17

 管道

|

 左边的命令应该有标准输出 | 右边的命令应该接受标准输入
 18  
hostnamectl set-hostname hhh
hostnamectl set-hostname mytccloud
hostnamectl status
 centos7 修改hostname 不必重启就能生效
 19

 vim etc/profile

 source etc/profile

 修改环境变量

 立即生效

 20  sudo sctuil --st HostName "localhost"   
 21  du -sh *  查看文件夹大小
     
   sudo fdisk -l  查看硬盘状况
   sudo fdisk /dev/sdb   (cfdisk)  进入分区命令
     
 

 sudo apt install libxml2-utils

打开xml后

:set equalprg=xmllint\ --format\ -

gg=G
  vim格式化
   
# 查询相关软件包
dpkg -l | grep docker
# 删除这个包
sudo apt remove --purge docker.io
 卸载软件(ubuntu)

 

 

起步

  • 查看服务器运行了哪些程序

    $ ps -ef
    $ ps -ef | grep uwsgi
    $ ps -ef | grep django
    $ ps -ef | grep tornado
    
  • 查看运行的程序

    $ netstat -tunlp
    $ netstat -tunlp | grep 80
    80:http默认端口
    8080:自定义端口
    3306:mysql数据库默认端口
    443:https默认端口
    6379:redis数据库默认端口
    22:ssh远程连接服务器默认端口
    
  • 查看定时任务

    $ crontab -l
    

linux基本命令

  • cd 进入上次访问目录

    $ cd -
    
  • mkdir -p 递归创建目录

    $ mkdir -p /a/b/c1 /a/b/c2
    $ mkdir -p /a/b/{c1,c2}  # 批量创建
    $ mkdir -p a/b/{1..7}  # 批量迭代创建
    
  • 重定向 <<

    $ cat >> q.txt << EOF
    >> 第一行
    >> 第二行
    >> EOF
    
  • cp 备份

    $ cp nginx.conf nginx.conf.old
    
  • 重命名

    $ mv nginx.conf.old nginx.conf
    
  • 查看当前系统 alias 别名

    $ alias
    
  • find 查找

    $ find / -type f -name "python" -size +15M  # 参数:[type:f 普通文件  d 文件夹]
    
  • 管道符和grep

    # 过滤settings.py有价值信息(仅查看)
    $ cat ./settings.py | grep -v "^#" | grep -v "^$"  # 参数:-v,取反
    $ grep -v "^#" ./settings.py | grep -v "^$"  # grep加引号,支持正则
    $ cat /etc/passwd | grep -i root  # 参数:-i 忽略大小写
    
  • sed文本编辑器

    # 过滤settings.py有价值信息(修改)
    $ sed -i "/#/d" nginx.conf  # 删除行:sed -i '/匹配的规则/d' 路径
    $ sed -i "/^$/d" nginx.conf
    # 取出IP地址的命令:sed 's/替换签到的内容/替换后的内容/g'
    $ ifconfig | sed -n '2p' | sed 's/.*inet//g' | sed 's/netmask.*//g'  
    # 查看2-4行
    $ sed -n '2,4p' nginx.conf
    
  • awk切割

    # 取出IP地址的命令:awk -F '指定分隔符,默认空格' 'NR==行号 {print $列号}'
    $ ifconfig | awk 'NR==2 {print $2}'
    $ ifconfig | awk -F ' ' 'NR==2 {print $2}'
    
  • du 查看文件夹大小

    $ du -sh /etc/  # 文件夹总大小
    $ du -h /etc/  # 文件详情大小,h表示带Kb、Mb单位
    
  • top 系统监视器

    $ top
    
  • free查看内存、交换内存

    $ free -m  # 参数m,以Mb为单位显示
    
  • ps 查看进程

    $ ps -ef  # 查看所有进程
    $ ps -ef | grep "vim"  # 过滤进程
    $ kill PID  # 杀死进程
    $ kill -9 PID  # -9 强制
    $ pkill -9 nginx  # 强制杀死nginx进程
    
  • netstat 查看网络

    $ netstat -tunlp # 参数:t:tcp、u:udp
    $ netstat -tunlp | grep 80  # 过滤80端口是否运行
    
  • history查看指令的历史记录

    $ history
    $ !77  # !+行数,运行当前行的历史指令
    
  • tail动态检测日志

    $ tail -f log.txt
    
  • ln软连接:连接文件 或 文件夹

    $ ln -s /opt/ ./my_opt  # ln -s 目标文件/文件夹绝对路径 软连接后的路径
    
  • vim指令

    $ d+G  # 清空光标以下的所有内容
    

    vim命令

单引号与双引号

  • 单引号

    $ echo '$PATH'  # 内部仅仅识别成字符串
    >> $PATH
    
  • 双引号

    $ echo '$PATH'  # 内部可以识别特殊字符
    >> /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    

用户

  • 添加

    $ useradd 用户名  # 创建了一个用户在/etc/passwd,且创建了一个同名的组/etc/group
    $ passwd 用户名  # 添加密码
    
  • 查看

    $ id 用户名
    >> uid=0(root) gid=0(root) 组=0(root)
    $ ll
    >> -rw-r--r--.  1          root  root   115   12月 21 03:19   a.txt
    >> 读写执行权限   文件连接数   用户   组     大小   时间            文件名
    
  • 删除

    $ userdel -rf 用户名  # 删除用户且删除家目录
    
  • 切换

    $ su - root  # 参数:- 完全的环境变量切换
    

权限

  • sudo

    $ vim /etc/sudoers  # 修改配置文件
    $ visudo  # 修改配置文件,提供了语法检测(推荐)
    >> ## Allow root to run any commands anywhere
    >> root    ALL=(ALL)       ALL
    >> xjn     ALL=(ALL)       ALL  # 新增用户
    
  • 文件权限

    # -    rw-   r--  r-- .   1          root  root   115   12月 21 03:19   a.txt
    # 类型  用户  组   其他     文件连接数   user  group  大小   时间            文件名
    # 类型:-文件,d文件,l软连接
    
  • chmod 修改权限

    $ chmod u+r
    $ chmod g-w
    $ chmod o+r,o+w,o+x
    $ chmod 000  # --- --- ---
    $ chmod 777  # 421 421 421
    
  • chown 修改拥有者

    $ chown root 文件
    
  • chgrp 修改拥有组

    $ chgrp root 文件
    

DNS

  • 配置DNS域名服务器

    $ vim /etc/resolv.conf 
    nameserver 192.168.199.1  # 域名解析服务器地址
    nameserver 119.29.29.29  # 腾讯
    nameserver 223.5.5.5  # 阿里
    nameserver 223.6.6.6  # 阿里
    
  • 域名查找

    $ yum -y install bind-utils  # 依赖包
    $ nslookup www.baidu.com  # 域名查找
    
  • 配置本地host

    $ vim /etc/hosts
    

systemctl命令管理服务

  • centos7:systemctl

    $ systemctl start redis  # 开启
    $ systemctl status redis  # 状态
    $ systemctl restart redis  # 重启
    $ systemctl stop redis  # 停止
    $ systemctl enable redis  # 开机自启
    $ systemctl disable redis  # 禁止开机自启
    
  • centos7以下:service

    $ service redis start
    

PATH环境变量

  • 查看安装路径

    $ which python
    >> /usr/bin/python
    
  • 查看环境变量

    $ echo $PATH
    >> /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin  # 从左往右依次找
    
  • 配置环境变量

    $ vim /etc/profile  # 全局环境变量
    $ PATH="/opt/python3.7.9/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin" # 新增环境变量,在字符串前增加新的路径,以:分隔
    $ source /etc/profile  # 生效
    $ which python3  # 检测
    $ which pip3
    

tar解压缩

  • 命令

    """
    tar 命令
    -z 调用gzip命令,对文件压缩
    -c 打包
    -x 解包
    -v 显示过程
    -f 必须写在参数结尾,指定压缩文件名字
    """
    
  • 注意

    # 最好要用相对路径
    
  • 打包

    $ tar -cvf all.tar ./*  # tar -cvf 打包名称 被打包的文件的相对路径
    
  • 解包

    $ tar -xvf all.tar ./  # tar -xvf 解包名称 存放路径
    
  • 压缩

    $ tar -zcvf all.tar.gz ./*  # tar -zcvf 打包名称 被打包的文件的相对路径
    
  • 解压

    $ tar -zxvf all.tar.gz ./  # tar -zxvf 解包名称 存放路径
    $ tar xf 压缩文件 # 通用
    

zip解压缩

  • unzip 文件路径

定时任务

  • 编辑

    $ crontab -e  # 命令存储到的临时路径:/var/spool/cron/root
    $ vim /etc/crontab
    """
    *      *     *     *     *     命令的绝对路径
    分     时    日     月    周     命令的绝对路径
    0-59  0-23  1-31  1-12  0-6    命令的绝对路径
    *:每一个
    ,:多个,如 1,3,5
    -:几到几,如 1-5 代表 1,2,3,4,5
    /:每几个,如 0-12/2 代表 0-12点的每两个小时,如  */5 代表 每5分钟
    """
    $ 0 1 * * *  /usr/bin/rm  /tmp/*  # 必须用绝对路径,因为crontab环境变量可能不够全
    
  • 查看

    $ rontab -l
    
  • 删除

    $ sed -i '/tmp/d' /var/spool/cron/root  # sed -i '/匹配的规则/d' 路径

观点 · Comments

点击右上角󰅏可发表观点,点击访客头像可回复Ta