linux-命令

、free -mh # 查看内存总大小等信息

、ls  # 查看一个目录中的所有文件,就是list的缩写

、ls -Z  # 参数大写的Z就是用来查看标签

、ls -l  # 将当前目录下的所有文件列出,详细的信息包括权限,用户组、创建时间、名称,可以缩写就是ll

、ls -l /temp  # 列出根目录下的temp文件夹下的文件列表,也可以缩写 ll -d

、ls -ld /temp  # 查看目录的信息

、ls --help   # 查看帮助,所有的指令后面跟 --help 会提示帮助,help不能缩写

、ls -al  # 查看隐藏文件和隐藏目录,就是目录或文件前面带 . 的

、ls -R  # 递归方式,显示所有包含所有子目录的内容

、ll -d /bin  # 查看目录的特性,详细信息

、usernod -L user  # 锁定指定用户,user就是用户名

、clear  # 清空屏幕

、ssh root@IP(hostname)  # ssh登录其他主机,ssh + 用户名 + @ + IP地址或者主机名

、mkdir back_$(date +%Y:%m:%d)  # 创建备份目录,使用当前时间,就是命令嵌套命令

、passwd  # 修改密码

、passwd user # 修改指定用户的密码,执行指令必须是root用户

、passwd -l user  # 锁定指定用户无法登录,执行指令必须是root用户

、passwd -u user # 解锁指定用户,执行指令必须是root用户

、data  # 显示时间。参数前必须用+号 (date +%Y:%m:%d)

date –s '1987-05-02 10:10:10'  # 修改时间

、file   #显示文件类型, 后面跟文件名/目录(目录也是一种特殊的文件),可以查看文件的属性,是文件还是文件夹(directory),还是块设备(block),格式

、cat # 查看 一个或多个文件的内容,开可以将内容重定向到新文件

、cat  filename  # 查看文件的内容

、cat filename > newfilename  # 将filename中的内容注入到newfilename中

、less  filename #  查看文件内容,显示第一页的内容,每次显示一页,用上下键翻页查看

、more filename  # 查看文件内容,从最后一页显示,不支持上下键

、cat << EOF >> test.txt  # 在terminal中输入内容注入到test.txt中,EOF就是结束字符,快速写脚本

、head  filename  #  查看文件前10行内容

、head -n 5 filename # 查看文件前5行内容

、tail filename  # 查看文件最后10行内容

、tail -n 5 # 查看最后5行内容

、tail -f  # 刷新一个文件,不停的刷新,一般用来看日志有没有刷新

、head -n 58 filename | tail  -n 16 # 显示文件内容,43-58行的内容

、wc  # wc命令是用来统计的

、wc filename  # 统计文件中有多少行,多少单词,多少个字符

、wc -l  filename  #  统计文件中有多少行数

、wc -w  filename  # 统计文件中单词书

、wc -c filename  # 统计文件中字符数

、history   # 查看输入命令的历史记录,然后每条命令都会有数字排序,如果需要重新输入其中的某一条,输入!+序号   PS:ctrl + r 输入命令的关键字回车,直接查询

、pwd  # 查看当前所在的路径

、cp /etc/test.txt .  # 将绝对路径下的文件拷贝到当前目录后面一个 . ,拷贝到上级目录就是 ..,拷贝到上级目录的上级目录就是 ../..

、cp -p filename new_filename  # 维持当前权限拷贝复制文件

、cp -r dirname new_dirname  # 递归拷贝目录,会将目下的所有子目录一起拷贝

、cp -rp dirname new_dirname  # 维持当前权限递归拷贝目录

、cp -a dirname new_dirname  # 和-rp一样

、cp -rv dirname new_dirname  # 可以看到拷贝的过程

、cp file new-file   # 拷贝一个文件内容到新的文件

、alias  # 查看系统中指令的别名

、for i  in {1..100};do echo line$i >>test.txt  # 使用for循环向文件中注入100行内容

、touch filename  # 创建空文件,如果文件存在则更新时间戳

、stat filename   # 查看文件的时间戳

