Linux基础篇学习——常见系统命令:ls,pwd,cd,date,hwclock,passwd,su,clear,who,w,uname,uptime,last,dmesg,free,ps,top
ls 显示指定目录中的内容
ls [OPTION]... [FILE]...
OPTION
-a --all,显示所有文件包括隐藏文件
-l 列出长属性,显示出文件的属性与权限等数据信息
-i 列出inode节点号 结合-l使用
-d 显示目录本身,且不列出目录中的列表文件
-h 将文件大小以易读的KB,MB方式显示出来
-A 显示所有文件,但不包括当前目录和上一级目录
-g 和-l类似,显示列表结果,但是不显示文件所属者
-n 和-l类似,只是显示的所属用户和组不是名称而是对应的id
-r --reverse,将排序结果以倒序方式显示
-c 和-lt一起使用,显示列表并且以ctime(文件状态最后改变时间)排序 ls默认以文件名排序
-s 以文件大小排序
-t 以修改时间排序
pwd 显示当前工作目录
pwd [OPTION]...
OPTION
是链接文件时:
-L --logical,直接显示链接文件的路径 默认
-P --physical,显示链接文件所指向的文件(多层连接时,显示最终指向的文件)
实例
[root@localhost ~]# cd /var/mail
[root@localhost mail]# pwd
/var/mail
[root@localhost mail]# pwd -P
/var/spool/mail
[root@localhost mail]# pwd -L
/var/mail
cd 切换目录
OPTION
cd [~] 默认回到用户主目录 即环境变量HOME指定的目录
cd . . 上一级目录
cd - 上一个工作目录
cd . 当前目录
实例
[root@localhost ~]# cd /home
[root@localhost home]# cd /var
[root@localhost var]# cd -
/home
[root@localhost home]# cd /var
[root@localhost var]# cd ..
[root@localhost /]#
date 显示或设置系统时间与日期
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
OPTION
-d 显示字符串所指的日期与时间 字符串前后必须加上双引号
-s 根据字符串来设置日期与时间 字符串前后必须加上双引号,只有root权限才能设置
-u 显示GMT(格林尼治平太阳时间)
FORMAT
%F 显示完整日期
%Y 显示年 以四位数来表示
%m 显示月 01-12
%d 显示日 01-31
%H 显示时 00-23
%M 显示分 00-60
%S 显示秒 00-60
%s 显示总秒数 起算时间为1970-01-01 00:00:00 UTC
实例
时间格式化输出
[root@localhost ~]# date +%F
2019-10-05
[root@localhost ~]# date +%Y-%m-%d
2019-10-05
[root@localhost ~]# date +%H:%M:%S
11:32:21
-d 应用
1.显示字符串所指的日期与时间
[root@localhost ~]# date -d "1 day ago" +%Y-%m-%d
2019-10-04
[root@localhost ~]# date +%H:%M:%S;date -d "2 second" +%H:%M:%S
11:36:08
11:36:10
2.字符串格式转换
[root@localhost ~]# date -d "20191212" +%Y-%m-%d
2019-12-12
-s 应用
1.根据字符串来设置日期 但是会将时间设定为00:00:00
[root@localhost ~]# date -s 20190922
Sun Sep 22 00:00:00 CST 2019
2.根据字符串来设置日期与时间
[root@localhost ~]# date -s "20190922 09:25:00"
Sun Sep 22 09:25:00 CST 2019
同步网络时间
[root@localhost ~]# yum install ntpdate -y
[root@localhost ~]# ntpdate ntp.api.bz
5 Oct 11:45:39 ntpdate[7305]: step time server 114.118.7.161 offset 1131455.609556 sec
hwclock,clock 显示或者设置硬件时钟
hwclock [function] [option...]
OPTION
-s --hctosys,将系统时间调整为和硬件时间一致 以硬件为准
-w --systohc,将硬件时间调整为和系统时间一致 以系统为准
Linux时钟
系统时钟 是指当前Linux Kernel中的时钟
硬件时钟 是主板上由电池供电的时钟,可以在BIOS中进行设置
1.当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作
2.Linux中的所有命令(包括函数)都是采用的系统时钟设置
passwd 设置用户口令
passwd[-k][-l][-u[-f]][-d][-e][-nmindays][-xmaxdays][-wwarndays][-i
inactivedays][-S][--stdin][username]
passwd ;修改当前用户密码
passwd username ;修改指定用户的密码,只有root有权限
OPTION
-d 清除用户密码串
-l 锁定用户
-u 解锁用户
-e DATE 过期期限,日期
-i DAYS 非活动期限
-n DAYS 密码的最短使用期限 只对普通用户有限制,root仍可以修改
-x DAYS 密码的最长使用期限
-w DAYS 警告期限
--stdin echo "PASSWD" | passwd --stdin username
su 变更为其他使用者的身份
su [options...] [-] [user [args...]]
OPTION
-&-l -login,类似于登录操作(登录shell),环境变量、工作目录等都会改变 未指定user,默认切换到root
-m&-p 执行su命令时不改变环境变量
-c command 变更账号为USER的使用者,并执行指令(command)后再变回来
su 会切换root用户,但是当前的环境变量还是以前用户的环境变量(非登录shell)
实例
1.su
[zhao@localhost ~]$ su
Password:
[root@localhost zhao]# echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/zhao/.local/bin:/home/zhao/bin
2.su -&su -l
[zhao@localhost ~]$ su -l
Password:
Last login: Sat Oct 5 16:01:54 CST 2019 on pts/1
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
3.su -c command
[zhao@localhost etc]$ cat shadow
cat: shadow: Permission denied
[zhao@localhost etc]$ su -c "cat shadow" root
Password:
root:$6$G6rrTzzz75OjgLKl$lNe/HfL9IA2rC1LaGX4RxQxLHYtaSqEionyPsTYFdKGJKPBxZWS8oN9A/6uvoya4/J65AxzV/zuV8qeNPXW1T0::0:99999:7:::
……
zhao:$6$66FVAJVw$FyfAM5mGHn3wrcLgNkfQjC1xwGXGlCnF1Le95Lo1SaFfRL93HvoQwSaV9IInaRbaONB4xGnUv1eCLSfh16Wev0:18174:0:99999:7:::
clear 清屏操作(Ctrl+l)
who 显示当前登录到系统中的用户
who [OPTION]... [ FILE | ARG1 ARG2 ]
OPTION
-a --all,处理/run/utmp文件或有全部信息的指定文件 -bdlprtTu
-b 最近一次系统启动的日期和时间
-H 显示一个标题
-l 显示登录进程
-m 显示关于当前终端的信息 等同于who am i(I)
-q 打印用户登录清单
-r 显示系统运行级别
-d 显示没有被init重新生成的所有到期的进程
w 显示当前登录到系统中的用户,显示正在运行的程序
w [options] user [...]
OPTION
-h 省略标题
-f 关闭用户从何处登录系统
-V 显示版本
-i 显示ip信息 默认显示
-s 省略登录时间,cpu的耗时
uname 显示操作系统相关信息
uname [OPTION]...
OPTION
-a 显示完整信息
-s 显示内核名称 uname不加选项默认显示内核名称
-n 显示hostname
-i 显示架构信息
-r 显示内核发行信息
分析 uname -r 结果
[root@localhost ~]# uname -r
3.10.0-957.el7.x86_64
3 主版本号
10 次版本号
0 对次版本的修订次数或者补丁包数
957 编译的次数
el7 版本的特殊信息,el表示企业版Linux
x86_64 系统架构
关于次版本号:
主版本号3以前的次版本号区分奇偶版本,偶数代表稳定版,奇数代表测试版;
主版本号3以后的次版本号不再区分奇偶版本,建议安装长期维护版本。
uptime 显示当前系统的运行信息
uptime [options]
OPTION
-V 显示版本
分析 uptime 结果
10:51:25 up 3:05, 2 users, load average: 0.01, 0.03, 0.05
10:51:25 当前系统时间
up 3:05 累计运行时间,重启后清零
2 users 登录用户数
up 3:05 平均负载量:最近1分钟,5分钟,15分钟 值越低表示系统性能越好
系统的平均负载是指在特定时间间隔内运行队列中的平均进程数
last 列出当前或者之前登陆系统的用户相关信息
last [options]
OPTION
-a 将IP或主机名显示在最后一行
-d 将IP地址转换成主机名称
-n 显示的行数 last -n 5
-R 不显示IP或者主机名
-x 显示关机、重启以及执行级别的改变等信息
dmesg 显示开机信息
free 显示系统内存状态
free [options]
OPTION
-h 以MB、G为单位显示内存使用情况
-b 以Byte为单位显示内存使用情况
-k 以KB为单位显示内存使用情况
-m 以MB为单位显示内存使用情况
-g 以GB为单位显示内存使用情况
-t 显示内存总和列
-s N 持续观察内存使用情况 free -s 2
free命令的所有输出值都是从/proc/meminfo中读出的
ps 显示系统进程瞬间的运行动态
ps [options]
OPTION
-A 显示所有进程信息 与-e具有同样效用
-a 显示当前终端下的进程信息,包括其他用户的进程
-u 显示以用户为主的进程状态
-x 列出完整信息 与-a一同使用
-l 较长、较详细的将该PID的信息列出
-j 工作的格式
-f 做一个更为完整的输出
分析 ps -l 结果
[root@localhost ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 8985 8970 0 80 0 - 28860 do_wai pts/0 00:00:00 bash
0 R 0 9102 8985 0 80 0 - 38309 - pts/0 00:00:00 ps
F 代表这个程序的旗标(flag),4代表使用者为superuser
S 代表这个程序的状态(stat)
UID 代表执行者身份
PID 进程的ID号
PPID 父进程的ID
C CPU使用的资源百分比
PRI 进程的优先执行权 越小越早被执行
NI 进程的nice值,即可被执行的优先级的修正数值
ADDR 内核函数,指出该程序在内存的哪个部分 执行程序 -
SZ 使用掉的内存大小
WCHAN 目前这个程序是否正在运作当中 若为 - 表示正在运作
TTY 登入者的终端机位置
TIME 使用掉的CPU时间
CMD 所下达的指令名称
top 实时监测系统处理器状态
last [options]
OPTION
top -d # 页面更新一次的时间间隔s,默认是5秒
top -b # 以批次的方式执行top
top -p pid 指定pid观察
top -n # 与-b配合使用,表示需要进行几次top命令的输出结果
可执行操作
操作 | 含义 |
---|---|
? | 显示在top当中可以输入的命令 |
N | 以PID排序 |
P | 以%CPU排序 |
M | 以%MEM排序 |
T | 由进程使用的时间累计排序显示 |
k | 给某一个pid一个信号。可以用来杀死进程 |
r | 给某个pid重新定制一个nice值(即优先级) |
q | 退出top(用ctrl+c也可以退出top) |
分析 top 结果
top - 20:02:18 up 4:05, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 94 total, 1 running, 93 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 995896 total, 703792 free, 135404 used, 156700 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 689064 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8739 root 20 0 0 0 0 S 0.3 0.0 0:06.05 kworker/0:3
top - 20:02:18 up 4:05, 2 users, load average: 0.00, 0.01, 0.05
当前系统的运行信息 与uptime显示的信息相同
Tasks: 94 total, 1 running, 93 sleeping, 0 stopped, 0 zombie
表项 | 含义 |
---|---|
94 total | 总计进程 |
1 running | 运行进程 |
93 sleeping | 休眠(挂起)进程 |
0 stopped | 停止进程 |
0 zombie | 僵尸进程 |
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
表项 | 含义 |
---|---|
0.3 us | user用户空间占用cpu的百分比 |
0.3 sy | system内核空间占用cpu的百分比 |
0.0 ni | niced改变过优先级的进程占用cpu的百分比 |
99.3 id | 空闲 cpu百分比 |
0.0 wa | IO wait IO等待输入输出的cpu时间百分比 |
0.0 hi | hardware IRQ 硬中断 占用cpu的百分比 |
0.0 si | software IRQ 软中断 占用cpu的百分比 |
0.0 st | 被hypervisor偷去的时间 |
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
表项 | 含义 |
---|---|
PID | 进程号 |
USER | 进程所有者 |
PR | 进程优先级 |
NI | nice值 负值表示高优先级,正值表示低优先级 |
VIRT | 进程使用的虚拟内存量,单位kb |
RES | 进程使用的、未被换出的物理内存大小,单位kb |
SHR | 共享内存,单位kb |
S | 进程状态 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
%MEM | 进程使用的物理内存百分比 |
TIME+ | 进程使用的CPU时间总计,单位0.01秒 |
COMMAND | 进程名称(命令名/命令行) |
S 进程状态表
D | R | S | T | Z |
---|---|---|---|---|
不可中断的睡眠状态 | 运行 | 睡眠 | 跟踪/停止 | 僵尸进程 |
如有错误,请批评指正,谢谢!