Linux命令笔记

新手必须掌握的Linux命令

命令 参数 对象
长 –单词

短 -字母

2.3 常用系统工作命令
1、echo [将输出的信息输出到屏幕中]
这个命令和第三章中的管道符结合起来,可以用来设置密码和信息重定向的操作
例子:
[root@localhost ~]# echo hahaha
hahaha
[root@localhost ~]# echo hello world
hello world
[root@localhost ~]# echo $SHELL [查看当前使用的终端是什么]
/bin/bash
$ [提取变量的值]

SHELL [变量的名称]

2、date [查看系统时间]
例子:
[root@localhost ~]# date

2023年 12月 11日 星期一 10:58:29 CST

年份 %Y
[root@localhost ~]# date “+%Y”

2023

月份 %m
[root@localhost ~]# date “+%Y-%m”

2023-12

日 %d
[root@localhost ~]# date “+%Y-%m-%d”

2023-12-11

小时、分钟、秒 :
小时 %H:
[root@localhost ~]# date “+%Y-%m-%d %H”

2023-12-11 11

分钟 %M:
[root@localhost ~]# date “+%Y-%m-%d %H:%M”

2023-12-11 11:13

秒 %S
[root@localhost ~]# date “+%Y-%m-%d %H:%M:%S”

2023-12-11 11:14:48

3、reboot [重启服务器]

4、poweroff [关闭服务器]

5、wget [用于下载文件的命令]
参数:
-c [断点续传]
-p [下载到指定的目录]
例子:

[root@localhost ~]# wget https://www.linuxprobe.com/docs/LinuxProbe.pdf

6、ps [静态查看进程信息的命令]
[显示进程信息的命令]
-a # 查看所有进程的意思
-u # 显示所有进程的详细信息
-x # 即便该进程没有终端的话,也是可以显示出来,由系统启动也是可以显示出来
合并后的话
aux # 显示出所有进程的详细信息
例子:

[root@localhost ~]# ps aux

7、top [动态查看进程信息]
[root@localhost ~]# top
top – 10:13:43 up 13 min, 2 users, load average: 0.05, 0.08, 0.10
Tasks: 445 total, 2 running, 443 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.7 us, 2.2 sy, 0.0 ni, 92.9 id, 2.9 wa, 0.0 hi, 0.2 si, 0.0 st
KiB Mem: 2035624 total, 654060 used, 1381564 free, 884 buffers

KiB Swap: 2097148 total, 0 used, 2097148 free. 215128 cached Mem

进程的5个状态
R状态:正在运行,正在为用户提供服务(常见的进程状态)
S状态:正在休眠,等待为用户提供服务(常见的进程状态)
D状态:进程不可中断
Z状态:僵死、僵尸进程
T进程:已经停止的进程
解释说明:
top – 10:13:43 up 13 min, 2 users, load average: 0.05, 0.08, 0.10
top # 名称
10:13:43 # 当前的系统时间
up 13 min # 代表的是当前系统运行的时间
2 users # 系统的终端数量
load average: 0.05, 0.08, 0.10 # 负载压力值
值不要超过1,代表的是1分钟,5分钟及15分钟的负载压力
这个最小是0,最大的话有几十和几百
如果超过了1,说明这个就是个满队列的CPU在运行
数值越小,越好

超过5,就睡不着觉,最危险的值

Tasks: 445 total, 2 running, 443 sleeping, 0 stopped, 0 zombie
445 total # 进程的总数量
2 running # 当前为用户提供的数量
443 sleeping # 等待为用户提供服务
0 stopped # 已经被关闭的进程

0 zombie # 僵尸进程

%Cpu(s): 1.7 us, 2.2 sy, 0.0 ni, 92.9 id, 2.9 wa, 0.0 hi, 0.2 si, 0.0 st
1.7 us # CPU当前使用率

92.9 id # 空闲值

KiB Mem: 2035624 total, 654060 used, 1381564 free, 884 buffers
KiB Mem # 物理内存值
2035624 total # 全部的物理内存值有多少,以kb为单位的值
654060 used # 已经使用的了多少内存
1381564 free # 空闲值

后面的Buffers和cached Mem这个不用管,是硬盘的交互数量