、mkdir name  # 创建文件夹

、mkdir -p 123/456/789  # 递归创建目录,直接创建多层的目录,必须要有-p参数,-p就是创建子目录

、mv file new-file  # 剪切文件

、mv file /test  # 移动文件到指定目录

、mv filename new_filename  # 修改文件的名字

、mv dirname new_dirname  # 修改文件夹的名字

、rm filename  # 删除文件

、rm -rf dirname  # 强制删除目录,不用确认,直接递归全部删除

、rm -r directory  # 删除目录,-r就是递归,递归用来删除目录,每删除一层会提示确认,也可以删除空目录

、rmdir directory  # 删除空目录

、ln haha.txt heihei.txt  # 硬链接,硬链接不可以链接到目录,只能链接文件

、ln -s haha.txt heihei.txt  # 软连接,软连接可以连接到目录和文件

、man ls , / -i    #查询命令帮助,打开后使用/ 进行关键字搜索,n继续搜索, shift + n 向上翻

、man  5 filename  #查询文件帮助,文件必须指定5,5就是针对文件格式的

、man passwd  # 出现的内容是passwd(1),就是查询的是命令相关的帮助

、man -k passwd  #关键字查询,小范围查询,查询成功系统就会列出所有可以查询包含passwd的信息

、man -K drop  #  在man的所有文件中查询关键字  当-k查询不到的时候可以尝试-K,如果没有则输入q回车继续下一个文件打开,查看man帮助敲回车,如果没有继续q退出,ctrl+d下一个文件

、man  5  passwd   # 指定查看命令的文件

、rpm -q httpd  # 查询这个软件包是否安装

、rpm -qi httpd  # 查询这个软件包的摘要信息

、rpm -qd  httpd  # q就是查询 d就是指文档,查询这个软件包中所有文档

、rpm -ql  httpd   # 列出这个软件包中所有的文件安装路径,系统会列出这个软件下所有的文件,包括man帮助

、rpm -qc httpd   # 列出这个软件包的所有配置文件路径

、rpm -q --scripts httpd  # 显示软件包的脚本,查看脚本执行哪些操作

、rpm -q --changelog httpd   #  显示软件包每次制作添加的功能

、find / etc/ -name *.conf  1>ok.txt 2>err.txt   # 查找etc目录下所有文件后缀为err.txt的文件,正确的放入ok.txt文件中,错误的放入err.txt文件中

、find /etc/ -name *.conf  2>/dev/null  # 只在屏幕上输出正确的,错误的放入黑洞文件null

、find /etc/ -name *.conf 1>/dev/null  # 只在屏幕上输出错误的信息,正确的放入黑洞文件null

、find /etc/ -name *.conf 1>/dev/null 2>>err.txt  # 两个>>就是追加的意思

、find /etc/ -name *.conf &>/dev/null  # & 表示正确和错误都放入相同的文件中

、cat httpd.conf | grep ^#  #读取httpd.conf文件的内容交给右边的grep(筛选)出所有#开头的内容

、cat httpd.conf | grep  -v ^#  #读取httpd.conf文件的内容交给右边的grep(筛选)出所有不是#开头的内容,v就是反向筛选

、cat httpd.conf | grep -v ^# | grep -v ^$  #读取httpd.conf文件的内容交给右边的grep(筛选)出所有不是#开头内容,然后交给后面的命令继续筛选出非空行的内容

、cat httpd.conf | grep -v ^# | grep -v ^$  | grep -v ^"    #" # 读取httpd.conf文件的内容交给右边的grep(筛选)出所有不是#开头内容,然后交给后面的命令继续筛选出非空行的内容,再讲结果继续过滤出空格和#号的内容(需要过滤的空格有几个,就在命令的" "内输入几个空格和字符)

、ls -l /etc | wc -l  # 计算一个目录下有多少个文件,有多少行就是有多少个

、id   # id命令加上用户名,就可以查看当前账户的UID,所属的用户组,如果id不跟参数就是查看root用户

