Linux命令集【史上最全】

基本

  • 查看日志

    tail -f log //实时查看日志
    tail -100 log |grep “keyword”
    sed -n ‘/2019-08-05 15:40:00/,/2019-08-05 15:40:05/p’ ivy.log |grep ‘keyword’
    sed -n ‘5926 p’ //查看多少行的数据
    sed -n ‘x,y p’ //查看多少行至多少行之间的数据
    echo $(date “+%Y-%m-%d %H:%M:%S”)

  • 查看磁盘内存和目录内存使用情况

    df -h //磁盘内存
    du --max-depth=1 -chl /folder/ //目录内存使用情况

  • 查看内存使用率

     cat /proc/meminfo  				//  /proc/meminfo列出了所有你想了解的内存的使用情况
     atop    						//它显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合
     htop    						//htop命令显示了每个进程的内存实时使用率。它提供了所有进程的常驻内存大小、程序总内存大小、共享库大小等的报告。
     free -h  						//free命令是一个快速查看内存使用情况的方法,它是对 /proc/meminfo 收集到的信息的一个概述
     gnome-system-monitor ksysguard 	//	基于界面
     memstat -p <PID>   				//memstat是一个有效识别executable(s), process(es) and shared libraries使用虚拟内存情况的命令。
     nmon  							//nmon是一个基于ncurses的系统基准测试工具,它可以监控CPU、内存、I/O、文件系统及网络资源等的互动模式。对于内存的使用,它可以实时的显示 总/剩余内存、交换空间等信息。
     ps aux --sort -rss				//ps命令可以实时的显示各个进程的内存使用情况。
     sudo smem --pie name -c "pss"	//smem命令允许你统计基于/proc信息的不同进程和用户的内存使用情况。
     top								//top命令提供了实时的运行中的程序的资源使用统计。
     vmstat -s						//vmstat命令显示实时的和平均的统计,覆盖CPU、内存、I/O等内容。例如内存情况,不仅显示物理内存,也统计虚拟内存。
    
  • 查看文件位置

    find /folder -name “*.log”

  • 其他命令

    touch mkdir rm rmdir pwd history+!number clear
    ps aux |grep java 或ps -ef|grep java 查看进程
    kill -9 pid 杀死进程
    tail -n 500 file |grep “str” //从文件file倒数500行查找str字符串

查看系统是否被人入侵过

  • 查看用户id和组信息: id hacker

  • 查看用户最近登录信息: lastlog -u hacker

  • 查看用户历史登录信息: last hacker

  • 查看用户登录失败信息: lastb hacker

  • 查看综合信息: finger hacker
    https://www.cnblogs.com/Fluorescence-tjy/p/8108907.html

firewalld

启动: systemctl start firewalld
查看状态: systemctl status firewalld
停止: systemctl disable firewalld
禁用: systemctl stop firewalld

systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed

firewalld-cmd

查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
查看区域信息: firewall-cmd --get-active-zones
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone= public --query-port=80/tcp
删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent

文件与目录操作

cd /home 进入 ‘/home’ 目录
cd … 返回上一级目录
cd …/… 返回上两级目录
cd - 返回上次所在目录
cp file1 file2 将file1复制为file2
cp -a dir1 dir2 复制一个目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录(.代表当前目录)
ls 查看目录中的文件
ls -a 显示隐藏文件
ls -l 显示详细信息
ls -lrt 按时间显示文件(l表示详细列表,r表示反向排序,t表示按时间排序)
pwd 显示工作路径
mkdir dir1 创建 ‘dir1’ 目录
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树
mv dir1 dir2 移动/重命名一个目录
rm -f file1 删除 ‘file1’
rm -rf dir1 删除 ‘dir1’ 目录及其子目录内容

查看文件内容

cat file1 从第一个字节开始正向查看文件的内容
head -2 file1 查看一个文件的前两行
more file1 查看一个长文件的内容
tac file1 从最后一行开始反向查看一个文件的内容
tail -3 file1 查看一个文件的最后三行
vi file 打开并浏览文件

文件权限管理

    [root@VMredhat6 ~]# ll
    -rw-------.    1  root root   1555  Jul 13 17:38  anaconda-ks.cfg  
    drwxr-xr-x.  2  root root   4096  Jul 13 10:24  Desktop 
   -rw-r--r--    1  root root   57995  Jul 23 13:10  install.log    
    -rw-r--r--.   1  root root   11376  Jul 13 17:35  install.log.syslog

