Linux常见命令详解

前言


一、系统管理命令

 ls命令

   显示指定工作目录下的内容,列出工作目录所含的文件及子目录。此命令与Windows下的dir类似。另外,Linux也提供了dir命令,用户也可以用dir命令代替ls命令。ls的语法如下:

ls  [ 选项 ] [ 路径或文件 ]
    常用选项:
    -a    显示指定目录下的所有文件以及子目录,包含隐藏文件(Linux下将“.”开头的文件或者目录视为隐藏文档)
    -l    除文件名称外,同时将文件或者子目录的权限、使用者和大小等信息详细列出
    -S    以文件大小排序
    -pF    在每个文件名后附上一个字符以说明该文件的类型。 “*”表示可执行的普通文件,“/”表示目录, “@” 表示符号链接,“|”表示FIFOs,“=”表示套接字(sockets)
    常用组合:
ls –al、ll(ls –l) 、ls –Sl、    ls -apF

 [root@localhost etc]# ls -Sl
总用量 1380
-rw-r--r--.  1 root root   670293 6月   7 2013 services
-rw-r--r--.  1 root root    30124 9月  20 12:46 ld.so.cache
-rw-r--r--.  1 root root    12288 9月  20 18:51 aliases.db
-rw-r--r--.  1 root root     7265 9月  20 18:42 kdump.conf
-rw-------.  1 tss  tss      7046 8月   4 2017 tcsd.conf
-rw-r--r--.  1 root root     6545 10月 31 2018 protocols
-rw-r--r--.  1 root root     5725 10月 30 2018 DIR_COLORS.256color
-rw-r--r--.  1 root root     5171 10月 31 2018 man_db.conf
-rw-r--r--.  1 root root     5122 11月  5 2018 makedumpfile.conf.sample
-rw-r--r--.  1 root root     5090 10月 30 2018 DIR_COLORS
-rw-r--r--.  1 root root     4669 10月 30 2018 DIR_COLORS.lightbgcolor

[root@localhost etc]# ls -pF
adjtime                  ethertypes          ld.so.cache               popt.d/           skel/
aliases                  exports             ld.so.conf                postfix/          snmp/
aliases.db               favicon.png@        ld.so.conf.d/             ppp/              ssh/
alternatives/            filesystems         libaudit.conf             prelink.conf.d/   ssl/
anacrontab               firewalld/          libnl/                    printcap          statetab
asound.conf              fstab               libuser.conf              profile           statetab.d/
audisp/                  fuse.conf           locale.conf               profile.d/        subgid
audit/                   gcrypt/             localtime@                protocols         subuid


passwd 命令


 用于设置用户口令。        语法格式如下:passwd [用户名]
(1)普通用户要修改自己的口令,可使用以下命令:   passwd
然后根据提示连续两次输入口令即可。
(2)超级用户root修改某个用户的口令时,使用以下命令:   passwd [用户名]
然后根据提示连续两次输入口令即可。

root修改自己的密码时,只需输入:passwd或者passwd       root
然后根据提示连续两次输入口令即可。

su命令


su命令主要用于改变用户身份,其格式如下:su [选项] [用户名]
-加载相应用户下的环境变量
-l    使目前的shell成为改变身份后用户默认的shell
-c    改变身份运行一个指令后就结束

举例:
1)普通用户要成为超级用户,可执行如下命令。

[root@localhost ~]$su -


根据系统提示输入超级用户口令,即可转变为超级用户。
注意:su后面的“-”就是加载root环境变量,如果直接输入su也可以转变为超级用户,但是由于没有加载root环境变量,因此某些指令可能无法执行,会提示“command not found”。
(2)在普通用户A下修改超级用户root的口令,可以使用下面的命令。

[root@localhost ~]$su -c  passwd


然后根据提示输入root口令,接着连续两次输入root用户新的密码。执行完毕,系统自动退出到普通用户A下。


dmesg命令


功能说明
显示开机信息。内核会将开机信息存储在系统缓冲区(ring buffer)中,如果开机来不及查看相关信息,可以在开机后利用dmesg命令查看,也可以在/var/log/目录中查看dmesg文件。其格式如下:

dmesg [选项]
-c    显示开机信息后,清除ring buffer信息
-s    设置缓冲区大小,默认设置为8192

主要用途:
dmesg经常用于系统异常诊断,当系统出现问题时,会第一时间将异常信息写入dmesg内存中,注意dmesg命令和/var/log/dmesg的区别


   free命令


功能说明
free命令用来显示系统内存状态,具体包括系统物理内存、虚拟内存、共享内存和系统缓存。其格式如下:    free [ 选项 ] [ -s (间隔秒数)]

-b    以Byte为单位显示内存使用情况
-m    以MB为单位显示内存使用情况
-K    以kB为单位显示内存使用情况
-s(间隔秒数)    根据指定的间隔秒数持续显示内存使用情况

[root@localhost ~]# free
              total        used        free      shared  buff/cache   available
Mem:         995924      316608      437952        7812      241364      493120
Swap:       3145724           0     3145724
[root@localhost ~]# 

解读:
total:表示系统中总的内存容量,used:表示正在使用的容量,free:表示当前系统中还剩下的容量,share:表示共享内存容量,在实际的过程中可以直接看最后的一个参数:available :可用的容量


 ps命令


功能说明
ps命令显示系统进程在瞬间的运行动态,其格式如下:ps [选项]


ps的选项非常之多,这里我们仅仅介绍常用的选项
-a    显示所有用户的进程,包含每个程序的完整路径
-x    显示所有系统程序,包括那些没有终端的程序
-u    显示使用者的名称和起始时间
-f    详细显示程序执行的路径
-e    将除内核进程以外所有进程的信息写到标准输出

常用组合:
ps -ef、ps –aux
 

[root@localhost ~]# ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.1  0.6 193556  6528 ?        Ss   10:32   0:04 /usr/lib/systemd/systemd --switched-root --system --
root          2  0.0  0.0      0     0 ?        S    10:32   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    10:32   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   10:32   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    10:32   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    10:32   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    10:32   0:00 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S<   10:32   0:00 [lru-add-drain]
root         11  0.0  0.0      0     0 ?        S    10:32   0:00 [watchdog/0]

