Linux常用命令

一、Linux文件处理命令

  1. 命令名称:ls (显示目录文件)

    命令格式:命令 [-选项] [参数]

    • ls -a 显示所有文件,包括隐藏文件

    • ls -l 显示详细信息

      [root@localhost ~]# ll
      -rw-------. 1 root root 1761 7月  24 02:29 anaconda-ks.cfg
      • 第1个字符:文件类型

        • -:普通文件

        • b:块设备文件(如硬盘U盘等)

        • d:目录文件

      • 2~10个字符:文件权限

        • 2~4: 文件所有者权限

        • 5~7: 文件所属组权限

        • 8~10:其他用户(其他人)

          • r:读取权限

          • w:修改权限

          • x:执行权限

      • . :表示SELinux

      • 1:文件链接数量(硬链接)

        • 连接相同iNode的不同文件名数量

      • root:文件所有者(默认为文件创建用户user)

      • root:文件所属组(默认为文件创建用户所在的当前组group)

      • 1761:文件大小,单位为B

      • 文件名:文件内容的概括和缩写

    • ls -d 查看目录属性(ls -ld显示当前目录属性)

    • ls -h 文件大小显示为常见单位

    • ls -i 查询文件的INode号

      数据查找:文件名——>Inode——>block

    • ls -R 递归显示目录及其子目录

    • ls -n 显示文件的UID(用户id)和GID(组id)

    PS:磁盘分区

    • /boot:512MB

    • swap:

      • 内存小于4GB,内存2倍

      • 内存大于4GB,内存等大

      • 内存大于16GB,可为0(但不建议)

    • /(分区):物理上实际存在

      /(目录):逻辑上一切硬盘分区的起始点

    • PS:判断目录是否为根分区:排除法

  2. 命令名称:touch (创建空文件/更新修改和访问时间)

    命令格式:touch 文件名

    Linux文件命名规则:

    • 除"/"外,所有字符均合法

    • 部分字符最好不用(可用- _ .)

    • 普通文件不使用.开头,除非创建隐藏文件

    • Linux严格区分大小写

    • 长度不可大于255个字符

    • PS:终端名称

      • 本地终端:/dev/ttyn, n为数字,本地字符界面登录(默认1~6)

      • 虚拟终端:/dev/pts/n,n为数字,本地图形化及远程连接

  3. 命令名称:mkdir (创建新目录)

    命令格式:mkdir [-选项] [参数]

    • -v 显示创建过程

    • -p 递归创建

  4. 命令名称:cd (切换目录)

    命令格式:cd 目录

    • cd ~ 进入当前用户家目录

    • cd - 进入上次目录

    • cd .. 返回上一级目录

    • cd ../.. 返回上两级目录(依次类推)

    • cd . 进入当前目录

    绝对路径:以根(/)为起始点的路径表达方式

    相对路径:不以(/)为起始点的路径表达方式

  5. 命令名称:pwd (显示当前所在目录)

  6. 命令名称:tree (显示目录树)

    命令格式:tree 目录

    • -d 只显示目录不显示文件

    • CentOS7任何方式均需安装,挂载镜像安装

    • 挂载光盘

      • mount -t iso9660 /dev/sr0 /mnt

      • 挂载命令 文件系统类型 设备文件 挂载点

    • 安装rpm包

      • rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm

        • i:install v:详细信息 h:"#"显示进度

    6.5.pstree

    • 格式:pstree [-选项]

      • -A:进程数之间的链接一ASCII码字符连接(换个外观,没大用)

      • -p:同时列出每个进程的PID

      • -u:同时列出每个进程的所属账号名称

  7. 命令名称:cp (复制、复制并改名)

    命令格式:cp 源文件或目录 目标目录(/新文件名)

    • -r:复制目录

    • -p:保留文件属性(创建/修改时间等)

    • -a:相当于-rp

  8. 命令名称:mv (剪切、改名)

  9. 命令名称:rm (删除)

    • -r:删除目录(递归)

    • -f:强制删除

  10. 命令名称:rmdir (删除空目录)(同mkdir)

    • -p:递归删除目录

    • -v:显示执行过程

  11. 命令名称:cat (显示文件内容)

    格式:cat 文件名

    • -n:列出行号

    • cat file1 file2 ... 显示多文件内容

    • cat多文件内容合并,按先后顺序显示

      (内容超过一页只显示最后一页:字符界面)

  12. 命令名称:more (分页显示文件内容)

    • b: 向上翻页(打开文件时使用)

    • 空格: 向下翻页

    • Enter:换行

    • q/Q: 退出

  13. 命令名称:less (分页显示文件内容)

    格式:less 文件名

    • 操作方法与more相同

    • 可执行vim中的查找操作

  14. 命令名称:head (默认查看文件头10行)

    • -n:指定查看头n行

  15. 命令名称:tail (默认查看文件后10行)

    • -n:指定查看后n行

    • -f: 持续显示文件变化情况(新内容产生)

  16. 命令名称:ln (生成链接文件)

    格式:ln 源文件/目录 链接

    • ln:创建硬链接

      • 硬链接:多个文件、名称、保存路径均不相同,但Inode相同

        1. 文件创建硬链接后,链接数量+1。每删除一个文件-1

        2. 互为硬链接的文件中,修改其中一个其余也会变化

        3. 硬链接无法跨分区创建

        4. 目录无法创建硬链接

    • ln -s:创建软链接

      • 软链接(符号链接):

        1. 软链接和源文件的Inode不同

        2. 软链接文件类型为$l$(-dx),默认所有用户权限全开

        3. 修改任一软链接或源文件,其余文件均会变化

        4. 删除软链接不影响源文件,删除源文件软链接失效

        5. 软链接可跨分区创建

        6. 创建软链接建议使用绝对路径

        7. 目录可创建软链接

    文件系统

    1. block:文件系统中最小存储单元,ext4、xfs中默认4KB,分为存储文件数据的data block和存储目录数据的directory block

    2. inode:“索引节点”,每个inode对应一个文件或目录,记录其大小、所占用的block及目录directory block信息

    3. Inode Bitmap:“inode位图”,用二进制记录inode使用情况

    4. Block Bitmap: “块位图”,用二进制记录block使用情况

    PS:history命令:显示历史输入命令