、ps -a  # 显示当前terminal的进程信息

、ps -u root # 显示指定用户信息

、ps  -aux   # 查看所有进程的信息

、ps -ef   # 查看所有进程信息,能够看到进程的父进程是谁,PPID就是父进程

、su  # 切换用户,su - admin ,中间的 - 号就是将自己的环境变量加载,不加 - 号就会使用当前账户的环境变量

、sudo passwd admin  # 修改admin的密码

、sudo -i  # 切换成root用户

、chattr +i filename  # 给文件添加特殊标记后root用户无法删除

、chattr -i filename  # 将特殊标记去除

、useradd -u username  # 创建用户,默认创建同名用户组

、useradd -u username -g groupname  # 创建用户,但是不会创建同名的用户组,会加入指定的用户组

、useradd -u username -G groupname  # 创建用户,默认创建同名用户组,会作为附属组加入指定的用户组

、useradd admin -s /sbin/nologin  # 新建用户但是无法使用此账户登录

、useradd admin  -u 3456   # 设定用户的UID号

、userdel admin  # 删除用户,但是没有删除家目录

、userdel -r admin  # 删除用户包括家目录,-r就是递归的意思

、usermod -s /sbin/nologin admin  # 禁止用户登录

、usermod admin -s /bin/bash  # 让用户可以登录

、usermod admin -G wheel  # 将一个用户加入wheel组

、passwd admin # 设置密码,普通用户只能修改自己的密码,root用户可以修改所有用户的密码

、groupadd groupname  # 创建组

、groupdel groupname  # 删除组

、chage -l admin   # 查看账户的密码信息,包括修改时间,生命周期

、chage  admin # 设置账户密码的生命周期等,系统会进行引导设置,可用-h查看后单独设置

、sudo usermod -L admin   # 锁住admin用户

、sudo usermod -U admin   # 解锁admin用户

、usermod -s /sbin/nologin admin   #账号作为系统服务账号,但是并不能登录操作系统

、chmod  u+x  filename.txt     # 设置文件所属用户的权限

、chmod  u- rwx filename.txt   #  去除文件所属用户的权限

、chmod  -R ugo+x  dirname   #  目录设定权限,R是递归携带这个参数就是目录下所有的文件和目录都改变权限

、chmod  -R o+X  dirname   #  目录设定权限,R是递归携带这个参数就是目录下所有的文件都改变权限,权限变成大写后就是只对目录改变权限,并不会对文件改变权限

、chown  admin:admin filename.txt   # 设定文件所属用户和组

、chown  admin filename.txt   # 设定文件所属用户

、chown  :admin filename.txt   # 设定文件所属组

、env  # 查看系统环境变量

、alias  # 查看命令的别名

、alias test="ps axo pid,ppid,comn"  # 设置命令别名,有时候命令太长但是使用率高,设置别名有利于记忆和使用

、ps axo pid,ppid,comn  # 查看和命令相关的进程号

、ps axo pid,ppid,comn,psr | grep httpd  # 查看相关程序的进程关系,可以直接看到最顶端的父进程

、usermod -s /sbin/nologin admin # 禁止用户登录

、pstree  # 查看进程树

、pidof 进程名  # 查看这个进程名字所有相关的进程

、kill -1 进程号  # 对这个进程重新加载配置文件

、kill -15 进程号  # 正常退出进程,先保存后退出

、kill -9 进程号  # 强制退出不保存

、kill all 进程名  # 杀死此进程名所有相关的进程

、top  # 查看系统的负载情况

、shift  p  # 在top下,根据cpu占用率进行排序

、shift  M  # 在top下,根据内存暂用率从大到小排序

、ls cpu  # 可以看到cpu的数量

、cat /proc/cpuinfo  # 从内核信息文件中查看cpu数量,这个最准确

、chmod u + s # 文件设置特殊权限suid,也可以使用十进制数设置,chmod 4775 filename

、chmod u - s  # 文件取消suid

、chmod g + s  # 文件 / 文件夹 设置特殊权限sgid,文件夹也可以使用十进制数设置,chmod 2775 dirname