KiB Swap: 2097148 total, 0 used, 2097148 free. 215128 cached Mem
KiB Swap # 虚拟内存值
2097148 total # 总共的虚拟内存值
0 used # 当前使用了0个
2097148 free # 空闲了2GB
这个是,当我们的物理内存不够的时候,充当临时使用的内存空间,

在第六章的时候会讲到的

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
说明:
PID # 进程的pid的号码,进程号不是唯一的
USER # 用户的名称,谁发起的进程和谁运行的进程
PR和NI # 进程的优先级,如果数字是负数,数值越低,优先级越高
修改的话可以使用nc命令
VIRT RES SHR # 硬盘的交互值
S # 代表的是,当前进程的状态,如果是S的话
说明S等待为用户提供服务的状态,如果是R的话是正在为用户提供服务
CPU %MEM # CPU和内存之间消耗的百分比
TIME+ # 进程已经执行的时间

COMMAND # 进程的名称是什么

8、pidof [查看进程pid进程号码]
例子:
[root@localhost ~]# pidof sshd
2031 1679
[root@localhost ~]# systemctl status sshd # 查看sshd服务的状态

Active: active (running) # 当前是运行的状态

9、kill [结束某个进程号码]
例子:
[root@localhost 桌面]# kill 1679 # 结束sshd服务进程号码
[root@localhost 桌面]# systemctl status sshd # 查看sshd服务状态
Active: inactive (dead) #已经停止服务的状态
[root@localhost 桌面]# systemctl restart sshd # 重启sshd服务
[root@localhost 桌面]# systemctl status sshd # 再次查看该服务

Active: active (running) # 正在运行的状态

10、killall [结束某个服务所对应的全部进程]
例子:
[root@localhost ~]# pidof sshd # 查看sshd服务的进程号码
2971 1675
[root@localhost ~]# killall sshd # 结束sshd服务的全部进程号码/杀死
[root@localhost 桌面]# pidof sshd # 再次查看到没有显示sshd该进程号码
[root@localhost 桌面]# systemctl status sshd # 再次查看sshd服务的状态

Active: inactive (dead) # 是停止服务的状态