二、权限管理命令

  • PS:-rw-r-xrwx

    • 第一位:文件类型

      • - 普通文件

      • d 目录文件

      • $l$ 链接文件

      • b block文件

      • c 字符设备文件

      • s 套接字

      • p 管道

    • 后9位为权限

      执行
      rwx
      421
    • 文件所有者:u 文件所属组:g 其他用户:o(other)

  1. chmod (修改文件权限)

    命令格式:

    • chmod u+x 文件

    • chmod g+w,o-w 文件

    • chmod u=rwx 文件

    • chmod 644 文件

  2. chown (修改文件或目录的所有者、所属组)

    命令格式:

    • chown user1 文件:修改所有者

    • chown user1:user2 文件:全改

    • chown user1: 文件:全改成user1

    • chown :user1 文件:修改所属组

  3. chgrp (改变文件或目录所属组)(不重要)

    格式:chgrp user1 文件

  4. umask (显示和设置掩码值)(创建文件或目录的缺省权限)(临时生效)

    root用户默认值0022

    • 目录最大权限=777-022=755

    • 文件最大权限=777-111-022=644

三、查找命令

  1. which (查看命令文件位置和命令可能出现的别名)

  • 命令所在绝对路径

  1. whereis (查找命令及帮助文档所在位置)

  2. locate (按文件/目录名查找,按数据库查找)(从locate数据库中查找)

    • updatedb:强制创建或更新数据库(解决数据不同步问题)

    • 模糊查找、包含查找,字符匹配

    • PS:带路径查找会更准确

  3. find (条件查询文件或目录)

    • -name:根据文件名查找

      • 例:find / -name "a*"

      • 通配符:外加引号

        • * :任意多个字符

        • ?: 任意一个字符

        • [] :指定范围值

    • -size:根据大小查找

      • find ./ -size -10k: 查找小于10k的文件或目录

      • find ./ -size -10M:查找小于10k的文件或目录

      • find ./ -size +10G:查找大于10k的文件或目录

    • -user:根据所有者查找

      • find / -user root:查找/下所有root用户的文件

    • -group:根据所属组查找

      • find / -group gaomingyue:查找/下所有gaomingyue组的文件

    • -perm:根据文件权限查找

      • find /boot -perm 644

    • -时间查找

      属性被修该过 所有者、所属组、权限被访问(查看)过内容被修改过
      c(change)a(access)m(modify)
      按天数ctimeatimemtime
      按分钟cminaminmmin
      • find /etc -mmin -120:120分钟内被修改过内容的文件

      • find /etc -ctime +7: 7天之外(前)被修改过属性的文件

    • -type:根据文件类型查找

      • find / -type f:二进制文件(普通文件)

      • find / -type l:软链接

      • find / -type d: 目录

    • 逻辑连接符

      • -a(and)

      • -o(or)

      • 例:find /root -size +1k -a -size -1M

    • 命令执行连接符(对找到的文件进一步处理)

      • find …… -exec 命令 {} \;

        • ps:";",语句结束

        • ps:"\",转义符,\ls可取消别名

    • -inum (根据inode查询文件)

      • find ./ -inum 16848536:找到所有硬链接

        • 后接 -exec rm {} \; 彻底删除文件

  4. grep 字符串 文件名 (在文件中查找符合条件的字符串所在行)(模糊查找)(过滤)

    • -v:反向选择 找到不符合条件的

    • -$I$:忽略大小写

  5. 管道符" | "

    • 命令1 | 命令2 将命令1的输出作为命令2的标准输入

      • find / -name "aa*" | xargs ls -l

        xargs:find的结果是一个整体,通过管道符无法被ls等命令识别,xargs用于按行分割

        # "|"使用{}
        find / -name "aa*" | xargs -i cp {} /root

    PS: ps aux | grep '字符' 过滤进程

    命令1结果逐条传递给命令2,故命令2(grep)进程也在执行