、chmod g - s  # 文件 / 文件夹取消sgid

、chmod 0 + t  # 文件设置特殊权限sbit,使用十进制数设置,chmod 1777 dirname

、systemctl list-units  # 列出系统中所有的units

、systemctl list-units | grep ssh  # 列出系统中所有的units并且过滤出ssh服务,可以查看ssh是否启动

、systemctl  # 加载所有已经激活的服务,未激活运行的服务不会显示

、systemctl status  sshd  # 查看相关的服务运行状态

、systemctl enable / disable sshd  # 设置开机启动或不启动 

、systemctl mask / unmask sshd  # 服务开启遮罩或取消遮罩

、systemctl isolate graphical.target  # 进入图形化桌面

、systemctl isolate multiuser.targer  # 进入文字界面

、power off  / init 0 # 关机

、reboot / init 6 # 重启系统

、systemctl set-default multi-user.target graphical.target  # 开机默认进入图形化界面

、systemctl get-default  # 查询默认开机的界面方式

、systemd-analyze blame  # 查看开机所有服务启动所花费的时间

、systemctl list-dependencies sshd  # 查看程序服务依来关系图

、systemctl list-dependencies sshd --reverse  # 查看反向依赖关系图

 、cat /var/log/message |grep -i error  # 不区分大小写的过滤出所有error的日志信息

、journalctl  # 显示所有启动时候早期的日志,包括硬件初始化的日志

、journalctl -e  #查看数据库中最后的日志

、journalctl  -f  # 动态刷新日志

、journalctl  -p  err # 查看系统中error级别以上的日志,以红色表示

、journalctl  -u  sshd  # 查看相关服务的日志

、journalctl  -p  err -u  sshd # 日志筛选,结构化的查询

、timedatectl # 查看时区

、tzselect  # 选择时区的命令,输入后选择时区后回提示使用设定的时区进行设置

、timedatectl set-timezone Asia/Shanghai  # 设置时区

、chronyc sources -v # 查看ntp服务的配置,可以看到时间服务器的地址

、ip link  # 查看网卡信息,可以看到link链路层(二层)的信息

、ip address show  # 可以缩写ip a s ,查看网卡信息,可以看到三层的信息,MAC地址信息

、ip -s link show  # 可以查看网络性能,收发包的统计信息

、ip route  # 可以看到网关地址

、rout -n # 也可以看到网关地址,更详细,可以看到什么地址到达那个网关

、tracepath hostname  # 查看主机路由条数

、netstat -tunpla  # 查看所有连接的状况,参数中t表示tcp、u标书udp、n表示将已知端口用数字表示、p表示pid、l表示监听状态、a表示非监听状态下也表示

、nmcli device  show # 列出所有的名称

、nmcli connection show # 可以看到网卡信息,名称,UUID,类型

、nmcli connection reload “网卡名称” # 重新载入网卡配置

、ethtool 网卡名称  # 可以查看网卡接口的速率,是千兆还是百兆

、nmtui  # 可视化的网络配置界面

、nmcli conn show  # 列出所有连接

、nmcli conn show name  # 列出name连接的当前设置

、nmcli dev disconnect name(nmcli dev dis dev)  # 断开连接,这个是从硬件层面彻底的断开

、nmcli con up name  # 激活name连接

、nmcli dev status # 显示所有网络接口的Networkmanager状态

、nmcli con add con-name name  # 添加一个名为name的新连接

、nmcli con mod name # 修改name连接

、nmcli con reload  # 重新加载配置文件

、nmcli  con del name  # 删除name连接及其配置文件

、man nmcli-examples  # 查看man帮助

、hostnamectl # 查看主机的基本信息,包括架构,内核kernel版本等

、hostnamectl set-hostname  主机名 #  这个会默认修改/etc/hostname中的主机名

、nslookup 主机名  # 查看到DNS解析地址和DNS服务器地址

、du -sh /etc  # 查看指定目录大小

、dd if=/dev/zero of=1.img bs=1M count=1024  # 在dev/zero目录下创建一个1G的文件

