【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. 待定引用
相关推荐
Fireworkitte1 小时前
Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
linux·ubuntu·centos
sword devil9001 小时前
ubuntu常见问题汇总
linux·ubuntu
ac.char2 小时前
在CentOS系统中查询已删除但仍占用磁盘空间的文件
linux·运维·centos
繁星¹⁸⁹⁵3 小时前
通过update-alternatives可以实现cuda的多版本切换
服务器
中科米堆3 小时前
中科米堆CASAIM自动化三维测量设备测量汽车壳体直径尺寸
运维·自动化·汽车·视觉检测
淮北也生橘123 小时前
Linux的ALSA音频框架学习笔记
linux·笔记·学习
缘华工业智维4 小时前
CNN 在故障诊断中的应用:原理、案例与优势
大数据·运维·cnn
开航母的李大5 小时前
软件系统运维常见问题
运维·服务器·系统架构·运维开发
华强笔记6 小时前
Linux内存管理系统性总结
linux·运维·网络
十五年专注C++开发7 小时前
CMake进阶: CMake Modules---简化CMake配置的利器
linux·c++·windows·cmake·自动化构建