四、帮助命令

  1. man 命令名:(查看命令的帮助)

    • man -f 命令:查看命令有哪些级别(whereis结果相同)的帮助,需先执行mandb

  2. type 命令:查看命令类型(内嵌命令/外部命令)

    • 内部命令:cd、pwd、echo等(存于内存中)

    • 外部命令:ls、vi等

    • 优先显示别名,内建命令显示内嵌,外部命令显示路径

    • PS:内核:管理、控制硬件

      shell:命令解释器(如bash)

  3. help 内部命令:(查看内部的帮助信息)

  4. 命令 --help:(查看命令常见选项)

  5. info 命令:(同man,更详细)

    • 空格:翻页

    • 回车:进入子帮助页面(带有*号标记)

    • u:进入上层页面

    • n:进入下一个帮助小节

    • p:进入上一个帮助小节

    • q:退出

五、网络命令

  1. ping(测网通不通)

  • -c n:指定ping n次

  1. ifconfig(查询本机网络信息)

    ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.24.3 netmask 255.255.255.0 broadcast 192.168.24.255

    inet6 fe80::a45:62e3:61dc:8453 prefixlen 64 scopeid 0x20<link> ​ ether 00:0c:29:e0:c0:a1 txqueuelen 1000 (Ethernet) ​ RX packets 2178 bytes 2213796 (2.1 MiB) ​ RX errors 0 dropped 0 overruns 0 frame 0 ​ TX packets 630 bytes 136630 (133.4 KiB) ​ TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    • 第一行:

      • UP:网卡开启状态

      • BROADCAST:广播

      • RUNNING:网线处于连接状态

      • MULTICAST:支持组播

      • mtu 1500:最大传输单元为1500B

    • 第二行:该网卡的ip、子网掩码、广播地址

    • 第三行:IPv6配置信息

    • 第四行:网卡的MAC地址

      • ether:以太网

      • txqueuelen 1000:传输队列长度

    • 第五六行:网卡接收数据包的统计信息和接收错误的统计信息

    • 第七八行:网卡发送数据包的统计信息和发送错误的统计信息

    • 相关配置修改:

      1. 修改网卡IP地址(永久)ifcfg-ens33

        修改添加以下内容:
        ​
        BOOTPROTO=static        #静态IP:static/none   自动获取:dhcp
        ONBOOT=yes              #设置成开机自动连接
        IPADDR=192.168.50.242   #IP
        NETMASK=255.255.255.0   #掩码
        PREFIX=24               #掩码,二选一
        GATEWAY=192.168.50.1    #网关
        DNS1=114.114.114.114    #DNS
        • 修改完成后重启所有网卡生效:systemctl restart network

        • 修改网卡配置文件后(重启指定网卡)

          • CentOS6:

            1. ifdown eth0

            2. ifup eth0

          • CentOS7:

            1. nmcli con load 网卡名(重载配置文件)

            2. nmcli con up 网卡名(启动)

            3. nmcli con down 网卡名(停止,重启网卡不用)

      2. 添加多个临时IP地址

        • ifconfig ens33:0 新IP0 (netmask 子网掩码) up

        • ifconfig ens36:1 新IP1 (netmask 子网掩码) up

        删除临时IP地址

        • ifconfig ens33:0 del 新IP0

        PS:临时IP依旧依赖于现有网卡ens33,命名格式只能为"ens33:n"

      3. 添加真实网卡(新网卡无配置文件)

        nmcli connection add con-name 网卡名 type 接口类型 ifname 网卡名(网卡名为系统自动识别的网卡名)

        nmcli  connection  add  con-name  ens36  type  ethernet  ifname  ens36
  2. w (查询当前登录服务器的用户)

    wresult

    • 第一行:系统时间、系统持续运行时间、用户数、平均负载

    • 第二行:用户名、登录终端、来源IP、登录时间、用户闲置时间、所有进程占用CPU时间、当前进程占CPU时间、用户当前操作

  3. who (查询登录用户:类似w的简化版)

  4. last (列出登录系统的相关信息)

    • Linux用户:

      • root用户/根用户/超级用户

      • 普通用户

      • 管理员用户

      • 系统用户(服务用户):受shell类型限制无法登录系统,但可以使用系统资源

  5. lastlog (显示所有账号最后一次登录的时间)

  6. write 用户名 [终端号] (给在线某用户写信)

    write  root  pts/1
    输入内容
    Ctrl + d  保存发送
  7. wall (对所有在线用户广播)

    • wall 字符串

    • 同write格式

  8. mail (邮件命令)

    发信:
        mail 用户名
        标题
        内容(Ctrl+Backspace删除)
        Ctrl + d   结束并发送
    收信:
        mail
        ……
        h:列出邮件列表
        邮件序号:查看对应邮件
        q:退出
  9. netstat (查看网络连接状态)

