、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编辑时候可以显示行数