2.4 系统状态检测命令
1、ifconfig [用于查看网卡信息]
例子:
[root@localhost ~]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.44.128 netmask 255.255.255.0 broadcast 192.168.44.255
inet6 fe80::20c:29ff:fe83:3191 prefixlen 64 scopeid 0x20 ether 00:0c:29:83:31:91 txqueuelen 1000 (Ethernet)
RX packets 294 bytes 29268 (28.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 250 bytes 29391 (28.7 KiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

说明:
eno16777736 # 网卡的名称
inet 192.168.44.128 # 网卡的IP地址
netmask 255.255.255.0 # 网卡的子网掩码
ether 00:0c:29:83:31:91 # 网卡的MAC地址,网卡的物理地址
RX packets 294 bytes 29268 (28.5 KiB) # 收到的数据包的大小
TX packets 250 bytes 29391 (28.7 KiB) # 发送出去的数据包大小

broadcast 192.168.44.255 # 广播地址–(这个不用管)

2、uname [查看系统内核信息]
参数:
-a # 显示系统的内核信息
例子:
[root@localhost ~]# uname

Linux

[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
说明:
Linux # 系统的名称
localhost.localdomain # 系统的主机名称
3.10.0-123.el7.x86_64 # 系统内核版本号码
Mon May 5 11:16:57 EDT 2014 # 系统的发布时间
x86_64 # 系统的架构

GNU/Linux

3、uptime [单独查看负载情况]
例子:
[root@localhost ~]# uptime

11:17:45 up 41 min, 3 users, load average: 0.00, 0.02, 0.09

4、free [查看内存使用率情况]
例子:
默认是以KB为单位
[root@localhost ~]# free
total used free shared buffers cached
Mem: 2035624 556704 1478920 9100 880 189108
-/+ buffers/cache: 366716 1668908

Swap: 2097148 0 2097148

[root@localhost ~]# free -h # 以人性化的方式显示
total used free shared buffers cached
Mem: 1.9G 551M 1.4G 8.9M 880K 187M
-/+ buffers/cache: 363M 1.6G

Swap: 2.0G 0B 2.0G

total 总的内存大小
used 已经使用的内存情况
free 空闲值
-/+ buffers/cache: 363M 1.6G [硬盘的交互值,不用去管]
Swap: 2.0G 0B 2.0G [虚拟内存这个也不用管]

[第六章的时候才会讲到的]

5、who # 当前登录的用户名称是什么
例子:
[root@localhost ~]# who
(unknown) :0 2023-12-20 16:18 (:0)

root pts/0 2023-12-20 16:19 (192.168.44.1)

6、last # 登录系统的列表
例子:
[root@localhost ~]# last
root pts/0 192.168.44.1 Wed Dec 20 16:19 still logged in
(unknown :0 :0 Wed Dec 20 16:18 still logged in
reboot system boot 3.10.0-123.el7.x Wed Dec 20 16:18 – 16:34 (00:16)
root pts/1 192.168.44.1 Sat Dec 16 10:59 – down (02:54)

root pts/1 192.168.44.1 Sat Dec 16 10:48 – 10:49 (00:00)

说明:
:0 代表的图形化界面

pts/0/1/2/3 代表的是开启的终端

7、history # 显示出历史记录
[root@localhost ~]# history
1 poweroff
2 poweroff
3 echo hahaha

4 echo hello world

参数
-c # 永久删除历史记录

! 数字 # 调用原来历史记录的命令,并执行

8、sosreport [收集系统配置及架构信息并输出诊断文件]

[root@localhost ~]# sosreport

2.5 工作目录切换命令
1、pwd # 显示当前所在目录
例子:
[root@localhost ~]# pwd

/root

2、cd # 切换目录
cd ~ # 切换用户的家目录
cd – # 上一次所在目录
cd .. # 上一级目录在哪里
例子:
[root@localhost ~]# cd /etc/
[root@localhost etc]# pwd

/etc

[root@localhost etc]# cd /home/
[root@localhost home]# pwd

/home

3、ls # 显示当前目录下有哪些文件
参数:
-a # 显示全部信息,所有以.号开头的都是隐藏文件
-l # 显示出来全部信息,包括属性信息
一个.点代表的是当前目录
两个..点代表的是上一级目录的含义

例子:
[root@localhost home]# ls
linuxprobe
[root@localhost home]# cd /etc/

[root@localhost etc]# ls

2.6 文本文件编辑命令
1、cat # 查看短文件
例子:

[root@localhost ~]# cat anaconda-ks.cfg

2、more # 查看长文件
cat用于看小文件的,more用于查看大文件的
例子:
[root@localhost ~]# more anaconda-ks.cfg
每次按一下空格,代表的是往下走一页

按下会车,代表走一行

3、head # 查看头文件
参数:
-n [显示行号]
例子:

[root@localhost ~]# head -n 20 anaconda-ks.cfg

4、tail # 查看尾文件
参数:
-f # 实时去刷新一个文件
例子:
[root@localhost ~]# tail -n 10 anaconda-ks.cfg
-f
[root@localhost ~]# tail -f /var/log/messages
在另开一个终端

重启服务即可

5、tr # 替换文本内容,将小写字符转换成大写字符
将我们前面的命令,原本要输入到屏幕的信息,交给我们的后面命令进行处理
将小写的字符转换成大写字符
例子:

[root@localhost ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z]

6、wc # 统计文本文件信息的命令
参数:
-l [显示行数]
-w [显示单词数]
-c [显示字节数]
例子:
1、统计文本文件当中有多少行
[root@localhost ~]# wc -l anaconda-ks.cfg
47 anaconda-ks.cfg
2、统计文本文件当中有多少单词数
[root@localhost ~]# wc -w anaconda-ks.cfg
105 anaconda-ks.cfg
3、统计文本文件当中的字符数
[root@localhost ~]# wc -c anaconda-ks.cfg

1253 anaconda-ks.cfg

7、stat # 查看文件的时间
例子:
[root@localhost ~]# stat anaconda-ks.cfg
文件:”anaconda-ks.cfg”
大小:1253 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:69024648 硬链接:1
权限:(0600/-rw——-) Uid:( 0/ root) Gid:( 0/ root)
环境:system_u:object_r:admin_home_t:s0
最近访问:2023-12-23 09:29:05.802222694 +0800
最近更改:2023-12-02 01:01:49.164016085 +0800
最近改动:2023-12-02 01:01:49.164016085 +0800

创建时间:-

说明:
Access [文件最后一次的查看时间]
Modify [文件内容最后一次的修改时间]

Change [最后一次属性修改的时间]

8、cut # 按列提取文本内容
参数:
-d # 以冒号为间隔符
-f # 需要看的列数
例子:
按列提取/etc/passwd文件当中第1列的信息
[root@localhost ~]# cut -d : -f 1 /etc/passwd
查看系统当中有多少用户

[root@localhost ~]# cut -d : -f 1 /etc/passwd |wc -l

9、diff # 比对文件是否相同
参数:
–brief
-c # 查看哪里不一样
例子:
[root@localhost ~]# cat a.txt
Welcome to linuxprobe.com
Red Hat certified
Free Linux Lessons
Professional guidance
Linux Course
[root@localhost ~]# cat b.txt
Welcome tooo linuxprobe.com

Red Hat certified
Free Linux LeSSonS
////////…..////////
Professional guidance
Linux Course
[root@localhost ~]# diff –brief a.txt b.txt
-c 查看哪里不一样
[root@localhost ~]# diff -c a.txt b.txt

会吧不一样的行 用叹号给标出来

2.7 文件目录管理命令
1、touch # 创建新的文件
参数:
-d # 同时修改atime与mtime时间
例子:
[root@localhost ~]# touch xiaohao # 创建文件
[root@localhost ~]# ls

[root@localhost ~]# touch xiaoyong
[root@localhost ~]# ls

同时修改atime和mtime
[root@localhost ~]# touch xiaohao # 创建文件
[root@localhost ~]# ls
[root@localhost ~]# ls -l xiaohao # 查看文件的详细信息

[root@localhost ~]# echo “haha” > xiaohao # 将haha字符写入到xiaohao文件中
[root@localhost ~]# ls -l xiaohao # 再次查看文件的详细信息

[root@localhost ~]# touch -d “10:25” xiaohao # 修改文件的atime和mtime的时间

[root@localhost ~]# stat xiaohao

2、mkdir # 创建目录
蓝色是目录
黑色是文本文件
参数:
-p # 创建出具有嵌套关系的文件目录
例子:
[root@localhost ~]# mkdir xiaoxiao
[root@localhost ~]# ls
创建具有嵌套关系的目录

[root@localhost ~]# mkdir -p 1/2/3/4/5/6/7/8

3、cp # 复制
参数:
-a # 复制的时候,保留原始信息的意思
-r # 复制目录
例子:
[root@localhost ~]# cp anaconda-ks.cfg ana.cfg
复制的话,原始文件存在,新文件也存在
1、保留原始信息
[root@localhost ~]# cp -a initial-setup-ks.cfg init.cfg
2、复制目录

[root@localhost ~]# cp -r xiaohao xiaoli

4、mv # 粘贴
例子:

[root@localhost ~]# mv ana.cfg haha.cfg

5、rm # 删除文件
-f # 删除文件
-rf # 删除目录
rm 删除是没有回收站
例子:
[root@localhost ~]# rm a.txt # 需要二次确认后删除
[root@localhost ~]# rm -f a.txt # 不需要二次确认,直接删除,但仅限于删除文本文件
[root@localhost ~]# rm -f xiaoxiao # 如果是一个目录的话,-f是提示报错,无法删除

[root@localhost ~]# rm -rf xiaoxiao # 删除目录

6、dd # 按照指定大小和个数的数据块来复制文件
参数:
if=input file(来源文件)
of=output file(哪里去输出)
bs=大小—(字节数)
count=个数
例子:
[root@localhost ~]# dd if=anaconda-ks.cfg of=hoho.cfg bs=50 count=1
[root@localhost ~]# cat hoho.cfg

[root@localhost ~]# dd if=anaconda-ks.cfg of=hoho.cfg bs=50 count=2
[root@localhost ~]# cat hoho.cfg

[root@localhost ~]# dd if=anaconda-ks.cfg of=hoho.cfg bs=250 count=1

[root@localhost ~]# cat hoho.cfg

7、file # 查看文件类型
例子:
[root@localhost ~]# file hoho.cfg
hoho.cfg: ASCII text # 文本文件

[root@localhost ~]# file xiaoxiao # 这是一个目录
xiaoxiao: directory

[root@localhost ~]# file /dev/sda # 这是一个块设备

/dev/sda: block special

复习:第2章节
5月11日 第3章节和第2章节的收尾2.8小结—-第4节课
5月12日 第4章节—-第5节课

5月13日 第5章节—-第6节课

Comments are closed, but trackbacks and pingbacks are open.