、which 软件名  # 查看软件安装目录

、rmp -qa  # 列出系统中所有安装的软件包

、rpm -qc 软件名  #  查看所有的安装文件路径

、rpm -qd  # 查看所有的文档

、rpm -q --scripts 软件名  # 可以查看脚本,在安装前需要做什么

、rpm -q --changelog 软件名  # 可以查看更新日志

、rpm -qf 文件名# 可以查看文件来自于哪个软件包,只能查询已存在的文件

、rpm -qp --scripts  软件包名 # 可以查看安装前 执行的脚本

、rpm -qpl --scripts 软件包名 # 列出软件包中所有文件名

、rpm -qpc --scripts 软件包名 # 查看软件包的配置文件,如果有则可以看到

、rpm -ivh 软件包名 # 安装rpm软件包

、rpm -Uvh  # 升级软件包

、rpm -e 软件包名 # 升级软件

、yum list # 列出yum仓库中所有的软件

、yum search 软件包名 # 搜索指定软件包

、yum whatprovides 文件名 # 查看文件来自于哪个软件包,如果未安装软件也能查询,从yum数据库中查询

、yum repolist  # 列出所有的仓库

、yum claen all #清空所有yum缓存,yum仓库有索引缓存,配置新yum仓库后要清理缓存

、yum makecache # 生成yum缓存

、yum install -y 包名  # 安装软件包

、yum localinstall -y 包名  # 安装本地软件包,使用yum自动安装依赖关系

、yum update -y 包名 # 升级软件包

、yum update -y  # 升级所有软件包,也会升级操作系统

、yum remove -y 包名 # 卸载软件包,但是不会卸载依赖关系

、yum grouplist  #  列出包组

、yum groupinstall ''包组名'' # 安装包组,包组名可也以用@包组名,使用@代替 “ ”

、yum groupremove "包组名"  # 卸载包组

、yum history  # 查看敲过的yum 命令

、tail -n1 /etc/fstab  # 查看永久挂载配置信息

、dd if=/rhel8.iso of=/dev/sdd bs=4M  # 用u盘使用镜像做一个启动盘安装系统

、df -h # 查看磁盘空间情况,挂载情况,为增加可读性可以使用h或者H,h的单位是Kib、Mib。H的单位显示是KBMBGB

、lsblk # 查看磁盘空间情况、挂载情况等,使用树状结构显示

、lsblk -fp  #列出设备的完整路径,其UUID和挂载点

、du -h # 查看当前目录下文件的尺寸

、du -sh /etc # 查看目录的大小

、lsscsi # 列出主机中的硬盘

、lsscsi -v # 列出主机中的硬盘详细信息,参数v可以是vv也可以是vvv,没多一个v详细信息就更多

、mount UUID="7d739626-58b3-4e86-9e2a-b09e9af23502" /mnt/test  # 使用uuid挂载目录

、umount /test  # umount 后面可以跟设备名,也可以直接跟挂载的目录

、blkid # 查看文件系统的uuid、类型

、lsof /mnt/test  # 列出目录下访问连接,可以查看谁在打开文件或目录

、locate 文件名 #从mlocate数据库中查找指定的文件路径

、locate -i 文件名 #不区分大小写的查询

、locate -n 5 文件名 # 限制返回的结果数量,如5就是只显示前5条

、find /-size +1G # 搜多所有大于1G的文件

、find -size 10M # 查找所有等于10M的文件

、find -size -10M # 查找所有小于10M的文件

、find -mmin 120  # 查找所有过去120分钟被修改过的文件

、find -mmin +120  # 查找修改超过120分钟被修改过的文件

、find -mmin -120  # 查找修改未超过120分钟被修改过的文件

、find  /etc -type d  #  type选项后面跟d表示搜索范围限制为目录

、find  /etc -type f  #  type选项后面跟f表示搜索范围限制为文件

、find  /etc -type l  #  type选项后面跟l表示搜索范围限制为软连接

