【linux运维】系统常见管理命令

系列综述:

💞目的:本系列是个人整理为了学习基本的shell编程和linux命令,整理期间苛求每个知识点,平衡理解简易度与深入程度。

🥰来源:材料主要源于b站大学------linux运维课程进行的,每个知识点的修正和深入主要参考各平台大佬的文章,其中也可能含有少量的个人实验自证。

🤭结语:如果有帮到你的地方,就点个赞和关注一下呗,谢谢🎈🎄🌷!!!


文章目录


😊点此到文末惊喜↩︎


常用命令

命令的基本格式

  1. [root@localhost ~] #的含义

    • []:分隔符,无特殊含义
    • root:当前登录用户名
    • localhost:当前系统的简写主机名
    • ~:代表用户当前所在的目录
    • #:命令提示符。超级用户是#,普通用户是$
  2. 命令的常见格式

    • [root@localhost ~] # 命令 [选项] [参数]
    • 选项:用于调整命令功能
    • 参数:命令的操作对象,没有则会使用默认的参数
  3. 目录命令ls的详细信息

    bash 复制代码
    [root@localhost ~] # ls -l
    -rw------. 1 root root 1207 1月14-18:18 anaconda-ks.cfg
    • 权限:文件读写执行的相关权限
    • 引用计数:文件的引用计数代表该文件的硬链接个数,而目录的引用计数代表该目录有多少个一级子目录。
    • 所有者:这个文件属于哪个用户。默认所有者是文件的建立用户
    • 所属组:默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组。
    • 文件大小:默认单位是字节。
    • 文件最近修改时间:注意这个时间不是文件的创建时间。
    • 文件名
  4. ls命令的常用选项

    • -a(all):显示所有文件,包含隐藏文件
    • --color=never:改变ls信息颜色,避免工作场景下的颜色对比模糊问题
    • -l(long):长格式显示
    • -d(dirtory):显示当前目录信息
    • -h(human):人性化显示文件大小,包含单位K、M等
    • -i(inode):显示文件的i节点号