详解:
    USER:表示运行该进程的用户名
    PID:表示该进程的进程id号,可以用来对该进程的控制操作
    %CPU : 占用的 CPU 使用率
    %MEM: 占用的 内存 使用率
    VSZ:占用的虚拟内存大小
    RSS :占用的内存大小
    TTY: 终端的次要装置号码;?表示后台任务,不占用终端
    STAT : 进程状态
    ================进程状态===========================
    D     无法中断的休眠状态(通常 IO 的进程); 
    R     正在运行,在可中断队列中; 
    S     处于休眠状态,静止状态;
    T     停止或被追踪,暂停执行; 
    W     进入内存交换(从内核2.6开始无效); 
    X     死掉的进程; 
    Z     僵尸进程不存在但暂时无法消除;
    W:    没有足够的记忆体分页可分配
    WCHAN 正在等待的进程资源;
    <:    高优先级进程
    N:    低优先序进程
    L:    有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O),即,有些页被锁进内存    
    s     进程的领导者(在它之下有子进程); 
    l     多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads); 
    + 位于后台的进程组;
    ===================================================
    START:启动该进程的时间
    TIME:进程消耗CPU的时间
    COMMAND:该进程的命令名称和参数


   
  top命令


       top命令提供了实时的对系统处理器状态的监控,它能够实时显示系统中各个进程的资源占用状况。该命令可以按照对CPU的使用、内存使用和执行时间对系统任务进程进行排序显示,同时top命令还可以通过交互式命令进行设定显示。
功能说明
查看即时活跃的进程,类似于Windows的任务管理器。
top的输出可以分为统计信息区和进程信息区两个部分,即前5行显示为统计信息区,下面为进程信息区。

top - 11:31:27 up 59 min,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 125 total,   1 running, 124 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  0.1 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   995924 total,   424536 free,   316164 used,   255224 buff/cache
KiB Swap:  3145724 total,  3145724 free,        0 used.   489424 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                         
  6166 root      20   0  301044   6496   5124 S   0.3  0.7   0:12.52 vmtoolsd                                        
     1 root      20   0  193556   6528   4140 S   0.0  0.7   0:04.25 systemd                                         
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.02 kthreadd                                        
     3 root      20   0       0      0      0 S   0.0  0.0   0:00.06 ksoftirqd/0                                     
     5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                    
     7 root      rt   0       0      0      0 S   0.0  0.0   0:00.12 migration/0                                     
     8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh       



pwd命令


    功能说明:显示当前的工作目录,执行pwd指令可立刻得知目前所在的工作目录的绝对路径名称

cd命令


改变当前工作目录,其用法与Windows下的cd类似。具体的语法格式如下:cd  [目录名]


cd  [目录]    切换到有目录名指定的目录下,注意Linux下文件和目录是区分大小写的
cd 或者cd ~    返回当前用户的默认工作目录,注意cd与“~”之间有一个空格
cd ~[用户名]    返回指定用户的工作目录下,注意这里“~”和用户名之间没有空格
cd ..或者cd ../    返回到上级工作目录下
cd  /    返回到根目录下

 date命令


显示或者修改系统时间与日期。只有超级用户才能用date命令设置时间,一般用户只能用date命令显示时间。

date命令的语法如下:date [选项] 显示时间格式 (以+开头,后面接时间格式)
举例:

显示两天前的时间。
[root@localhost ~]# date  '+%Y-%m-%d'
2022-10-09
[root@localhost ~]#  date -d "2 days ago" +%Y-%m-%d
2022-10-07


 

 uname命令


uname命令用来显示操作系统相关信息

 uptime命令

uptime命令用来输出系统任务队列信息

  last命令

列出目前与过去登入系统的用户相关信息。当执行last指令时,它会默认读取位于/var/log目录下名称为wtmp的文件,并把该给文件记录的登入系统的用户名单全部显示出来。

 二、用户管理命令

 useradd命令

用来创建用户账号或更新用户账号;格式:注意:该命令与adduser命令用法相同,看使用者习惯

  • useradd [-c comment] [-d home_dir]   [-e expire_date] [-f inactive_time]  [-g initial_group] [-G group[,...]]  [-m [-k skeleton_dir]] [-o] [-p passwd]  [-s shell ]  [-u uid ] login
  • useradd -D [-g default_group] [-b default_home]  [-e default_expire_date] [-f default_inactive]   [-s default_shell]

主要参数详解:

-c:加上备注文字,备注文字保存在passwd的备注栏中。 
-d:指定用户登入时的启始目录。
-D:变更预设值。
-e:指定账号的有效期限,缺省表示永久有效。
-f:指定在密码过期后多少天即关闭该账号。
-g:指定用户所属的起始群组。
-G:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-r:建立系统账号。
-s:指定用户登入后所使用的shell。
-u:指定用户ID号。

     当 不 加 -D 参 数 , useradd 指 令 使 用 命 令 列 来 指 定 新 帐 号 的 设 定 值 and 使 用 系 统 上 的 预 设 值 . 新 使 用 者 帐 号 将 产 生 一 些 系 统 档 案 , 使 用 者 目 录 建 立 , 拷 备 起 始 档 案 等 , 这 些 均 可 以 利 用 命 令列 选 项 指 定

usermod命令

用来修 改 使 用 者 帐 号;格式:

usermod [-c comment] [-d home_dir [-m]] [-e expire_date] [-f inactive_time] [-g initial_group] [-G group [,...]]  [-l login_name] [-p passwd] [-s shell] [-u uid [-o]] [-L|-U] login

主要参数详解

-c, --comment
    添加备信息