在这里插入图片描述
在这里插入图片描述

  • chmod命令用来变更文件或目录的权限

     标注:操作指定类别用户的权限:使用u,g,o,a来赋权,基于=或者+/—来进行
     u:属主 g:属组 o:其他 a:所有用户 =:会覆盖原来权限  +/—:不会覆盖原来权限 
     chmod  755  filename             #给文件filename赋予755权限,u=rwx,g=rx,o=rx
     chmod  u=rwx,g=rx.o=rx  filename   #给文件filename赋予755权限,u=rwx,g=rx,o=rx	    
     chmod  u=rwx,go=rx     filename   #给文件filename赋予755权限,u=rwx,g=rx,o=rx	    
     chmod  u+rwx,g+rx,o=rx  filename   #给文件filename赋予755权限,u=rwx,g=rx,o=rx	    
     chmod  a=rwx  filename           #给文件filename赋予777权限,等同于ugo=rwx	    
     chmod –reference=testfile  filename  #以testfile文件权限为参照,赋予filename文件权限
    
  • uamsk 设置限制新建立文件权限的掩码

     标注:umask查看文件权限掩码,使用最后三位表示,
     Linux 系统默认使用文件掩码 777-022(umask)=755 ,
    
     Linux 系统默认目录文件掩码 666-022(umask)=644。
     需要特别注意的一点是Linux 系统默认文件在创建时决
     不允许出现执行权限(权限命令分配除外),但文件目录可以出现执行权限。 
     root管理员默认创建文件的权限:
     [root@VMredhat6 ~]# umask
     0022
     [root@VMredhat6 ~]# umask -S
     u=rwx,g=rx,o=rx
     普通用户默认创建文件的权限
     [admin01@VMredhat6 ~]$ umask
     0002
     [admin01@VMredhat6 ~]$ umask -S
      u=rwx,g=rwx,o=rx
    

文件内容处理

