Linux系统管理和维护常用命令
Linux系统管理和维护常用命令
ls 命令
- 功能说明
ls 命令显示指定工作目录下的内容,列出工作目录所包含的文件及子目录。
语法结构:
ls [选项] [路径或文件]
ls 选项及说明
-a 显示指定目录下的所有文件以及子目录,包含隐藏文件
-d 只显示目录列表,不显示文件
-l 除文件名称外,同时将文件或者子目录的权限,使用者和文件大小等详细信息列出
-s 在每个文件名后输出该文件的大小
-k 以k字节的形式表示文件的大小
-u 以文件上次被访问的时间排序
-t 以时间排序
-o 显示除组外的详细信息
-x 按列输出,横向排序
-r 对目录反向排序
-q 用“?”代替不可输出的字符
-m 横向输出文件名,并以“,”作为分隔符
-S 以文件大小排序
-R 列出所有子目录下的文件
-pF 在每个文件名后附上一个字符以说明该文件的类型。“*”表示可执行的普通文件,“/”表示目录,“@”表示符号链接,“|”表示FIFO,“=”表示套接字(socket)
-C 按列输出,纵向排序
-Q 把输出的文件名用双引号括起来
- 简单示例
列出/home目录下文件及其子目录
[root@cinder01 ~]# ls -l /home/
total 142448
drwxr-xr-x 2 root root 39 Feb 23 2017 files
-rw-r--r-- 1 root root 1486 Feb 23 2017 iperf.sh
drwxr-xr-x 8 root root 4096 Feb 17 2017 jdk
drwx------ 6 jenkins jenkins 145 Sep 12 17:01 jenkins
-rw-r--r-- 1 root root 67025973 Aug 26 2016 op-adapter.war
-rw-r--r-- 1 root root 78829122 Aug 26 2016 op-user.war
drwx------ 2 user001 user001 79 Aug 10 16:18 user001
显示/home/jenkins 下的所有文件以及子目录的详细信息,并显示文件类型标记
[root@cinder01 jenkins]# ls -alF
total 20
drwx------ 6 jenkins jenkins 145 Sep 12 17:01 ./
drwxr-xr-x. 8 root root 4096 Sep 21 10:33 ../
-rw------- 1 jenkins jenkins 187 Jul 20 20:04 .bash_history
-rw-r--r-- 1 jenkins jenkins 18 Dec 7 2016 .bash_logout
-rw-r--r-- 1 jenkins jenkins 193 Dec 7 2016 .bash_profile
-rw-r--r-- 1 jenkins jenkins 231 Dec 7 2016 .bashrc
drwxr-xr-x 3 jenkins jenkins 19 Sep 12 17:01 .groovy/
drwxr-xr-x 2 jenkins jenkins 39 Sep 12 16:52 .oracle_jre_usage/
drwx------ 2 jenkins jenkins 58 Jul 20 17:49 .ssh/
drwxr-xr-x 2 root root 58 Aug 2 10:34 xies03_new/
pwd 命令
- 功能说明
显示当前的工作目录,执行pwd指令可得知目前所在的工作目录的绝对路径名称
语法结构:
pwd
- 简单示例
[root@cinder01 jenkins]# pwd
/home/jenkins
cd 命令
- 功能说明
改变当前工作目录
语法结构:
cd [目录名]
cd 命令的选项及其说明:
cd [目录] 切换到指定目录下
cd 或者 cd ~ 返回用户的默认工作目录下
cd ~[用户名] 返回指定用户的工作目录下
cd .. 或者 cd../ 返回到上级工作目录下
cd / 返回到根目录下
- 简单示例
切换到/usr/bin目录下
[root@cinder01 ~]# cd /usr/bin/
[root@cinder01 bin]# pwd
/usr/bin
返回到上级目录
[root@cinder01 bin]# cd ..
[root@cinder01 usr]# pwd
/usr
date 命令
- 功能说明
显示或者修改当前的系统时间和日期(root用户才能使用date修改设置系统时间)
语法结构:
date [选项] 显示时间格式(以+开头,后面接时间格式)
date 命令的选项及其说明
-s --set: 设置系统时间
-d --date: 显示描述的日期
时间显示格式:
%H 显示小时,表示格式范围00~23
%I 显示小时,表示格式范围00~12
%k 显示小时,表示格式范围0~23
%M 显示分钟,显示格式范围00~59
%S 显示秒钟,显示格式范围00~59
%p 显示是AM(上午)还是PM(下午)
%r 显示时间,格式为 hh:mm:ss AM或者PM
%T 显示时间,格式为 hh:mm:ss
%x 显示年份和日期,格式为 mm/dd/yyyy
%X 显示时间格式,相当于%H:%M:%S的组合
%a 显示星期几
%b 显示月份,月份的简称
%B 显示月份,月份的全称
%m 显示月份,表示格式为01~12
%Z 显示时区
%d 显示一个月的第几天
%D 显示年份和月份,格式mm/dd/yy
%Y 显示年份,显示完整的年份
%y 显示年份,显示年份的最后两个数字
%c 显示日期和时间格式,相当于“%a%d%b%Y%r%Z”的组合
- 简单示例:
不使用格式输出时间
[root@cinder01 ~]# date
Tue Sep 26 15:48:43 CST 2017
用制定的格式显示时间和日期
[root@cinder01 ~]# date "+%Y-%m-%d"
2017-09-26
修改系统时间
[root@cinder01 ~]# date -s 20160930
Fri Sep 30 00:00:00 CST 2016
passwd 命令
- 功能说明
用于设置用户密码
语法结构:
passwd [用户名]
- 简单示例
普通用户修改密码
[root@cinder01 ~]# passwd user001
Changing password for user user001.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@cinder01 ~]#
根据提示,连续输入两次密码即可。
root 用户修改密码
[root@cinder01 ~]# passwd root
或:
[root@cinder01 ~]# passwd
su 命令
- 功能说明
su 命令主要用于改变用户身份
语法结构:
su [选项] [用户名]
su 命令的选项及其说明
-加载相应用户下的环境变量
-l 使当前的shell成为改变身份后用户默认的shell
-c 改变身份运行一个指令后就结束
-m 改变用户身份,但不改变环境变量
- 简单示例
普通用户切换超级用户
[user001@cinder01 ~]$ su -
Password:
输入root密码后即可进入root的bash shell环境下
clear 命令
- 功能说明
clear 命令用来清除屏幕信息
语法结构:
clear
man 命令
- 功能说明
man命令用来显示制定命令的帮助信息
语法结构
man [命令全称]
- 简单示例
查看ls命令的帮助信息
[root@cinder01 ~]# man ls
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
who 命令
- 功能说明
who 命令显示目前登陆到系统的用户
语法结构
who [选项] [file]
who 命令的一般输出格式如下:
名称 [状态] 终端时间 [活动] [进程标识] (主机名)
名称:用户的登录名
状态:表明终端是否对用户都是可写的
时间:用户登录系统的时间
活动:某个用户在自己的终端上最后一次活动发生以来到现在的时间
进程标识:用户登录shell的进程id
主机名:登陆到linux系统上的客户端机器标识
who 命令的选项及说明:
-a 列出所有信息,相当于所有选项
-b 列出系统最近启动的日期
-l 列车所有可登录的终端信息
-m 仅列出关于当前zhong
-q 列出在本地系统上的用户和用户数的清单
-r 显示当前系统的运行级别
-s 仅显示名称、终端和时间字段信息(who的默认输出)
-u 显示当前每个用户的用户名,登录终端、终端活动和进程标识
-T或-w 显示tty终端的状态,“+”表示对任何人可写,“-”表示仅对root用户或所有者可写,“?”表示遇到终端故障
- 简单示例:
查询系统的运行级别
[root@cinder01 ~]# who -r
run-level 3 2017-04-26 00:13
显示系统最近启动日期,以及当前每个用户的登陆详情,终端状态
[root@cinder01 ~]# who -buT
system boot 2017-04-26 00:12
root + pts/0 2017-08-26 04:16 . 19192 (192.168.180.38)
w 命令
- 功能说明
用于显示登陆到系统的用户信息
语法结构:
w [选项] [用户]
w 命令的选项及其说明
-h 不显示输出信息的标题
-l 用长格式输出
-s 用短格式输出,不显示登录时间、JCPU 和 PCPU
-V 显示版本信息
[用户] 表示当指定用户后,只显示该用户的信息
- 简单示例
显示当前用户登录信息
[root@cinder01 ~]# w
04:25:03 up 153 days, 20:03, 1 user, load average: 0.08, 0.04, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.180.38 04:16 7.00s 1.13s 0.95s w
[root@cinder01 ~]#
解释:
- 第一行输出显示当前的系统时间,系统从启动到现在已经运行的时间,登陆到系统中的用户数和系统平均负载
- USER 表示登录系统的用户
- TTY 表示用户使用的是TTY名称
- FROM 表示用户从哪里登录进来,一般显示远程IP的地址或主机名
- LOGIN@ 用户登录的日期和时间
- LDLE 表示某个程序上次从终端开始执行到现在所持续的时间
- JCPU 表示该终端上的所有进程及子进程使用系统的总时间
- PCPU 当前活动进程使用的系统时间
- WHAT 当前用户执行的进程名称和选项
uname 命令
- 功能说明
uname 命令用来显示操作系统相关的信息
语法结构:
uname [选项]
uname 命令的选项及其说明
-a 显示操作系统全部信息
-m 显示系统CPU类型(32位或64位)
-n 显示操作系统的主机名
-s 显示操作系统类型
-r 显示操作系统内核版本
- 简单示例
[root@cinder01 ~]# uname -a
Linux cinder01 3.10.0-514.2.2.el7.x86_64 #1 SMP Tue Dec 6 23:06:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@cinder01 ~]# uname -m
x86_64
[root@cinder01 ~]# uname -n
cinder01
[root@cinder01 ~]# uname -s
Linux
[root@cinder01 ~]# uname -r
3.10.0-514.2.2.el7.x86_64
uptime 命令
- 功能说明
uptime 命令用来输出系统任务队列消息
语法结构
uptime
uptime 输出当前系统时间,系统开机到现在运行时间、目前有多少用户在线和系统平均负载
2. 简单示例
[root@cinder01 ~]# uptime
04:46:21 up 153 days, 20:24, 1 user, load average: 0.00, 0.01, 0.05
[root@cinder01 ~]#
last 命令
- 功能说明
列出当前与过去登入系统的用户相关信息
语法结构
last [选项][-n(显示行数)]
last命令选项及其说明
-a 把登入系统的主机名或IP地址显示在最后一行
-R 不显示登入系统的主机名或IP地址
-x 显示系统关机,重新开机以及执行等级的改变信息
-n 设置列出名单的显示列数
-d 将显示的IP地址转换成主机名称
- 简单示例
显示前5行的登入信息
[root@cinder01 ~]# last -n 5
root pts/0 192.168.180.38 Sat Aug 26 04:16 still logged in
root pts/0 192.168.180.38 Tue Sep 26 15:03 - 02:46 (-31+-12:-17
root pts/2 192.168.180.38 Tue Sep 26 10:26 - 13:27 (03:01)
root pts/0 192.168.180.38 Tue Sep 26 09:48 - 12:00 (02:11)
root pts/0 192.168.180.38 Thu Sep 21 17:40 - 19:51 (02:11)
wtmp begins Tue Dec 20 16:13:46 2016
[root@cinder01 ~]#
dmesg 命令
- 功能说明
显示开机信息
语法结构
dmesg [选项]
dmesg 命令的选项及其说明
-c 显示开机信息后,清除ring buffer信息
-s 设置缓冲区大小,默认设置为8192
-n 设置记录信息的层级
- 简单示例
显示开机的详细信息
[root@cinder01 ~]# dmesg | less
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
......
free 命令
- 功能说明
free 命令用来显示系统内存状态,具体包含系统物理内存,虚拟内存,共享内存和系统缓存
语法结构:
free [选项] [-s (间隔秒数)]
free 命令的选项及其说明
-b 以字节为单位显示内存使用情况
-m 以MB为单位显示内存使用情况
-K 以KB为单位显示内存使用情况
-t 显示内存总和列
-s 根据指定的间隔秒数持续显示内存使用情况
-o 不显示系统缓冲区列
- 简单示例
[root@cinder01 ~]# free -b
total used free shared buff/cache available
Mem: 3975155712 3379781632 207343616 50302976 388030464 277786624
Swap: 4294963200 15134720 4279828480
[root@cinder01 ~]#
[root@cinder01 ~]# free -m
total used free shared buff/cache available
Mem: 3791 3223 197 47 370 264
Swap: 4095 14 4081
[root@cinder01 ~]#
[root@cinder01 ~]# free
total used free shared buff/cache available
Mem: 3881988 3300568 202484 49124 378936 271276
Swap: 4194300 14780 4179520
[root@cinder01 ~]#
ps 命令
- 功能说明
ps 命令显示系统进程在时间的运行动态
语法结构
ps [选项]
ps 常用选项介绍
-a 显示所有用户的进程,包含每个程序的完整路径
-x 显示所有系统程序,包括没有终端的程序
-u 显示所有者的名称和起始时间
-f 详细显示程序执行的路径群
-c 只显示进程的名称,不显示进程完整路径
-e 将除内核进程以外所有进程的信息写到标准输出
- 简单示例
查看当前所有者的进程
[root@cinder01 ~]# ps
PID TTY TIME CMD
19192 pts/0 00:00:00 bash
19261 pts/0 00:00:00 ps
[root@cinder01 ~]#
解释:
- PID: 进程的标识号
- TTY: 是进程所属的终端控制台
- TIME: 列出进程使用的总CPU时间
- CMD: 列出正在执行的命令行
查看系统所有进程
[root@cinder01 ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Mar25 ? 00:05:06 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root 2 0 0 Mar25 ? 00:00:05 [kthreadd]
root 3 2 0 Mar25 ? 00:00:04 [ksoftirqd/0]
root 7 2 0 Mar25 ? 00:00:36 [migration/0]
root 8 2 0 Mar25 ? 00:00:00 [rcu_bh]
root 9 2 0 Mar25 ? 00:31:24 [rcu_sched]
root 10 2 0 Mar25 ? 00:01:15 [watchdog/0]
root 11 2 0 Mar25 ? 00:01:40 [watchdog/1]
......
[注]:ps 最常用的命令组合 ps -ef | ps -aux
top 命令
top 命令提供对系统处理器状态的实时监控,显示系统的各个进程资源占用状况
- 功能说明
查看即时活跃的进程
语法格式:
top [选项]
top 命令的常用选项说明
-d 指定每两次屏幕信息刷新之间的时间间隔
-i 不显示闲置或者僵死的进程信息
-c 显示进程的整个命令路径,而不只显示命令名称
-s 使top命令在安全模式下运行
-b 分屏显示输出信息,结合“-n”选项可以将屏幕信息输出到文档
-n top输出信息更新的次数,完成后退出top命令
- 简单示例
查看当前系统活动的进程
[root@cinder01 ~]# top
top - 05:27:50 up 153 days, 21:06, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.1 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3881988 total, 201788 free, 3300988 used, 379212 buff/cache
KiB Swap: 4194300 total, 4179520 free, 14780 used. 270844 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
666 root 20 0 24324 1540 1280 S 0.3 0.0 1:31.81 systemd-logind
1 root 20 0 190676 3260 2088 S 0.0 0.1 5:06.45 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:05.54 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:04.42 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 0:36.34 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 31:24.74 rcu_sched
10 root rt 0 0 0 0 S 0.0 0.0 1:15.65 watchdog/0
... ...
[root@cinder01 ~]#
解释:
- top - 09:44:56[当前系统时间],
- 16 days[系统已经运行了16天],
- 1 user[个用户当前登录],
- load average: 9.59, 4.75, 1.92[系统负载,即任务队列的平均长度]
- Tasks: 145 total[总进程数],
- 2 running[正在运行的进程数],
- 143 sleeping[睡眠的进程数],
- 0 stopped[停止的进程数],
- 0 zombie[冻结进程数],
- Cpu(s): 99.8%us[用户空间占用CPU百分比],
- 0.1%sy[内核空间占用CPU百分比],
- 0.0%ni[用户进程空间内改变过优先级的进程占用CPU百分比],
- 0.2%id[空闲CPU百分比],
- 0.0%wa[等待输入输出的CPU时间百分比],
- 0.0%hi[], 0.0%st[], Mem: 4147888k total[物理内存总量],
- 2493092k used[使用的物理内存总量],
- 1654796k free[空闲内存总量],
- 158188k buffers[用作内核缓存的内存量]
- Swap: 5144568k total[交换区总量],
- 56k used[使用的交换区总量],
- 5144512k free[空闲交换区总量],
- 2013180k cached[缓冲的交换区总量]
参考自:<<循环渐进linux第2版>>