端口号服务
20 21ftp服务
22ssh服务
23telnet
25SMTP,发信
110POP3,收信
80http
3306MySQL端口
3389Windows终端端口

PS:/etc/services:所有常见端口

netstat -tlun:查看本机所有监听的端口

  • -t:TCP协议

  • -u:UDP协议

  • -$l$:监听

  • -n:以IP形式显示信息

  • -a:显示所有选项

  • -p:显示建立相关连接的程序名

六、关机和重启命令

  • init常见运行级别对应功能
    init 0关机
    init 1字符界面。单用户模式,可用于系统故障修复
    init 2字符界面,某些网络功能未开启
    init 3系统运行为字符级别(界面)
    init 4保留
    init 5系统运行为图形化级别(界面)
    init 6重启系统
  1. 关机

    • poweroff 掉电关机

    • shutdown -h now 立刻关机,now可改成时间

      # 10分钟后关机,广播提醒,每分钟提醒一次
      shutdown -h +10 "attention"
  2. 重启:

    • shutdown -r now

    • reboot

  3. 数据同步

    • sync:内存数据写入硬盘。非正常关机时手动执行

    • 缓冲:文件先在内存缓冲区中存储一定时间或一定量,再写入硬盘

    • 缓存:已读过的文件暂存在缓存,方便下次读取

七、挂载命令

  • mount (查询系统中已挂载的设备)

    • 常见的存储设备:

      • /dev/sda1 第一个scsi硬盘的第1个分区

        分区原因:分门别类保存数据

        格式化:写入FS,让FS识别扇区,转换成逻辑上的inode和block

        挂载:识别设备的FS

      • /dev/cdrom 光盘

      • /dev/sr0 光盘(cdrom是sr0的软链接)

    • 挂载格式:mount -t FS类型 -o 特殊选项 设备文件名 挂载点

      -t 文件系统:按文件系统类型指定设备挂载的类型

      -o 特殊选项:指定挂载的额外选项,见下表

      参数参数说明
      remount重新挂载,可用于修改指定权限
      atime/noatime更新访问时间/不更新访问时间。默认访问分区文件时更新(并发访问量过大时可设置为noatime)
      async/sync异步/同步,默认为异步
      rw/ro读写/只读,分区本身是否有读写权限,默认rw
      suid/nosuid是否具有SUID权限。默认有SUID和GUID
      exec/noexec是否可执行。分区内文件是否可执行,默认exec
      user/nouser是否允许普通用户挂载。默认仅root可以
      auto/noauto自动/手动。mount -a执行时自动安装/etc/fstab,默认自动
      defaults默认值,rw+suid+dev+exec+auto+nouser+async
      usrquota写入文件系统支持用户磁盘配额,默认不支持
      grpquota写入文件系统支持组磁盘配额,默认不支持
      prjquota写入文件系统支持目录磁盘配额,默认不支持
    1. mount 查看挂载信息

      #可搭配grep使用:
      mount | grep /boot
    2. 挂载硬盘分区、移动硬盘

      mkdir /mnt/disk1            #创建挂载点
      mount /dev/sdb1 /mnt/disk1  #挂载设备
    3. 挂载光盘

      mount -t iso9660 /dev/sr0 /mnt/cdrom
    4. 挂载U盘

      fdiks -l        #查看当前系统下的存储设备
      mount -t vfat /dev/sdb1 /mnt/usb
      ​
      # fat32格式U盘挂载方式
      -t vfat fat32
      -t fat  fat16

      Linux默认不识别NTFS和EXFAT,需安装对应的包

      虚拟机USB编辑器需更改为对应的接口代数:USB3.1

    5. 挂载.iso文件

      mount -o loop /root/CentOS…….iso /mnt/

      loop:让文件以块设备方式挂载

    6. 卸载

      • umount 设备名/挂载点

  • 挂载注意事项:

    • 同一个FS不应重复挂载在不同挂载点

    • 同一目录不应重复挂载多个FS

    • 挂载点须为空目录