grep str /tmp/test 在文件 ‘/tmp/test’ 中查找 “str”
grep ^str /tmp/test 在文件 ‘/tmp/test’ 中查找以 “str” 开始的行
grep [0-9] /tmp/test 查找 ‘/tmp/test’ 文件中所有包含数字的行
grep str -r /tmp/* 在目录 ‘/tmp’ 及其子目录中查找 “str”
diff file1 file2 找出两个文件的不同处
sdiff file1 file2 以对比的方式显示两个文件的不同

vi/vim模式

i 进入编辑文本模式
Esc 退出编辑文本模式
:w 保存当前修改
:q 不保存退出vi
:wq 保存当前修改并退出vi
:q ! 强制退出不保存
:wq ! 强制保存退出
:set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu 与 set nu 相反,为取消行号!
/word esc模式下从光标处往下查找字符串word
?word esc模式下从光标处往上查找字符串word
n 如果我们执行 /word去向下搜寻 word 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串
N 如果我们执行 /word去向下搜寻 word 这个字符串,则按下 N 后,会向上继续搜寻下一个名称为 vbird 的字符串

查询

find / -name file1 从 ‘/’ 开始进入根文件系统查找文件和目录
find / -user user1 查找属于用户 ‘user1’ 的文件和目录
find /home/user1 -name *.bin 在目录 ‘/ home/user1’ 中查找以 ‘.bin’ 结尾的文件
find /usr/bin -type f -atime +100 查找在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 查找在10天内被创建或者修改过的文件
locate .ps 寻找以 ‘.ps’ 结尾的文件,先运行 ‘updatedb’ 命令
find -name ‘
.[ch]’ | xargs grep -E ‘expr’ 在当前目录及其子目录所有.c和.h文件中查找 ‘expr’
find -type f -print0 | xargs -r0 grep -F ‘expr’ 在当前目录及其子目录的常规文件中查找 ‘expr’
find -maxdepth 1 -type f | xargs grep -F ‘expr’ 在当前目录中查找 ‘expr’

解压缩

bzip2 file1 压缩 file1
bunzip2 file1.bz2 解压 file1.bz2
gzip file1 压缩 file1
gzip -9 file1 最大程度压缩 file1
gunzip file1.gz 解压 file1.gz
tar -cvf archive.tar file1 把file1打包成 archive.tar(-c: 建立压缩档案;-v: 显示所有过程;-f: 使用档案名字,是必须的,是最后一个参数)
tar -cvf archive.tar file1 dir1 把 file1,dir1 打包成 archive.tar
tar -tf archive.tar 显示一个包中的内容
tar -xvf archive.tar 释放一个包
tar -xvf archive.tar -C /tmp 把压缩包释放到 /tmp目录下
zip file1.zip file1 创建一个zip格式的压缩包
zip -r file1.zip file1 dir1 把文件和目录压缩成一个zip格式的压缩包
unzip file1.zip 解压一个zip格式的压缩包到当前目录
unzip test.zip -d /tmp/ 解压一个zip格式的压缩包到 /tmp 目录

yum

yum -y install [package] 下载并安装一个rpm包
yum localinstall [package.rpm] 安装一个rpm包,使用你自己的软件仓库解决所有依赖关系
yum -y update 更新当前系统中安装的所有rpm包
yum update [package] 更新一个rpm包
yum remove [package] 删除一个rpm包
yum list 列出当前系统中安装的所有包
yum search [package] 在rpm仓库中搜寻软件包
yum clean [package] 清除缓存目录(/var/cache/yum)下的软件包
yum clean headers 删除所有头文件
yum clean all 删除所有缓存的包和头文件

rpm

  • 查看

    rpm -qa | grep tomcat4 查看 tomcat4 是否被安装;
    rpm -qip example.rpm 查看 example.rpm 安装包的信息;
    rpm -qif /bin/df 查看/bin/df 文件所在安装包的信息;
    rpm -qlf /bin/df 查看/bin/df 文件所在安装包中的各个文件分别被安装到哪个目录下;

  • 安装
    rpm -i 需要安装的包文件名
    rpm -i example.rpm 安装 example.rpm 包;
    rpm -iv example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息;
    rpm -ivh example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息及安装进度;

  • 卸载

    rpm -e 需要卸载的安装包
    在卸载之前,通常需要使用rpm -q …命令查出需要卸载的安装包名称。
    举例如下:
    rpm -e tomcat4 卸载 tomcat4 软件包
    rpm -evh example 卸载example软件包并在卸载过程中显示卸载的文件信息及卸载进度;

  • 升级

    rpm -U 需要升级的包
    rpm -Uvh example.rpm 升级example.rpm软件包并在升级过程中显示升级的文件信息及升级进度;

  • 验证

    验证软件包是通过比较已安装的文件和软件包中的原始文件信息来进行的。验证主要是比较文件的尺寸, MD5 校验码,文件权限, 类型, 属主和用户组等。
    如果有错误信息输出, 您应当认真加以考虑,是通过删除还是重新安装来解决出现的问题。

rpm -V 需要验证的包

rpm -Vf /etc/tomcat4/tomcat4.conf
输出信息类似如下:
S.5…T c /etc/tomcat4/tomcat4.conf
其中,S 表示文件大小修改过,T 表示文件日期修改过。

  • 其他附加命令

    –force 强制操作 如强制安装删除等;
    –requires 显示该包的依赖关系;
    –nodeps 忽略依赖关系并继续操作;

网络相关

ifconfig eth0 显示一个以太网卡的配置
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 配置网卡的IP地址
ifdown eth0 禁用 ‘eth0’ 网络设备
ifup eth0 启用 ‘eth0’ 网络设备
iwconfig eth1 显示一个无线网卡的配置
iwlist scan 显示无线网络
ip addr show 显示网卡的IP地址

系统相关

su - 切换到root权限(与su有区别)
shutdown -h now 关机
shutdown -r now 重启
top 罗列使用CPU资源最多的linux任务 (输入q退出)
pstree 以树状图显示程序
man ping 查看参考手册(例如ping 命令)
passwd 修改密码
df -h 显示磁盘的使用情况
cal -3 显示前一个月,当前月以及下一个月的月历
cal 10 1988 显示指定月,年的月历
date –date ‘1970-01-01 UTC 1427888888 seconds’ 把一相对于1970-01-01 00:00的秒数转换成时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幽·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值