admin 管理员组

文章数量: 887021

系列综述:
💞目的:本系列是个人整理为了学习基本的shell编程和linux命令,整理期间苛求每个知识点,平衡理解简易度与深入程度。
🥰来源:材料主要源于b站大学——linux运维课程进行的,每个知识点的修正和深入主要参考各平台大佬的文章,其中也可能含有少量的个人实验自证。
🤭结语:如果有帮到你的地方,就点个赞关注一下呗,谢谢🎈🎄🌷!!!


文章目录

    • 常用命令
      • 命令的基本格式
      • 目录操作命令
      • 文件操作命令
      • 目录和文件操作命令
      • 权限管理
      • 帮助命令
      • 网络命令
      • 系统操作痕迹命令
      • 挂载命令
    • 参考博客


😊点此到文末惊喜↩︎


常用命令

命令的基本格式

  1. [root@localhost ~] #的含义
    • []:分隔符,无特殊含义
    • root:当前登录用户名
    • localhost:当前系统的简写主机名
    • ~:代表用户当前所在的目录
    • #:命令提示符。超级用户是#,普通用户是$
  2. 命令的常见格式
    • [root@localhost ~] # 命令 [选项] [参数]
    • 选项:用于调整命令功能
    • 参数:命令的操作对象,没有则会使用默认的参数
  3. 目录命令ls的详细信息
    [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:打开目录命令,注意路径的使用

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

  4. mkdir:建立目录

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

文件操作命令

  1. echo:修改文件

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

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

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

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

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

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

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

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

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

目录和文件操作命令

  1. rm -rf 文件名称
    • 用前三思,用后无法删除
    • r表示递归删除,f表示强制删除
  2. cp:复制文件或目录
    • -a:表示-pdr,组合使用可以满足90%的情况
    # 可以用于复制文件或目录,并且复制后信息完全相同(包含修改时间)
    cp -a 目录/文件   新目录/文件
    # 复制文件:将当前目录的def文件复制到tmp目录下并改名为hjk
    cp def /tmp/hjk
    # 复制目录:需要使用-r选项
    cp -r 12  /tmp/23
    
  3. == mv== :移动或重命名文件
    # 在同目录下为重命名
    mv 12  23
    # 在不同目录下为剪切
    mv 12 /tmp/
    

权限管理

  1. ls -l中文件前面的十位-的权限含义
    • 第一位:-表示普通文件,d表示目录文件,l表示软链接文件
    • 剩下九位,每三个一组,分别表示user、group、other的权限,其中表示读r、写w、执行x
    • 相同所属组和所有者的权限,所有者权限匹配高于所属组
  2. chmod:修改权限位
    # 给文件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 :修改文件的所有者和所属组
    • 普通用户不能修改文件的所有者,即使该文件属于这个普通用户,所以超级用户才行
    # :前面为所有者,后面为所属组
    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:搜索系统中符合条件的文件名

    • 完全匹配:本性自足
    • 模糊匹配:使用通配符
    # 基本搜索格式
    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:在文件内容中搜索符合条件的字符串

    • 模糊匹配:本性自足
    • 完全匹配:使用正则表达式
    # 基本使用
    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]表示匹配一个非数字字符
    ^字符匹配行首含指定字符的行
    字符$匹配行尾含指定字符的行
    # 在abc文件中,匹配行首为a,后面b重复0或任意多次(单纯a*会匹配所有行)
    grep --color=auto "^aa*" abc
    

网络命令

  1. 配置网络IP地址
    • setup工具:只在redhut、centos等中专用
    • 标准:修改配置文件
    # 1.打开配置文件
    vi /etc/sysconfig/net-work-scripts/ifcfg-eth0
    # 2.虚拟机需要桥接到有线网卡,并重启网络服务
    # 3.重启网络服务
    service network restart
    
  2. 常见配置IP失败原因
    • ip地址冲突:换一个IP地址
    • UUID冲突:常见在虚拟机的快照或镜像的克隆
    # 手动下面文件中的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:查看本机的所有客户端或开启的端口
    # 查看端口服务:Proto协议,Recv-Q接收数据,Send-Q发送数据
    # 接上:Local Address本机IP和端口,Foreign Address远程IP和端口,State状态
    netstat -tuln
    # 查询那个程序PID占用了端口
    netstat -tulnp
    # 查询网络网关地址
    netstat -rn
    
  6. write:向目标用户发送信息
    write 用户名 终端号
    message only in English
    Ctrl+D发送信息
    
  7. wall:给所有正在使用服务器的用户发送信息
    wall "I will be in 5 minutes to restart,please save your data!!!"
    
  8. ==mail ==:向用户发送或查看已经接受的邮件
    # 发送文件
    mail -s "邮件标题" 用户名 < 要发送文件的绝对地址
    
  9. wall:给所有正在使用服务器的用户发送信息
    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:查看系统所有登录过的用户信息
    # 查看系统中所有用户是否登录过,包含伪用户(用于系统服务的拉起)
    lastlog
    # 查询尝试登录但失败的情况
    lastb
    

挂载命令

  1. 挂载:将文件的设备名空目录链接的过程
  2. mount:将虚拟机和win下目录进行链接,从而实现文件共享通信
    # 查询系统中已经挂载的文件信息,其中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. 待定引用

本文标签: 命令 常见 系统 Linux 运维