、find  /etc -type b  #  type选项后面跟b表示搜索范围限制为块设备

、find / -user 用户名 # 搜索根目录下(/),所有属于自定用户的文件

、find / -user 用户名 -exec cp -a {} /backup ;  # 搜索根目录下指定用户的所有文件,进行exec二次加工,-a就是带着权限和子目录一起拷贝,{}表示只带搜索到的所有文件,拷贝到指定的目录,;表示关闭

、find / -name 文件名  # 查询根目录下指定文件的路径(/表示根目录,也可以指定目录查询),文件名可以使用正则 '*文件名*'

、find / -iname 文件名 # 对文件名不区分大小写的搜索,文件名也可以使用正则‘*文件名*’

、find / -user root -group mail 文件名 # 搜索用户是root并且所属组是mail的文件

、echo $PATH  # 查看系统环境变量的路径,echo命令可以显示任意文本内容

、which ls # 查看命令或者文件再那个路径下

、touch  test.txt  # 创建空文本

、test  # 用来测试脚本

、at now + 5min # 创建单次计划任务(5分钟之后)

、teatime tomorrow # 创建单次计划任务(下午16点)

、noon + 4days  # 创建单次计划任务(4天之后的中午12点)

、5pm august 3 2021 # 创建单次计划任务(2021年8月3日下午5点)

、at -l / atq # 列出当前所有的计划任务

、at -c number # 查看单次计划任务的详细信息 

、atrm 1  # 删除指定序号的单次计划任务

、crontab -l # 查看当前用户的周期性计划任务

、crontab -r # 删除当前用户的周期性计划任务

、crontab -e  # 就会打开一个文本开始编辑开始定义周期性计划任务

、crontab -eu 用户名  # root账户为普通用户定义计划任务

、0 6 * * * systemctl restart httpd  # 0分6小时 每天每月每周的每天,就是每天早上6点重启apache

、30 6 * * * systemctl restart httpd  # 就是每天早上6点30重启apache

、30 6 15,30 * * systemctl restart httpd # 每个月15号和30号早上6点半重启apache服务

、30 6 */10 * * systemctl restart httpd # 每隔十天重启一次服务

、30 6 1 1 * systemctl restart httpd # 每年的1月1号重启服务

、30 6 * * 7 systemctl restart httpd # 每个周日重启服务,星期中日可以用7、0、sun表示

、30 6 1 * 7 systemctl restart httpd  # 逢周日或每月第一天早上6点30重启服务

、30 6 * * 1-5 systemctl restart httpd # 每周1-5重启服务

、0,30 * * * * echo 3 > /proc/sys/vm/drop_caches  # 每隔半小时清空系统缓存

、* 9-17/2 * * * echo 3 > /proc/sys/vm/drop_caches  # 工作日的每天9-17点,隔两小时清空一次缓存

、systemctld daemon-reload # 重新加载配置文件

、ps axo pid,comm,nice,cls --sort=-nice  # 查看nice值等信息,cls就是调度策略,TS针对的就是SHCED_NORMAL

、getfacl filename  # 查看文件的acl信息

、getfacl 目录名 # 查看目录的ACL

、getfacl .  # 命令后面跟 . 就是查看当前目录的ACL

、setfacl -m u:root:---- test.txt  # 给文件设置ACL

、setfacl -Rm d:u:name:rwX # 设置目录的默认ACL

、setfacl -Rm u:name:rwX 目录名  # 设置目录的ACL

setfacl a.txt | setfacl --set-file=- b.txt  # 通过查看A文件的ACL然后设置到B文件

、getenforce  # 查看SELinux当前状态(模式)

、setenforce 1 # 设置SELinux 的模式为Enforcing 强制模式

、setenforce 0 # 设置SELinux 的模式为Permissive 宽容模式

、blkid  # 查看磁盘的信息,包括uuid,类型等

、yum whatprovides 命令 # 查找命令来自于那个软件包

、set nu  # 在vim编辑时候可以显示行数

原文地址:https://www.cnblogs.com/shizhengquan/p/11789384.html