八、打包压缩

打包:多个小文件打包后可能比原先更大,多个大文件打包后可能更小

压缩: 110001010101 —压缩—> 1(2)0(2)01(4) —解压—> 110001010101

  1. tar:文件的归档(打包)和解压缩

    • 好处:节约硬盘资源,加快文件传输速率

    • 用法:tar [选项] 压缩后生成的文件 打包文件

    • 参数:

      • -c:创建文件,打包、压缩

      • -x:提取、解压还原文件

      • -v:显示执行详细过程

      • -f: 指定备份文件,必写项

      • -t:列出压缩包中文件,不解包查看内容

      • -C: 指定解压位置

    # 例1:对/boot/grub目录打包并解包
        # 归档
        tar -cvf ./grub.tar /boot/grub
        tar  cvf ./grub.tar /boot/grub
        tar:删除开头的"/"
        /boot/grub
        /boot/grub/splash.xpm.gz
        # 解包及解压缩
        tar -xvf ./grub.tar
        tar:删除开头的"/"    #防止绝对路径覆盖系统原文件
        boot/grub
        boot/grub/splash.xpm.gz
        # 指定解压缩位置/opt/
        tar -xvf ./grub.tar -C /opt/
    # 例2:把多个文件或目录合并打包
        tar -cvf back.tar /boot/grub/ /etc/passwd
    # 例3:打包过程中跳过多个文件
        tar --exclude /root/test.d/a1 -cvf /root/test.tar /root/test.d
    # 例4:不解包查看包中内容
        tar -tvf ./test.tar

    tar 归档+压缩:

    • 常用参数:

      • -z:以gzip方式压缩。扩展名:tar.gz

      • -j: 以bz2方式压缩。 扩展名:tar.bz2

      • -J: 以 xz 方式压缩。 扩展名:tar.xz

    # 例1:创建解压tar.gz包
        tar -zcvf ./test.tar.gz /etc
        tar -zxvf ./test.tar.gz
    # 例2:创建解压tar.bz2包
        tar -jcvf ./test.tar.bz2 /etc
        tar -jxvf ./test.tar.bz2
    # 例3:创建解压tar.xz包
        tar -Jcvf ./test.tar.xz /etc
        tar -Jxvf ./test.tar.xz
    # 对比三种压缩方式包的大小
        ll -h ./test.tar*
    PS:解压时可不加zjJ
  2. zip管理压缩文件

    zip:压缩程序

    unzip:解压缩程序

    # 例1:压缩文件,与tar类似
        zip ./file.zip ./file
    # 例2:将所有.jpg文件压缩成一个zip包
        zip ./all.zip *.jpg
    # 例3:压缩一个目录
        zip -r ./grub.zip /boot/grub
    # -d:指定解压目录
        unzip ./grub.zip -d /opt/

du -sh /etc/ 显示整个目录大小。-s:只显示本级目录 -h:常用单位

tar:压缩保留软链接,若非绝对路径则会失效

zip:将软链接替换为原文件,因而更慢更大

  1. file命令:查看命令类型

    • file /etc/passwd

    • /etc/passwd: ASCII text

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值