目录操作命令

  1. ls:目录信息查看

  2. cd:打开目录命令,注意路径的使用

    • 绝对/相对路径:新手推荐使用绝对路径降低出错的概率
    bash 复制代码
    # 绝对路径:开始的/表示从根目录开始
    [root@localhost ~] # cd /usr/  
    # 相对路径:开始没有/表示从当前目录开始
    [root@localhost ~] # cd usr/	
    • 简化操作
    特殊符号 作用
    ~ 或 空 用户家目录
    - 上次访问目录
    . 当前目录
    ... 代表上级目录
  3. pwd:显示当前所在目录

  4. mkdir:建立目录

    • 在同一目录下的,目录和文件不可同名。win下有隐藏扩展名
    bash 复制代码
    #在当前路径建立目录
    mkdir 目录名称
    # 删除当前路径的指定目录,作用有限
    rmdir 目录名称
    # 建立多级目录
    mkdir -p 12/23/34
    # 删除多级目录,不能后悔的误删除,用前需多思!!!
    rm -rf 12
    # 删除目录下的所有文件
    rm -rf /目录/*
    • 避免误删:所有服务器都应该先预装extundelete,误删除后减少操作导致的文件覆盖,可能全部找回

文件操作命令

  1. echo:修改文件

    bash 复制代码
    # 文件不存在则创建,存在则追加
    echo 内容 >> abc
  2. touch:创建文件

    bash 复制代码
    # 文件不存在则创建,存在则修改文件时间戳
    touch 文件名
  3. stat:文件详细信息

    • 没有文件的创建时间
  4. cat:查看小文件内容

    bash 复制代码
    # 显示行号,但不适合查看大文件
    cat -n 文件名称
    # 列出所有隐藏符号:$为回车,^为Tab
    cat -A 文件名称
  5. more:分屏显示大文件内容

    bash 复制代码
    # 空格向下翻页,b向上翻页,回车向下一行,
    # q退出分屏显示,/字符串 后回车会搜索
    more 文件名称
  6. less:分行显示大文件内容

    bash 复制代码
    # 上下箭头进行翻找行,q退出显示
    less 文件名称
  7. head/tail:分行显示大文件内容

    bash 复制代码
    # 显示文件头或尾的二十行
    head/tail -20 文件名称 
    # 监听文件追加的数据,ctrl+c才能退出
    tail -f 文件名称
  8. ln:对两个文件进行硬链接,标记不清,不建议使用

    bash 复制代码
    ln bcd /tmp/bcd_h
    • 特点
      • 具有相同的Inode和Block
      • 修改任意其一,二者均变
      • 删除任意其一,另一个仍可用
      • 不能链接目录和跨分区链接
    • 原理:两者索引了同一个Inode所代表的Block,即文件本质相同只是有两个名称
  9. ln - s:对两个文件进行软链接,类似win下的快捷方式

    bash 复制代码
    # 
    ln -s 绝对路径1 绝对路径2
    • 特点
      • 具有不相同的Inode和Block
      • 修改任意其一,二者均变
      • 删除软链接,源文件不受影响,删除源文件,软链接不能使用
      • 能够链接目录和跨分区链接
    • 原理:软链接通过一个

目录和文件操作命令

  1. rm -rf 文件名称

    • 用前三思,用后无法删除
    • r表示递归删除,f表示强制删除
  2. cp:复制文件或目录

    • -a:表示-pdr,组合使用可以满足90%的情况
    bash 复制代码
    # 可以用于复制文件或目录,并且复制后信息完全相同(包含修改时间)
    cp -a 目录/文件   新目录/文件
    # 复制文件:将当前目录的def文件复制到tmp目录下并改名为hjk
    cp def /tmp/hjk
    # 复制目录:需要使用-r选项
    cp -r 12  /tmp/23
  3. == mv== :移动或重命名文件

    bash 复制代码
    # 在同目录下为重命名
    mv 12  23
    # 在不同目录下为剪切
    mv 12 /tmp/

权限管理

  1. ls -l中文件前面的十位-的权限含义

    • 第一位:-表示普通文件,d表示目录文件,l表示软链接文件
    • 剩下九位,每三个一组,分别表示user、group、other的权限,其中表示读r、写w、执行x
    • 相同所属组和所有者的权限,所有者权限匹配高于所属组
  2. chmod:修改权限位

    bash 复制代码
    # 给文件bcd的user增加可执行权限
    chmod u+x bcd
    # 给文件的所属组和其他人都取消写权限
    chmod g-w,o-w bcd
    #数字赋予权限:4表示r,2表示w,1表示x,以下为常见权限
    chmod 644 bcd # 小权限:所有者拥有读写权限,而所属组和其他人只有读权限
    chmod 755 bcd # 中权限:所有者拥有读写执行权限,而所属组和其他人只有读和执行权限
    chmod 777 bcd # 大权限:个人严禁使用,会有隐藏安全问题
  3. chown :修改文件的所有者和所属组

    • 普通用户不能修改文件的所有者,即使该文件属于这个普通用户,所以超级用户才行
    bash 复制代码
    # :前面为所有者,后面为所属组
    chown root:root bcd 
  4. 权限的注意点

    • 权限:本质是Inode权限,表示对其指向的Block的权限
    • 删除文件:对文件具有写权限,不能删除文件本身。若想要删除文件,需要对【文件的上级目录具有写权限】,因为文件名称在上级Inode的Block中。
    • 执行权限
      • 对目录的执行,仅表示可以使用cd进入该目录
      • 对文件的执行,注意不要轻易赋予!!!
    • 目录只能赋的权限
      • 0表示无权限
      • 5表示基本的目录浏览权限
      • 7表示完全权限
    • root用户对任何文件都拥有所有权限
  5. umask:查看或临时修改系统的默认权限

    • 规则:后面三个数值符合421规则,分别表示user、group和other
    • 永久修改需要修改环境配置文件/etc/profile
    • 系统默认最大权限
      • 对文件:666,执行权限对文件有风险,可以后面手动加执行权限
      • 对目录:777,执行权限仅表示可以进入目录
    • umsk和权限值得计算方法

帮助命令

  1. man 命令:查看命令的信息,info更加详细,help只能查找内部命令

    • 描述格式:名称、格式、描述
    快捷键 作用
    上箭头 向上移动一行
    下箭头 向下移动一行
    PgUp 向上翻一页
    PgDn 向下翻一页
    g 移动到首页
    G 移动到尾页
    / 字符串 从当前页向下搜索
    ?字符串 从当前页向上搜索
  2. whereis 命令:搜索系统命令的源文件位置、帮助文件位置

  3. which 命令:查看系统命令的别名

    • 例如:ll 等价于 ls -l --color=auto
  4. locate:按照文件名搜索文件所在位置,推荐使用

    • 消耗资源少速度快,因为直接搜索数据库命名文件/var/lib/mlocate/mlocate.db
  5. locate:按照文件名搜索文件所在位置,推荐使用

  6. find:搜索系统中符合条件的文件名

    • 完全匹配:本性自足
    • 模糊匹配:使用通配符
    bash 复制代码
    # 基本搜索格式
    find . -name abc
    # 不区分大小写搜索
    find . -iname abc
    # 按i节点号搜索
    find . -inum 1055790
    # 按文件大小搜索,+表示比28k大,-表示比28k小
    find . -size +28k 
    # 按照文件大小搜索,k必须小写,M必须大写
    find . -size -28M
    # 按照文件字节大小搜索
    find . -size 15c
    
    # 查找6天之前修改的文件
    find . -atime +5  
    • 使用man find,然后再用/-size,即可查询对应的参数详细信息
    • find . -perm +444:+表示文件任一权限大于给定权限即可,-表示必须全部包含
    • find . -nouser查找外来文件
    • 逻辑运算
      • find . -size +1k -a -type f:大小大于1k,并且是文件类型的文件
      • find . -name can -o -name bol:名字为can或bol的文件
      • find . -not/! -name can:名字不为can的文件
    • 管道处理
      • find 路径 参数 -exec 其他命令 {} \; :将find命令的查询结果给到{}中,作为其他命令的参数对象
  7. grep:在文件内容中搜索符合条件的字符串

    • 模糊匹配:本性自足
    • 完全匹配:使用正则表达式
    bash 复制代码
    # 基本使用
    grep  "123" abc
  8. 通配符用于完全匹配文件名

    通配符 作用
    匹配任意一个字符
    * 匹配任意多个字符(包含空字符)
    [] 匹配括号中的任意一个字符,[ab]表示a或b
    [-] 匹配括号范围中的一个字符,[a-z]表示匹配一个小写字母
    [^] 范围逻辑非,表示匹配非括号内范围的一个字符,[^0~9]表示匹配一个非数字字符
  9. 正则表达式用于模糊匹配文件内容

    • egrep:表示使用标准正则规则,如下所示
    正则表达式 作用
    匹配0个或1个前一个字符,必须使用egroup
    * 匹配0个或多个前一个字符,注意a*会匹配空字符
    [] 匹配括号中的任意一个字符,[ab]表示a或b
    [-] 匹配括号范围中的一个字符,[a-z]表示匹配一个小写字母
    [^] 范围逻辑非,表示匹配非括号内范围的一个字符,[^0~9]表示匹配一个非数字字符
    ^字符 匹配行首含指定字符的行
    字符$ 匹配行尾含指定字符的行
    bash 复制代码
    # 在abc文件中,匹配行首为a,后面b重复0或任意多次(单纯a*会匹配所有行)
    grep --color=auto "^aa*" abc

网络命令

  1. 配置网络IP地址

    • setup工具:只在redhut、centos等中专用
    • 标准:修改配置文件
    bash 复制代码
    # 1.打开配置文件
    vi /etc/sysconfig/net-work-scripts/ifcfg-eth0
    # 2.虚拟机需要桥接到有线网卡,并重启网络服务
    # 3.重启网络服务
    service network restart
  2. 常见配置IP失败原因

    • ip地址冲突:换一个IP地址
    • UUID冲突:常见在虚拟机的快照或镜像的克隆
    bash 复制代码
    # 手动下面文件中的MAC地址行
    vi /etc/sysconfig/net-work-scripts/ifcfg-eth0
    # 删除MAC地址和UUID的绑定文件,使UUID重新计算
    rm -rf /etc/udev/rules.d/70-persistent-net.rules
    # 重启linux
    reboot
  3. ipconfig:查看IP、MAC、子网掩码等网络配置信息

  4. ping:基于ICMP协议进行网络连通性的探测
    ping -b -c 3 192.168.103.93

    • -c:指定探测次数
    • -b:询问网段内所有ip主机
  5. netstat:查看本机的所有客户端或开启的端口

    bash 复制代码
    # 查看端口服务:Proto协议,Recv-Q接收数据,Send-Q发送数据
    # 接上:Local Address本机IP和端口,Foreign Address远程IP和端口,State状态
    netstat -tuln
    # 查询那个程序PID占用了端口
    netstat -tulnp
    # 查询网络网关地址
    netstat -rn
  6. write:向目标用户发送信息

    bash 复制代码
    write 用户名 终端号
    message only in English
    Ctrl+D发送信息
  7. wall:给所有正在使用服务器的用户发送信息

    bash 复制代码
    wall "I will be in 5 minutes to restart,please save your data!!!"
  8. ==mail ==:向用户发送或查看已经接受的邮件

    bash 复制代码
    # 发送文件
    mail -s "邮件标题" 用户名 < 要发送文件的绝对地址
  9. wall:给所有正在使用服务器的用户发送信息

    bash 复制代码
    wall "I will be in 5 minutes to restart,please save your data!!!"

系统操作痕迹命令

  1. 系统痕迹日志:二进制存储,只能使用专用命令进行更改和查看

    • /var/log/wtmp
    • /var/run/utmp
    • /var/log/btmp
    • /var/log/lastlog
  2. w/who:查看所有的用户登录信息,who更加简略

  3. 系统死机风险:CPU占有率不能超过70%,内存占有率不能超过90%

  4. last:查看系统所有登录过的用户信息

    bash 复制代码
    # 查看系统中所有用户是否登录过,包含伪用户(用于系统服务的拉起)
    lastlog
    # 查询尝试登录但失败的情况
    lastb

挂载命令

  1. 挂载:将文件的设备名空目录链接的过程

  2. mount:将虚拟机和win下目录进行链接,从而实现文件共享通信

    bash 复制代码
    # 查询系统中已经挂载的文件信息,其中swap文件给内核使用不需要挂载点
    mount
    # 挂载光盘
    	## 建立空目录,命名规则为习惯
    mkdir /mnt/cdrom
    	## 挂载
    mount -t iso9660 /dev/cdrom /mnt/cdrom/
    	## 用完后需要卸载,卸载时需要退出光盘目录
    umount /dev/sr0
    	## 卸载完成后,原来挂载目录下的文件仍然存在,但是无法清理,所以最好使用空目录
    # 挂载U盘
    	## 确定win下服务中VMware USB Arbtration Service是打开的
    	## 查看插入U盘的设备目录
    fdisk -l
    	## 创建空目录
    mkdir /mnt/usb
    	## 挂载,-t vfat是U盘文件格式,-o iocharset=utf8指定挂载后的字符集编码
    mount -t vfat -o iocharset=utf8  设备名/dev/上面查询的 挂载点目录/mnt/usb/
    # 使用umount卸载u盘后,才能正确拔出u盘
    
    # 自动挂载:扫描/etc/fstab的内容,若没错则执行,出错则报错。避免系统错误挂载导致的实体服务器崩溃!!
    mount -a
  3. 关闭系统服务的优点

    • 减少黑客攻击
    • 减少系统资源的开销
    • 但是可能导致系统软件无法拉起正常的服务
  4. Linux正确正常显示中文的条件

    • 安装中文编码和字体
    • 操作终端支持中文显示,纯字符界面不支持中文显示
  5. 所有shell命令的换行符号\

  6. linux中的驱动加载方式

    • 内核驱动:系统启动必须使用的驱动,数量较少,效率高/lib/modules目录下放置
    • 模块驱动:驱动以模块的形式放在硬盘中,多数驱动
    • 非常用驱动:系统一般不常见,需要加载的话需要重新编译内核,如NTFS驱动
    • 第三种一般可以使用插件进行处理,如NTFS-3G可以解析NTFS
  7. linux文件原理

    • i节点中存储文件的时间、权限和保存位置等,文件名称在上个目录节点的block块中

少年,我观你骨骼清奇,颖悟绝伦,必成人中龙凤。 不如点赞·收藏·关注一波


🚩点此跳转到首行↩︎

参考博客

  1. 待定引用
  2. 待定引用
  3. 待定引用
  4. 待定引用
  5. 待定引用
  6. 待定引用
  7. 待定引用
  8. 待定引用
相关推荐
雨中rain13 分钟前
Linux -- 从抢票逻辑理解线程互斥
linux·运维·c++
-KamMinG24 分钟前
Centos7.9安装openldap+phpldapadmin+grafana配置LDAP登录最详细步骤 亲测100%能行
运维·grafana
Bessssss33 分钟前
centos日志管理,xiao整理
linux·运维·centos
s_yellowfish33 分钟前
Linux服务器pm2 运行chatgpt-on-wechat,搭建微信群ai机器人
linux·服务器·chatgpt
豆是浪个35 分钟前
Linux(Centos 7.6)yum源配置
linux·运维·centos
vvw&36 分钟前
如何在 Ubuntu 22.04 上安装 Ansible 教程
linux·运维·服务器·ubuntu·开源·ansible·devops
我一定会有钱38 分钟前
【linux】NFS实验
linux·服务器
王铁柱子哟-41 分钟前
解决 正在下载VS Code 服务器... 问题
运维·服务器
Ven%41 分钟前
如何在防火墙上指定ip访问服务器上任何端口呢
linux·服务器·网络·深度学习·tcp/ip
泰伦闲鱼41 分钟前
nestjs:GET REQUEST 缓存问题
服务器·前端·缓存·node.js·nestjs