-d, --home HOME_DIR
    用户的新主目录  (如 果 给 定 -m 选 项 , 使 用 者 旧 目 录 会 搬 到 新 的 目 录 去 ,如 旧 目 录 不 存 在 则 建 个 新 的 。
-e, --expiredate EXPIRE_DATE
    设定帐户过期的日期
-f, --inactive INACTIVE
    过期 INACTIVE 天数后,设定密码为失效状态
-g, --gid GROUP
    强制使用 GROUP 为新主组
-G, --groups GROUPS
    新的附加组列表 GROUPS
-a, --append GROUP
    将用户追加至上边 -G 中提到的附加组中,并不从其它组中删除此用户
-h, --help
    显示此帮助信息并推出
-l, --login LOGIN
    新的登录名称
-L, --lock
    锁定用户帐号
-m, --move-home
    将家目录内容移至新位置 (仅于 -d 一起使用)
-o, --non-unique
    允许使用重复的(非唯一的) UID
-p, --password PASSWORD
    将加密过的密码 (PASSWORD) 设为新密码
-s, --shell SHELL
    该用户帐号的新登录 shell
-u, --uid UID
      用户帐号的新 UID
-U, --unlock
    解锁用户帐号
-Z, --selinux-user  SEUSER      用户账户的新 SELinux 用户映射  该选项不常用

注意:usermod 不 允 许 你 改 变 正 在线 上 的 使 用 者 帐 号 名 称 。 当 usermod 用 来 改 变 user ID, 必 须 确 认 这 名 user 没 在 电 脑 上 执 行 任 何 程 序。

userdel命令

删 除 使 用 者 帐 号 及 相 关 档 案

格式:userdel -r  用户账户

-r     使 用 者 目 录 下 的 档 案 一 并 移 除 。 在 其 他 位 置 上 的 档 案 也 将 一 一 找 出 并 删 除 。

注意:userdel 不 允 许 你 移 除 正 在线 上 的 使 用 者 帐 号 。 你 必 须 砍 掉 此 帐 号 现 在 在 系 统 上 执 行 的 程 序 才 能 进 行 帐 号 删 除 。

groupadd命令

 该命令主要用来建 立 新 群 组 ;groupadd 可 指 定 群 组 名 称 来 建 立 新 的 群 组 帐 号 。 需 要 时 可 从 系 统 中 取 得 新 群 组 值 。

groupadd 有 下 列 选 项 可 用 。 
-g gidID 值 。 除 非 使 用 -o 参 数 不 然 该 值 必 须 是 唯 一 , 不 可 相 同 。 数 值 不 可 为 负 。 预 设 为 最 小 不 得 小 于 500 而 逐 次 增 加 。 0~499 传 统 上 是 保 留 给 系 统 帐 号 使 用 。 
-r  此 参 数 是 用 来 建 立 系 统 帐 号 。 它 会 自 动 帮 你 选 定 一 个 小 于 499 的 gid 除 非 命令行 再 加 上 -g 参 数 。 
-f   这是force标志。使得新 增 一 个 已 经 存 在 的 群 组 帐 号时 , 系 统 会 出 现 错 误 讯 息 然 后 结 束 groupadd 。 如 果 是 这 样 的 情 况 , 不 会 改变 这 个 群 组 ( 或 再 新 增 一 次 ) 也 可 同 时 加 上 -g 选 项 当 你 加 上 一 个 gid , 此 时 gid 就 不 用 是 唯 一 值 , 可 不 加 -o 参 数 , 建 好 群 组 后 会 显 结 果. (该操作谨慎使用)

groupdel 命令

删除某个用户组账号,前提是需要删除的群组必须是存在的,不然会报错!

格式:groupdel   群组名

groupmod命令

修 改 群 组;格式:groupmod [-g gid [-o]] [-n group_name ] group 

选项含义:

-g gid    群 组 I D 值 。 必 须 为 唯 一 的 ID 值 , 除 非 用 -o 选 项 。 数 字 不 可 为 负 值。预 设 为 最 小 不 得 小 于 99 而 逐 次 增 加 。 0~99 传 统 上 是 保 留 给 系 统 帐 号 使 用;如 果 有 档 案 使 用 旧 的 群 组 ID , 而 这 时 候 你 新 增 的 群 组 ID 恰 好 与 旧 的 相 同 , 这 样 的 话 你 要 手 动 改 一 下 这 些 档 案 的 群 组 ID 。 
-n group_name     更 改 群 组 名 。 


 who/w 命令


who命令显示目前登录到系统的用户;w显示已经登录的用户以及他们在做什么 

三、网络维护命令

ifconfig命令

ifconfig命令用来配置网络或显示当前网络接口状态。类似于Windows下的ipconfig命令,同时ifconfig命令必须以root用户来执行

其格式如下: ifconfig  [选项] [interface] [inet|up|down|netmask|addr|broadcast]

在网卡ens33上配置两个IP地址,分别为192.168.110.136、192.168.110.138,子网掩码为255.255.255.0,使用以下命令:
 [root@centos7 ~]# ifconfig ens33 192.168.110.136 netmask 255.255.255.0 
 [root@centos7 ~]# ifconfig ens33:0 192.168.66.138 netmask 255.255.255.0 

修改网卡的MAC地址为新的MAC地址,使用以下命令:
 [root@centos7 ~]#ifconfig ens33 hw ether xx:xx:xx:xx:xx:xx 
将网卡ens33禁用后再启用,使用以下命令:
 [root@centos7 ~]# ifconfig ens33 down [root@centos7 ~]# ifconfig ens33 up

ip命令

设置IP地址,可以使用下列ip命令

设置IP地址,可以使用下列ip命令:
[root@localhost ~]# ip addr add 192.168.110.193/24 dev ens33
查看IP地址:
[root@localhost ~]#ip addr show ens33
删除IP地址,只需用del代替add
[root@localhost ~]#ip addr del 192.168.100.193/24 dev ens33
列出路由表条目
[root@localhost ~]#ip route show
查看路由包来自的接口
[root@localhost ~]#ip route get 172.16.213.51
激活网络接口
[root@localhost ~]# ip link set eth0 up
停止网络接口
[root@localhost ~]# ip link set eth0 down
监控netlink消息
[root@localhost ~]# ip monitor all
显示网络统计信息
[root@localhost ~]# ip -s link
设置默认网关
[root@localhost ~]# ip route add default via 192.168.1.254

SCP命令

 scp就是secure copy,用于将文件或者目录从一个Linux系统拷贝到另一个Linux系统下。scp传输数据用的是SSH协议,保证了数据传输的安全。

其格式如下: scp  远程用户名@ip地址:文件的绝对路径 本地Linux系统路径

                       scp  本地Linux系统文件路径 远程用户名@ip地址:远程系统文件绝对路径名

举例:

[root@centos7 ~]#scp /home/ixdba/etc.tar.gz root@192.168.110.168:/tmp 
[root@centos7 ~]#scp root@192.168.110.133:/home/ixdba/etc.tar.gz  /tmp 
[root@centos7 ~]#scp –r  /etc  root@192.168.110.135:/opt

traceroute命令

 traceroute命令用来显示网络数据包传输到指定主机的路径信息,追踪数据传输路由状况。预设数据包大小是38Bytes,用户可另行设置。它与Windows下的tracert命令类似,

其格式如下: traceroute [选项] [远程主机名或者IP地址] [数据包大小]

-i <网络接口>    使用指定的网络接口发送数据包

-w<超时秒数>    设置等待远程主机回应的时间

-s<来源ip>    设置本地主机发送数据包的IP地址

[root@localhost ~]# traceroute -i eth0  -s 192.168.110.251 -w 10 www.baidu.com 100 traceroute是利用ICMP连接的,有些网络设备(比如防火墙)可能会屏蔽ICMP通过的权限,因此也会出现节点没有回应的状态,如果在指定的时间内(这里我们设置的是10秒),traceroute检测不到某个路由节点的回应信息,就在屏幕输出“*”,表示此节点无法通过。

 MTR命令

 mtr是 Linux中有一个非常棒的网络连通性判断工具,它结合了ping, traceroute,nslookup 的相关特性.

Loss%列就是对应IP行的丢包率了,值得一提的是,只有最后的目标丢包才算是真正的丢包 Last列则是最后一次返回的延迟,按毫秒计算的

Avg列是所有返回时延的一个平均值

Best列是最快的一次返回时延

Wrst列是最长的一次返回时延

StDev列是标准偏差。

wget命令

wget命令用来从网络上下载某个软件,这个命令对于能够连接到互联网的Linux系统作用非常大,可以直接从网络下载需要的软件。

其格式如下: wget [要下载软件的网址]

举例:

wget -c断点续传 
使用wget -c重新启动下载中断的文件: wget -c https://mirrors.aliyun.com/repo/Centos-7.repo
使用wget -O下载并以不同的文件名保存 wget -O yum.zip https://mirrors.aliyun.com/repo/Centos-7.repo
使用wget –limit -rate限速下载 当执行wget的时候,默认会占用全部可能的宽带下载。当需要准备下载一个大文件,就有必要限速了。 
wget –limit-rate=300k https://mirrors.aliyun.com/repo/Centos-7.repo
使用wget -b后台下载 对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载。 
wget -b https://mirrors.aliyun.com/repo/Centos-7.repo

telnet命令

 telnet命令通过telnet协议与远程的主机通信或者获取远程主机对应端口的信息。与Windows下的telnet完成相同的功能。

其格式如下: telnet  主机名或者IP地址 端口

举例:

查看某台Linux系统的22和80端口是否打开以及分别开启了什么服务,使用以下命令: 
[root@localhost ~]# telnet 192.168.110.88 
[root@localhost ~]# telnet 192.168.110.88 22 
[root@localhost ~]# telnet www.sjyh.com 80 
查看某台Linux系统的22和80端口是否打开以及分别开启了什么服务,使用以下命令: 
[root@localhost ~]# telnet 192.168.110.88 22 
Trying 192.168.60.88... 
Connected to 192.168.60.88. 
Escape character is '^]'. SSH-2.0-OpenSSH_6.6.1 
从这里可以看出,在“192.168.60.88”的22端口运行着SSH服务,对应的SSH版本为SSH-2.0-OpenSSH_6.6.1。

netstat命令

netstat命令用来显示本机网络连接、运行端口和路由表等信息。

-a    显示本机所有连接和监听端口

-n    以网络IP地址的形式显示当前建立的有效连接和端口

-r    显示路由表信息

-s    显示按协议的统计信息。默认地,将显示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP和UDPv6的统计信息

-v    显示当前的有效连接,与“-n”选项类似

-t    显示所有的TCP协议连接情况

-u    显示所有的UDP协议连接情况

-i    显示自动配置接口的状态

-l    仅显示连接状态为“LISTEN”的服务的网络状态

-p    显示连接对应的PID与Program name。

常见应用组合: netstat -antlp、netstat -i、netstat -r 

四、磁盘管理命令

df命令

 功能说明 df命令用来检查Linux系统的磁盘空间占用情况。其格式如下: df [选项]

选项含义

-h    以容易理解的格式输出文件系统分区占用情况,例如32kB、120MB、60GB

-k    以kB大小为单位输出文件系统分区占用情况

-m    以MB大小为单位输出文件系统分区占用情况

-i    列出文件系统分区的inodes信息 -T    显示磁盘分区的文件系统类型

常用组合 df -h 、df  -i、  df -T    //大家可以根据自己的需要进行匹配

[root@localhost ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda2       9.8G  3.9G  5.4G   42% /
devtmpfs        476M     0  476M    0% /dev
tmpfs           487M     0  487M    0% /dev/shm
tmpfs           487M  7.6M  479M    2% /run
tmpfs           487M     0  487M    0% /sys/fs/cgroup
/dev/sda5       2.0G   33M  2.0G    2% /home
/dev/sda6       3.0G   33M  3.0G    2% /data
/dev/sda1       2.0G  128M  1.9G    7% /boot
tmpfs            98M     0   98M    0% /run/user/0
[root@localhost ~]# df -i
文件系统         Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sda2       655360   90056  565304      14% /
devtmpfs        121702     399  121303       1% /dev
tmpfs           124490       1  124489       1% /dev/shm
tmpfs           124490     730  123760       1% /run
tmpfs           124490      16  124474       1% /sys/fs/cgroup
/dev/sda5      1048576      11 1048565       1% /home
/dev/sda6      1571328       3 1571325       1% /data
/dev/sda1      1048576     326 1048250       1% /boot
tmpfs           124490       1  124489       1% /run/user/0
[root@localhost ~]# df -T
文件系统       类型        1K-块    已用    可用 已用% 挂载点
/dev/sda2      ext3     10190136 4050880 5614968   42% /
devtmpfs       devtmpfs   486808       0  486808    0% /dev
tmpfs          tmpfs      497960       0  497960    0% /dev/shm
tmpfs          tmpfs      497960    7780  490180    2% /run
tmpfs          tmpfs      497960       0  497960    0% /sys/fs/cgroup
/dev/sda5      xfs       2086912   33048 2053864    2% /home
/dev/sda6      xfs       3132416   32992 3099424    2% /data
/dev/sda1      xfs       2086912  130180 1956732    7% /boot
tmpfs          tmpfs       99596       0   99596    0% /run/user/0

du命令

 du命令用来显示文件或目录所占用的磁盘空间情况。其格式如下: du [选项] 文件或目录

-sh    以人性化的格式显示文件或者目录大小,例如300MB、1.2GB等

-ks    以MB为单位显示文件或者目录大小

常用命令组合

du -sh /usr/*        

du -ks ./*|sort -n     //排序的方式列出

[root@localhost ~]# du -sh /usr/*
340M    /usr/bin
4.0K    /usr/etc
4.0K    /usr/games
28M     /usr/include
471M    /usr/lib
443M    /usr/lib64
78M     /usr/libexec
933M    /usr/local
446M    /usr/sbin
385M    /usr/share
74M     /usr/src
0       /usr/tmp
[root@localhost ~]# du -sh /usr/* |sort -n
0       /usr/tmp
4.0K    /usr/etc
4.0K    /usr/games
28M     /usr/include
74M     /usr/src
78M     /usr/libexec
340M    /usr/bin
385M    /usr/share
443M    /usr/lib64
446M    /usr/sbin
471M    /usr/lib
933M    /usr/local

fsck命令

用来检查文件系统并尝试修复错误。其格式如下: fsck  [-t <文件系统类型>] [设备名]

-t <文件系统类型>”是指定要检查的文件系统类型。一般情况下可不添加此选项。 注意:在执行fsck命令修复某个文件系统时,这个文件系统对应的磁盘分区一定要处于卸载状态,磁盘分区在挂载状态下进行修复是极为不安全的,数据可能遭到破坏,也有可能损坏磁盘。

使用方法: [root@localhost /]# fsck -y /dev/sda10

添加-y选项后,如果出现需要手动确认修复的,将自动输入yes进行修复。文件系统结构遭到破坏时,推荐使用y选项,让命令自动修复.

mount/umount命令

挂载以及卸载指定的文件系统。

格式:mount [选项] [-L<标签>] [-o<选项>] [-t<文件系统类型>] [设备名] [挂载点]

格式:umount [ 挂载点 ]            //卸载文件系统命令

选项:

-r    以只读方式加载设备

-w    以可读写模式加载设备,属于mount默认设置

-a    加载文件/etc/fstab中指定的所有设备

-L<标签>:标签其实就是磁盘分区标识的别名,标签可以随便起名,这样便于记忆,在Linux下磁盘分区的设备名比较难记,利用标签代替设备名,简单易记。

-o<选项>:指定加载文件系统时的选项,

ro:以只读模式加载。

rw:以可读写模式加载。

-t<文件系统类型>:指定设备的文件系统类型,常见文件系统类型有xfs/ext4/ext3/ext2/vfat/nfs等。

设备名:硬盘分区在Linux上的设备标识,类似于/dev/sda1、/dev/hda2等。

挂载点:Linux系统下指定的某个目录。  即在挂载文件系统时我们先需要创建挂载点目录进行挂载

举例:

mount -t ext4 /dev/sdb6  /data1 


五、权限与访问控制命令

chmod命令

改变文件的访问权限 ,格式:chmod [who] [+ | - | =] [mode] 文件名

使用chmod命令改变指定文件访问权限有两种方式:

一种是用符号标记所进行更改

--u 文件的所有者

--g 与文件所有者同组的用户

--o 其他组的用户

--a  所有用户

-- 操作符'+'使得用户选择的权限被追加到每个指定文件,(操作给指定文件添加所选权限)

-- 操作符'-'使得这些权限被撤消

-- 操作符'='使得指定文件只具有这些权限。 

举例:

chmod a+r  file1    给文件file1所有人都可以读的权限

另一种方式是采用8进制数指定新的访问权限。在实际过程中,通常使用该方法来赋予文件权限

数字模式是一到4个八进制数,每个数由位权为4,2,1的3位叠加而得. 被省略掉的数字缺省设置为零.

第一位为4时为suid,2时为sgid,1时为粘滞位,.

第二位设置文件所有者的权限:可读(4),可写(2),可执行(1);

第三位设置了文件所在组其他用户的权限,值如上;

第四位设置了其他组的用户的权限,值同上. 
举例:

chmod 774  file1        // 给文件file1赋上属主、属组读写执行的权限,其它人读和执行的权限

注意:如果是目标文件是目录的话需要加上-R表示递归赋予该目录下的所有文件的权限 

chown命令

修改文件所有者和组别 
格式:chown [选项]... [所有者][:[组]] 文件...
chown 修改每个由第一个非选项参数声明的给定 file(文件) 的用户和/或组的所有权.如下: 如果只给出了用户名(或者数字用户标识),那么该用户即成为每个指定文件的所有者,而该文件的组别并不改变.如果用户名后面紧跟着冒号和组名(或者是数字组标识),并且它们之间没有空格,那么文件的组所有权也随之改变. 

主要参数:
-R 递归地修改目录及其下面内容的所有权. 
-c, --changes 详尽地描述每个 file 实际改变了哪些所有权. 
-f, --silent, --quiet 不打印文件所有权不能修改的报错信息. 
-h, --no-dereference 只作用于其本身的符号链接,而不修改它们所指向的文件. 这只在提供了 lchown 系统调用的情况下才可用. 
-v, --verbose 详尽地描述对每个 file 所执行的操作(或者无操作). 
-R, --recursive 递归地修改目录及其下面内容的所有权. 
--dereference 修改符号链接目标端的所有权,而非符号链接自身. (fileutils 4.0中实现的新功能.) 
--reference=rfile (fileutils 4.0中实现的新功能.) 修改 file 的所有权为 rfile 的所有权. 

举例:

chown -R  user1:user1  test          //递归将test目录下的文件属主和属组修改成user1

chown -R  user1 test                     //递归将test目录下的文件属主修改成user1

chown -R  :user1 test                     //递归将test目录下的文件属组修改成user1

chattr命令

修改文件在Linux第二扩展文件系统(E2fs)上的特有属性 
符号模式有+-=几种格式. 

--  `+'用来在文件已有属性的基础上增加选定的属性;

--  `-'用来去掉文件上的选定的属性;

--  `='用来指定该文件的唯一属性. 

选项:
-R 递归地修改目录以及其下内容的属性. 如果在递归目录时遇到了符号链接,遍历将跳过. 
-V 详尽地给出chattr的输出信息并打印出程序的版本. 
-v version 设置文件系统的版本. 

详解:注意:设置了以下的权限,连root用户都无法改变,如果需要改变则需要先取消相应的权限才能操作(查看可以用lsattr命令)
-- 当修改设置了'A'属性的文件时,它的atime记录不会改变. 这可以在笔记本电脑系统中避免某些磁盘I/O处理. 
-- 设置了`a'属性的文件只能在添加模式下打开用于写入. 只有超级用户可以设置或清除该属性. 

-- 设置了`c'属性的文件在磁盘上由内核自动进行压缩处理. 从该文件读取时返回的是未压缩的数据. 对该文件的一次写入会在保存它们到磁盘之前进行数据压缩. 

-- 设置了`d'属性的文件不能对其运行 dump(8) 程序进行备份. 

-- 设置了`i'属性的文件不能进行修改:你既不能删除它, 也不能给它重新命名,你不能对该文件创建链接, 而且也不能对该文件写入任何数据. 只有超级用户可以设置或清除该属性. 

-- 当删除设置了`s'属性的文件时,将对其数据块清零并写回到磁盘上. 

-- 当修改设置了`S'属性的文件时, 修改会同步写入到磁盘上;这与应用到文件子系统上的`sync'挂载选项有相同的效果. 

-- 当删除设置了`u'属性的文件时, 将会保存其内容. 这使得用户可以请求恢复被删除的文件. 

举例:

lsattr命令

显示文件在Linux第二扩展文件系统上的特有属性 ;格式:lsattr [ -RVadv ] [ files... ] 

-R 递归地列出目录以及其下内容的属性. 
-V 显示程序版本. 
-a 列出目录中的所有文件,包括以`.'开头的文件的属性. 
-d 以列出其它文件的方式那样列出目录的属性, 而不列出其下的内容. 
-v 显示文件版本. 

getfacl命令

获取文件访问控制列表
格式: getfacl  [-aceEsRLPtpndvh]  文件 ...
  -a,  --access           仅显示文件访问控制列表
  -d, --default           仅显示默认的访问控制列表
  -c, --omit-header     不显示注释表头
  -e, --all-effective     显示所有的有效权限
  -E, --no-effective      显示无效权限
  -s, --skip-base         跳过只有基条目(base entries)的文件
  -R, --recursive         递归显示子目录
  -L, --logical           逻辑遍历(跟随符号链接)
  -P, --physical          物理遍历(不跟随符号链接)
  -t, --tabular           使用制表符分隔的输出格式
  -n, --numeric           显示数字的用户/组标识
  -p, --absolute-names    不去除路径前的 '/' 符号
  -v, --version           显示版本并退出
  -h, --help              显示本帮助信息

setfacl命令

设定文件访问控制列表
格式: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...

  -m, --modify=acl 更改文件的访问控制列表
  -M, --modify-file=file 从文件读取访问控制列表条目更改
  -x, --remove=acl 根据文件中访问控制列表移除条目
  -X, --remove-file=file 从文件读取访问控制列表条目并删除
  -b, --remove-all 删除所有扩展访问控制列表条目
  -k, --remove-default 移除默认访问控制列表
      --set=acl 设定替换当前的文件访问控制列表
      --set-file=file 从文件中读取访问控制列表条目设定
      --mask 重新计算有效权限掩码
  -n, --no-mask 不重新计算有效权限掩码
  -d, --default 应用到默认访问控制列表的操作
  -R, --recursive 递归操作子目录
  -L, --logical 依照系统逻辑,跟随符号链接
  -P, --physical 依照自然逻辑,不跟随符号链接
      --restore=file 恢复访问控制列表,和“getfacl -R”作用相反
      --test 测试模式,并不真正修改访问控制列表属性
  -v, --version           显示版本并退出
  -h, --help              显示本帮助信息

六、文件管理命令


  rm命令


功能说明:
rm命令用来删除某个目录及其下的所有文件及子目录。注意:对于链接文件而言,只是断开了链接,原文件保持不变。其格式如下:rm [选项] 文件或者目录

-r    告诉rm将选项中列出的全部目录以及子目录还有文件均递归地删除,如果在选项中不指定“-r”选项,“rm”命令将不能删除目录:需要使用rmdir命令,但该命令不能删除空目录
-f    忽略不存在的问题,也不给出提示;即强制输出,需谨慎使用
-i    交互式删除,即在删除前进行确认
注意:使用rm命令要特别小心,“rm –rf”组合要甚用,因为一旦文件被删除,就不能被恢复。

Linux没有类似于Windows的回收站。因此,为了防止文件或者目录被误删除,可以使用rm的“-i”选项,来逐个确认要删除的文件。使用“-i”选项时,如果用户输入“y”,文件将被删除;如果输入其他任何信息,文件则不被删除。

删除数据前,一定要备份数据,以免误删除。

ln命令

功能说明:
ln命令用来在文件或目录之间创建链接。
Linux下的链接有两种,一种是硬链接(Hard Link),一种是符号链接(Symbolic Link),默认情况下ln命令产生的是硬链接。

 硬链接:是指通过文件的索引节点来进行链接。
 符号链接:也叫软链接,软链接类似于Windows中的快捷方式,因此软链接是一个指向真正的文件或者目录位置的符号连接。

ln命令的格式如下:
ln [选项]   源文件      目标链接名
-s    进行软链接(Symbolic Link)

举例:
 

[root@mylinux ~]#ln  /etc/hosts  /opt/backup
[root@mylinux ~]# ln -s /etc/inittab  /opt

 cp命令

功能说明:
cp命令用来将给出的文件或者目录拷贝到另一个文件或者目录中。cp与Windows下的copy命令类似,但是cp命令更加强大。其格式如下:cp [选项] 源文件或目录 目标文件或目录

-a    在拷贝目录时使用。它保留所有的信息,包含文件链接、文件属性,并递归地拷贝目录
-r    若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名
-p    保留文件的修改时间和存取权限
-i    如果已经有相同文件名的目标文件,则提示用户是否覆盖,注意:在实际过程中需要注意覆盖的问题

[root@mylinux~]# cp –r  ./*  /tmp
[root@mylinux~]# \cp –r  /home/iivey/*  /opt/linux

 find命令

功能说明
find命令用来在指定的路径下查找指定的文件。其格式如下:
find path-name  [ -options]  [-print –exec  -ok 命令 {}  \; ]
具体的选项说明如下。


path-name:find命令查找的目录路径,例如可以用“.”表示当前目录,用“/”表示系统根目录。
-options:find命令的这个选项主要用来控制搜索的方式。
-print:将搜索结果输出到标准输出。
 -exec:对搜索出符合条件的文件执行所给出的Linux命令,而不询问用户是否需要执行该命令。{}表示shell命令的选项即为所查找到的文件。命令的末尾必须以“;”结束。
注意:格式要正确,“-exec 命令 {} \;”,在}和\之间一定要有空格才行。
 -ok:对搜索出符合条件的文件执行所给出的Linux命令。与-exec不同的是,它会询问用户是否需要执行该命令。
举例:

查找系统中所有大小为0的普通文件,并列出它们的完整路径。
find / -type f -size 0 -exec  ls -al {} \;

查找系统/var/logs目录中修改时间在7天以前的普通文件,然后以交互方式删除。
find /var/log -type f -mtime  +7 -ok  rm {} \;

在系统根目录下,查找文件类型为普通文件,属于ixdba用户的,并且查找时不包含/usr/bin目录的文件名为iptables.sh的文件,并将结果输出到屏幕。
find / -path "/usr/bin" -prune -o -name "iptables.sh"  -user ixdba -type f -print

在系统根目录下查找不在/var/log和/usr/bin目录下的文件名为main.c的文件。
find /  \( -path /var/log -o -path /usr/bin \) -prune -o -name “main.c” -print 

file与stat命令


file命令用来显示文件的类型。对于长度为0的文件,将识别为空文件;对于符号连接文件,缺省情况下将显示符号连接引用的真实文件路径。
举例:

显示/bin/sh文件类型,显示结果为符号链接文件
[root@WEBServer bin]# file /bin/sh
/bin/sh: symbolic link to `bash'

显示/opt/file1.txt文件类型,显示结果为ASCII文本文件。
[root@WEBServer opt]# file file1.txt 
file1.txt: ASCII text

显示/dev/sda1文件类型,显示结果为块设备文件。
[root@localhost ~]# file /dev/sda1
/dev/sda1: block special (8/1)

更详细的查看文件状态信息:
[root@localhost ~]# stat iptables.sh 

grep命令

grep命令是Linux下的文本过滤工具,grep根据指定的字符串,对文件的每一行进行搜索,如果找到了这个字符串,就输出该行的内容。其格式如下:
grep [选项] 需要查找的字符串 文件名
grep命令的选项有很多,这里列出最常使用的选项说明:

-c    只显示符合条件的行数,而不是显示被匹配到的内容。
-i    搜索时忽略大小写
-n    在显示的搜索结果上显示行号
-E        支持扩展的正则表达式
-w    被匹配的文本只能是单词,而不能是单词中的某一部分。
-v :    反过来(invert),只打印没有匹配的,而匹配的反而不打印。

举例:

[root@localhost ~]# grep -ni network anaconda-ks.cfg

    grep命令 
    grep家族总共有三个:grep,egrep,fgrep。
     grep:标准grep命令,支持基本正则表达式
     egrep:扩展grep命令,支持基本和扩展正则表达式,等价于grep –E    
     fgrep:快速grep命令,不支持正则表达式,按照字符串的字面意思进行匹配,等价于grep –F

diff命令

diff命令用来比较文件的差异。diff以逐行的方式比较文本文件的异同,其格式如下:
diff [选项]  文件1  文件2

上面的命令执行后,会将比较后的不同之处以指定的形式列出,如下所示:
n1 a n3,n4  
n1,n2 d n3  
n1,n2 c n3,n4 
    其中,字母"a"、"d"、"c"分别表示添加、删除及修改操作。而"n1"、"n2"表示在文件1中的行号,"n3"、"n4"表示在文件2中的行号。
    在输出形式中,每一行后面将跟随受到影响的若干行。其中,以<开始的行属于文件1,以>开始的行属于文件2。

mv命令

mv命令用来将文件或目录改名或将文件由一个目录移入另一个目录中。如果源类型和目标类型都是文件或者目录时,mv将进行目录重命名。如果源类型为文件,而目标类型为目录时,mv将进行文件的移动。如果源类型为目录,则目标类型只能是目录,不能是文件,此时完成目录重命名

其格式如下:mv [选项] 源文件或目录  目标文件或目录

mv命令的选项及其说明:
-i    交互式操作,对已经存在的文件或目录覆盖时,系统会询问是否覆盖,用户输入“y”进行覆盖,输入“n”则不覆盖
-f    force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-b    若需覆盖文件,则覆盖前先行备份。

more命令


如果一个文本文件比较长,一屏无法显示完毕,就需要使用more命令。more命令读取文本文件时,每次一屏显示,并且在每屏后暂停,同时在屏幕底部显示单词“More”。如果此时按“Enter”键,more命令就会接着再显示文本的一行,依此类推;如果按空格键,more命令就继续显示文本文件的另一屏信息。其格式如下:
more [选项] 文件名

cat命令


cat命令用来将文件的内容打印到标准输出,类似于DOS下的type命令,同时cat还可以用于连接合并文件。其格式如下:     cat [选项] 文件名
举例:

cat 文件1  文件2 > 文件3                 //把文件1、文件2合并到文件3

touch命令


touch命令用来改变指定文件的访问时间和修改时间,若指定文件不存在则创建此文件。如果没有指定时间,则使用当前时间。其格式如下:
touch [选项] 设定的时间 文件

七、压缩与解压命令

zip/unzip命令

将一般的文件或者目录进行压缩或者解压,默认生成以“.zip”为后缀的压缩包。zip命令类似于Windows中的winzip压缩程序。

其格式如下: zip [选项] 压缩文件名 需要压缩的文档列表

unzip [选项] 压缩文件名

-r        递归压缩,将指定目录下的所有文件以及子目录全部压缩

-d        从压缩文件内删除指定的文件

-x   “文件列表”    压缩时排除文件列表中指定的文件

-u        更新文件到压缩文件中

gzip/gunzip命令

       将一般的文件进行压缩或者解压。压缩文件预设的扩展名为“.gz”,其实gunzip就是gzip的硬链接,因此无论是压缩或者解压都可以通过gzip来实现。   

 注意:gzip只能对文件进行压缩,不能压缩目录,即使指定压缩的目录,也只能压缩目录内的所有文件。

格式如下: gzip [选项] 压缩(解压缩)的文档名

-d    对压缩的文件进行解压

-t    检查压缩文档的完整性

-l    显示压缩文件的压缩信息,显示字段为压缩文档大小、未压缩文档大小、压缩比和未压缩文档名称

举例:

[root@localhost ~]# gzip etc.log

[root@localhost ~]# gzip -l anaconda-ks.cfg 
         compressed        uncompressed  ratio uncompressed_name
                708                1230  45.2% anaconda-ks.cfg

bzip2/bunzip2命令

对文件进行压缩与解压缩。此命令类似于“gzip/gunzip”命令,只能对文件进行压缩。对于目录只能压缩目录下的所有文件,压缩完成后,在目录下生成以“.bz2”为后缀的压缩包。bunzip2其实是bzip2的符号链接,即软链接,因此压缩解压都可以通过bzip2实现。

其格式如下: bzip2 [选项] 要压缩或解压的文件

-d    执行解压缩,此时选项后面跟要解压缩的文件

-k    bzip2在压缩或解压缩后,会删除原始的文件,若要保留原始文件,可使用此选项

-t    测试“.bz2”压缩文件的完整性

tar命令

tar是Linux下经常使用的归档工具,是对文件或者目录进行打包归档,归成一个文件,但是并不进行压缩。其格式如下: tar [主选项+辅助选项] 文件或者目录

tar命令主选项

-c    创建新的文件

-t    列出档案文件中已经归档的文件列表

-x    从打包的档案文件中还原出文件

-z    调用gzip命令在文件打包的过程中进行压缩/解压文件

-j    调用bzip2命令在文件打包的过程中进行压缩/解压文件

-f    “-f”选项后面紧跟档案文件的存储设备,默认是磁盘,需要指定档案文件名;如果是磁带,只需指定磁带设备名即可。注意,在“-f”选项之后不能再跟任何其他选项,也就是说“-f”必须是tar命令的最后一个选项

-v    指定在创建归档文件过程中,显示各个归档文件的名称

-p    在文件归档的过程中,保持文件的属性不发生变化

--exclude file    在打包过程中,不将指定file文件打包

举例:

常用压缩方法:
[root@localhost ~]#tar -cvf etc.tar /etc
[root@localhost ~]#tar -zcvf  etc.tar.gz /etc
[root@localhost ~]#tar -jcvf  etc.tar.bz2 /etc

查阅上面/opt/etc.tar.gz压缩包的内容:
[root@localhost ~]# tar -ztvf etc.tar.gz
[root@localhost ~]# tar -jtvf etc.tar.bz2

将~/etc.tar.gz解压到/usr/local/src下。
[root@localhost ~]# cd /usr/local/src
[root@localhost ~]# tar -zxvf ~/etc.tar.gz
或者
[root@localhost ~]# tar zxvf ~/etc.tar.gz -C /usr/local/src

将/etc目录下的所有文件打包备份到/opt目录下,并保存每个文件的权限。
[root@dbbackup oracle]#tar -zcvpf   /opt/etc.tar.gz   /etc

在/opt目录下,仅解开/opt/etc.tar.gz压缩文件中的/etc/inittab文件。
[root@dbbackup oracle]# cd /opt
[root@dbbackup opt]#tar -zxvf /opt/etc.tar.gz  etc/inittab
或者
[root@dbbackup opt]#tar -zxvf /opt/etc.tar.gz  -C /opt etc/inittab

将/etc目录打包压缩后直接解压到/opt目录下,而不生成打包的档案文件。
[root@dbbackup oracle]#cd /opt
[root@dbbackup opt]#tar -zcvf - /etc | tar -zxvf  -
或者
[root@dbbackup opt]#tar -zcvf - /etc | tar –zxvf -  -C /opt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流 逝 时 间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值