简介 本篇博客是自己学习Linux shell命令做的笔记,供自己使用及给位大佬同行参考。
帮助命令
语法:
man [命令或配置文件] (功能描述:获得帮助信息)
[lqs@hadoop102 ~]$ man cd
显示如下内容
问见目录相关操作
1、pwd 显示当前工作目录的绝对路径
[lqs@hadoop102 module]$ pwd
/home/lqs/module
2、 ls 列出目录的内容
语法
ls [选项] [目录或是文件]
[lqs@hadoop102 module]$ ls
applog flume hive kylin sqoop
azkaban hadoop-3.1.3 jdk1.8.0_212 presto yanagishima-18.0
db_log hbase-1.3.1 kafka spark zookeeper-3.4.10
[lqs@hadoop102 module]$ ls -a
. azkaban hadoop-3.1.3 jdk1.8.0_212 presto yanagishima-18.0
.. db_log hbase-1.3.1 kafka spark zookeeper-3.4.10
applog flume hive kylin sqoop
[lqs@hadoop102 module]$ ls -al
总用量 12
drwxr-xr-x. 17 lqs lqs 247 12月 3 19:47 .
drwx------. 27 lqs lqs 4096 12月 3 20:29 ..
drwxrwxr-x. 3 lqs lqs 117 11月 26 23:37 applog
drwxrwxr-x. 5 lqs lqs 70 11月 29 20:51 azkaban
drwxrwxr-x. 2 lqs lqs 76 11月 27 21:35 db_log
drwxrwxr-x. 7 lqs lqs 232 11月 26 19:36 flume
drwxr-xr-x. 13 lqs lqs 204 11月 18 13:08 hadoop-3.1.3
drwxrwxr-x. 8 lqs lqs 172 11月 18 16:30 hbase-1.3.1
drwxrwxr-x. 9 lqs lqs 153 11月 27 08:58 hive
drwxr-xr-x. 7 lqs lqs 245 4月 2 2019 jdk1.8.0_212
drwxr-xr-x. 7 lqs lqs 101 11月 18 15:27 kafka
drwxr-xr-x. 10 lqs lqs 188 12月 3 19:51 kylin
drwxr-xr-x. 7 lqs lqs 127 11月 30 23:37 presto
drwxr-xr-x. 13 lqs lqs 211 6月 6 2020 spark
drwxr-xr-x. 9 lqs lqs 4096 4月 27 2015 sqoop
drwxr-xr-x. 8 lqs lqs 131 11月 30 23:43 yanagishima-18.0
drwxr-xr-x. 11 lqs lqs 4096 12月 2 23:25 zookeeper-3.4.10
s -al 可以简写成ll,他们的效果一样
[lqs@hadoop102 module]$ ll
总用量 8
drwxrwxr-x. 3 lqs lqs 117 11月 26 23:37 applog
drwxrwxr-x. 5 lqs lqs 70 11月 29 20:51 azkaban
drwxrwxr-x. 2 lqs lqs 76 11月 27 21:35 db_log
drwxrwxr-x. 7 lqs lqs 232 11月 26 19:36 flume
drwxr-xr-x. 13 lqs lqs 204 11月 18 13:08 hadoop-3.1.3
drwxrwxr-x. 8 lqs lqs 172 11月 18 16:30 hbase-1.3.1
drwxrwxr-x. 9 lqs lqs 153 11月 27 08:58 hive
drwxr-xr-x. 7 lqs lqs 245 4月 2 2019 jdk1.8.0_212
drwxr-xr-x. 7 lqs lqs 101 11月 18 15:27 kafka
drwxr-xr-x. 10 lqs lqs 188 12月 3 19:51 kylin
drwxr-xr-x. 7 lqs lqs 127 11月 30 23:37 presto
drwxr-xr-x. 13 lqs lqs 211 6月 6 2020 spark
drwxr-xr-x. 9 lqs lqs 4096 4月 27 2015 sqoop
drwxr-xr-x. 8 lqs lqs 131 11月 30 23:43 yanagishima-18.0
drwxr-xr-x. 11 lqs lqs 4096 12月 2 23:25 zookeeper-3.4.10
3、cd 切换目录
语法
cd [参数]
说明如下:
参数 | 功能 |
---|
cd 绝对路径 | 切换路径,除了从“/”开始的外,其它形式都为相对路径 | cd相对路径 | 切换路径 | cd ~或者cd | 回到自己的家目录 | cd - | 回到上一次所在目录 | cd … | 回到当前目录的上一级目录 | cd -P | 跳转到实际物理路径,而非快捷方式路径 |
[lqs@hadoop102 ~]$ cd /home/lqs/software/
[lqs@hadoop102 software]$
[lqs@hadoop102 software]$ cd ..
[lqs@hadoop102 ~]$
[lqs@hadoop102 software]$ cd ~
[lqs@hadoop102 ~]$
[lqs@hadoop102 ~]$ cd -
/home/lqs/software
[lqs@hadoop102 software]$
[lqs@hadoop102 software]$ cd ..
[lqs@hadoop102 ~]$
4、mkdir 创建一个新的目录
[lqs@hadoop102 ~]$ mkdir home1
[lqs@hadoop102 ~]$ mkdir -p /test/test1/test2
5、rmdir 删除一个空的目录
[lqs@hadoop102 ~]$ mkdir -p /test/test1/test2
6、touch 创建空文件
[lqs@hadoop102 ~]$ touch lqs.txt
7、cp 复制文件或目录
[lqs@hadoop102 ~]$ cp /home/lqs/lqs.txt /home
[lqs@hadoop102 ~]$ cp /home/lqs/modeule ./
8、rm 删除文件或目录
语法
rm [选项] deleteFile
[lqs@hadoop102 ~]$ rm /home/lqs/test/test1
[lqs@hadoop102 ~]$ rm -rf /home/lqs/test
9、mv 移动文件与目录或重命名
[lqs@learn101 ~]$ mkdir -p test/test1/test2
[lqs@learn101 ~]$ ll
总用量 8
-rw-r--r--. 1 lqs lqs 1819 12月 3 12:34 profile
drwxrwxr-x. 3 lqs lqs 4096 12月 3 22:53 test
[lqs@learn101 ~]$ mv test/ TEST
[lqs@learn101 ~]$ ll
总用量 8
-rw-r--r--. 1 lqs lqs 1819 12月 3 12:34 profile
drwxrwxr-x. 3 lqs lqs 4096 12月 3 22:53 TEST
[lqs@learn101 ~]$ ll
总用量 8
-rw-r--r--. 1 lqs lqs 1819 12月 3 12:34 profile
drwxrwxr-x. 3 lqs lqs 4096 12月 3 22:53 TEST
[lqs@learn101 ~]$ mv TEST/test1/test2/ /home/lqs/
[lqs@learn101 ~]$ ll
总用量 12
-rw-r--r--. 1 lqs lqs 1819 12月 3 12:34 profile
drwxrwxr-x. 3 lqs lqs 4096 12月 3 22:53 TEST
drwxrwxr-x. 2 lqs lqs 4096 12月 3 22:53 test2
10、cat查看文件内容
语法
cat [选项] 要查看的文件
[lqs@learn101 ~]$ cat -n lqs.txt
11、more 文件内容分屏查看器
说明: more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键,详见操作说明(utools可以查询)。
操作说明
操作 | 说明 |
---|
空白键 (space) | 代表向下翻一页; | Enter | 代表向下翻『一行』; | q | 代表立刻离开 more ,不再显示该文件内容。 | Ctrl+F | 向下滚动一屏 | Ctrl+B | 返回上一屏 | = | 输出当前行的行号 | :f | 输出文件名和当前行的行号 |
[lqs@learn101 ~]$ more lqs.txt
test
lqs
rs
12、less 分屏显示文件内容
说明:
ess指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更强大,支持各种显示终端。less指令在显示文件内容时,
并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率
语法
less 要查看的文件
操作说明
操作 | 说明 |
---|
空白键 | 向下翻动一页; | [pagedown] | 向下翻动一页 | [pageup] | 向上翻动一页; | /字串 | 向下搜寻『字串』的功能;n:向下查找;N:向上查找; | ?字串 | 向上搜寻『字串』的功能;n:向上查找;N:向下查找; | q | 离开 less 这个程序; |
[lqs@learn101 ~]$ less lqs.txt
13、head 显示文件头部内容
说明:
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容。
基本语法
head 文件 (功能描述:查看文件头10行内容)
head -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)
[lqs@learn101 ~]$ head -n 1 lqs.txt
test
[lqs@learn101 ~]$ head -n 2 lqs.txt
test
lqs
[lqs@learn101 ~]$ head -n 2 lqs.txt
test
lqs
[lqs@learn101 ~]$ head lqs.txt
test
lqs
rs
test
lqs
rs
test
lqs
rs
test
[lqs@learn101 ~]$ head -n 12 lqs.txt
test
lqs
rs
test
lqs
rs
test
lqs
rs
test
lqs
rs
14、tail 输出文件尾部内容
说明
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容
语法
tail 文件 (功能描述:查看文件尾部10行内容)
tail -n 5 文件 (功能描述:查看文件尾部5行内容,5可以是任意行数)
tail -f 文件 (功能描述:实时追踪该文档的所有更新)
[lqs@learn101 ~]$ tail -n 1 lqs.txt
[lqs@learn101 ~]$ tail -f lqs.txt
15、echo
[lqs@learn101 ~]$ echo "hello\tworld"
hello\tworld
[lqs@learn101 ~]$ echo -e "hello\tworld"
hello world
[lqs@learn101 ~]$ echo -e "hello\nworld"
hello
world
[lqs@learn101 ~]$ echo -e "hello\\nworld"
hello
world
[lqs@learn101 ~]$ echo -e "hello\\world"
hello\world
[lqs@learn101 ~]$ echo "hello\\world"
hello\world
16 、> 输出重定向和 >> 追加
[lqs@learn101 ~]$ ls -l >houge.txt
[lqs@learn101 ~]$ ls -al >>houge.txt
[lqs@learn101 ~]$ echo hello>>houge.txt
[lqs@learn101 ~]$ ll
总用量 16
-rw-rw-r--. 1 lqs lqs 27 12月 3 23:47 lqs.txt
-rw-r--r--. 1 lqs lqs 1819 12月 3 12:34 profile
[lqs@learn101 ~]$ cat lqs.txt>lqs1.txt
[lqs@learn101 ~]$ ll
总用量 20
-rw-rw-r--. 1 lqs lqs 27 12月 3 23:51 lqs1.txt
-rw-rw-r--. 1 lqs lqs 27 12月 3 23:47 lqs.txt
-rw-r--r--. 1 lqs lqs 1819 12月 3 12:34 profile
[lqs@learn101 ~]$
17、ln 软链接
说明
软链接也成为符号链接,类似于windows里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径
[lqs@learn101 ~]$ ln -s test2/lqs.txt ./lqs
[lqs@learn101 ~]$ ll
总用量 16
lrwxrwxrwx. 1 lqs lqs 13 12月 4 08:36 lqs -> test2/lqs.txt
drwxrwxr-x. 2 lqs lqs 4096 12月 4 08:35 test2
[lqs@learn101 ~]$ rm -rf lqs
[lqs@learn101 ~]$ cd TEST/
[lqs@learn101 TEST]$ ll
总用量 4
drwxrwxr-x. 2 lqs lqs 4096 12月 3 22:55 test1
[lqs@learn101 TEST]$ cd test1/
[lqs@learn101 test1]$ ll
总用量 0
[lqs@learn101 test1]$ cd ..
[lqs@learn101 TEST]$ cd ..
[lqs@learn101 ~]$ ln -s TEST/test1/ ./test2
[lqs@learn101 ~]$ ll
总用量 16
-rw-rw-r--. 1 lqs lqs 27 12月 3 23:51 lqs1.txt
drwxrwxr-x. 2 lqs lqs 4096 12月 4 08:39 test2
[lqs@learn101 ~]$ cd test2/
[lqs@learn101 test2]$ ll
总用量 4
-rw-rw-r--. 1 lqs lqs 27 12月 3 23:47 lqs.txt
lrwxrwxrwx. 1 lqs lqs 11 12月 4 08:39 test1 -> TEST/test1/
18、history 查看已经执行过历史命令
[lqs@learn101 ~]$ history
时间日期类
date 显示当前时间
命令 | 描述 |
---|
date | 显示当前时间 | date +%Y | 显示当前年份 | date +%m | 显示当前月份 | date +%d | 显示当前是哪一天 | date “+%Y-%m-%d %H:%M:%S” | 显示年月日时分秒 |
[lqs@learn101 test2]$ date
2021年 12月 04日 星期六 10:00:56 CST
[lqs@learn101 test2]$ date +%Y
2021
[lqs@learn101 test2]$ date +%m
12
[lqs@learn101 test2]$ date +d
d
[lqs@learn101 test2]$ date +%d
04
[lqs@learn101 test2]$ date "+%Y-%m-%d %H:%M:%S"
2021-12-04 10:02:31
[lqs@learn101 test2]$ date +"%F %T"
2021-12-04 10:06:27
[lqs@learn101 test2]$ date -d '1 days ago'
2021年 12月 03日 星期五 10:07:21 CST
[lqs@learn101 test2]$ date -d '-1 days ago'
2021年 12月 05日 星期日 10:07:39 CST
[lqs@learn101 test2]$ cal
十二月 2021
日 一 二 三 四 五 六
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
[lqs@learn101 test2]$ cal 2021
2021
一月 二月 三月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 1 2 3 4 5 6 1 2 3 4 5 6
3 4 5 6 7 8 9 7 8 9 10 11 12 13 7 8 9 10 11 12 13
10 11 12 13 14 15 16 14 15 16 17 18 19 20 14 15 16 17 18 19 20
17 18 19 20 21 22 23 21 22 23 24 25 26 27 21 22 23 24 25 26 27
24 25 26 27 28 29 30 28 28 29 30 31
31
四月 五月 六月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 3 1 1 2 3 4 5
4 5 6 7 8 9 10 2 3 4 5 6 7 8 6 7 8 9 10 11 12
11 12 13 14 15 16 17 9 10 11 12 13 14 15 13 14 15 16 17 18 19
18 19 20 21 22 23 24 16 17 18 19 20 21 22 20 21 22 23 24 25 26
25 26 27 28 29 30 23 24 25 26 27 28 29 27 28 29 30
30 31
七月 八月 九月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 3 1 2 3 4 5 6 7 1 2 3 4
4 5 6 7 8 9 10 8 9 10 11 12 13 14 5 6 7 8 9 10 11
11 12 13 14 15 16 17 15 16 17 18 19 20 21 12 13 14 15 16 17 18
18 19 20 21 22 23 24 22 23 24 25 26 27 28 19 20 21 22 23 24 25
25 26 27 28 29 30 31 29 30 31 26 27 28 29 30
十月 十一月 十二月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 1 2 3 4 5 6 1 2 3 4
3 4 5 6 7 8 9 7 8 9 10 11 12 13 5 6 7 8 9 10 11
10 11 12 13 14 15 16 14 15 16 17 18 19 20 12 13 14 15 16 17 18
17 18 19 20 21 22 23 21 22 23 24 25 26 27 19 20 21 22 23 24 25
24 25 26 27 28 29 30 28 29 30 26 27 28 29 30 31
[lqs@learn101 test2]$ date -s "2017-06-19 20:52:18"
用户管理命令
1、 useradd 添加新用户
语法
useradd 用户名 (功能描述:添加新用户)
useradd -g 组名 用户名 (功能描述:添加新用户到某个组)
[root@learn101 home]
[root@learn101 home]
总用量 8
drwx------. 4 lqs lqs 4096 12月 4 08:37 lqs
drwx------. 2 yangguo yangguo 4096 12月 4 10:36 yangguo
[root@learn101 home]
2、passwd 设置用户密码
[root@learn101 home]
更改用户 yangguo 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
3、id 查看用户是否存在
[root@learn101 home]
uid=1001(yangguo) gid=1001(yangguo) 组=1001(yangguo)
[root@learn101 home]
id: xln: no such user
4、cat /etc/passwd 查看创建了哪些用户
[root@learn101 home]
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
......
lqs:x:1000:1000:lqs:/home/lqs:/bin/bash
yangguo:x:1001:1001::/home/yangguo:/bin/bash
5、su 切换用户
[root@learn101 home]
上一次登录:六 12月 4 08:25:13 CST 2021从 192.168.10.15pts/0 上
[lqs@learn101 ~]$ su
密码:
su 用户名,切换用户只获得用户执行权限并没有获得相应的环境变量执行权限
[root@learn101 lqs]
6、userdel 删除用户
[root@learn101 home]
drwx------. 4 lqs lqs 4096 12月 4 10:54 lqs
drwx------. 2 yangguo yangguo 4096 12月 4 10:36 yangguo
[root@learn101 home]
[root@learn101 home]
总用量 4
drwx------. 4 lqs lqs 4096 12月 4 10:54 lqs
[root@learn101 home]
7、who 查看登录用户信息
[root@learn101 lqs]
root
[root@learn101 lqs]
lqs pts/0 2021-12-04 08:25 (192.168.10.15)
8、sudo 设置普通用户具有root权限(这个权限是临时的)
[root@learn101 home]
[root@learn101 home]
更改用户 xln 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新
[root@learn101 home]
修改内容和位置
9、usermod 修改用户
[root@learn101 home]
总用量 8
drwx------. 4 lqs lqs 4096 12月 4 10:54 lqs
drwx------. 2 yangguo yangguo 4096 12月 4 10:36 yangguo
[root@learn101 home]
[root@learn101 home]
总用量 8
drwx------. 4 lqs lqs 4096 12月 4 10:54 lqs
drwx------. 2 xln yangguo 4096 12月 4 10:36 yangguo
[root@learn101 home]
[root@learn101 home]
总用量 8
drwx------. 4 lqs lqs 4096 12月 4 10:54 lqs
drwx------. 2 yangguo yangguo 4096 12月 4 10:36 yangguo
[root@learn101 home]
[root@learn101 home]
总用量 8
drwx------. 4 lqs lqs 4096 12月 4 10:54 lqs
drwx------. 2 yangguo yangguo 4096 12月 4 10:36 xln
用户组管理命令
在Linux系统中,每个用户都有一个用户组,Linux系统可以对一个用户组中所有用户进行集中的管理。不同Linux 系统对用户组的规定有所不同,例如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。 用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
1、groupadd 新增组
[lqs@learn101 ~]$ groupadd lqs
2、groupdel 删除组
[lqs@learn101 ~]$ groupdel lqs
3、groupmod 修改组
[lqs@learn101 ~]$ groupmod -n qsl lqs
4、usermod 修改用户组
[lqs@learn101 ~]$ groupmod -g qsl lqs
5、cat /etc/group 查看创建了哪些组
[lqs@learn101 ~]$ cat /etc/group
root:x:0:
bin:x:1:
......
lqs:x:1000:lqs
xln:x:1001:
[lqs@learn101 ~]$
文件权限类
1、文件属性
类型 权限 权限 权限
0 1 2 3 4 5 6 7 8 9
d r w x r w - - w x
目录 文件 读 写 执行 读 写 执行 读 写 执行
注意:-代表没有权限(0位代表为文件)
0首位表示类型
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等
- 代表文件
d 代表目录
l 链接文档(link file);
第1-3位确定文件所有者对该文件的权限。---User
第4-6位确定文件所有者所在组的组员对该文件的权限,---Group
第7-9位确定除了所有者和所有者同组的组员外的其它用户对该文件的权限 ---Other
rxw作用文件和目录的不同解释
作用到文件:
[ r ]代表可读(read): 可以读取,查看
[ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
[ x ]代表可执行(execute):可以被系统执行
作用到目录:
[ r ]代表可读(read): 可以读取,ls查看目录内容
[ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
[ x ]代表可执行(execute):可以进入该目录
2、chmod 改变权限
文件类型 u g o
类型 权限 权限 权限
0 1 2 3 4 5 6 7 8 9
d r w x r w - - w x
目录 文件 读 写 执行 读 写 执行 读 写 执行
第一种方式变更权限
chmod [{ugoa}{+-=}{rwx}] 文件或目录
第二种方式变更权限
chmod [mode=421 ] [文件或目录]
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和) r=4 w=2 x=1 rwx=4+2+1=7
[root@learn101 lqs]
-rw-r--r--. 1 lqs lqs 1819 12月 3 12:34 profile
[root@learn101 lqs]
[root@learn101 lqs]
-rwxr--r--. 1 lqs lqs 1819 12月 3 12:34 profile
[lqs@learn101 ~]$ chmod u-x profile
[lqs@learn101 ~]$ ll
-rw-r--r--. 1 lqs lqs 1819 12月 3 12:34 profile
[lqs@learn101 ~]$ chmod g+x profile
[lqs@learn101 ~]$ ll
-rw-r-xr--. 1 lqs lqs 1819 12月 3 12:34 profile
[lqs@learn101 ~]$ chmod u+x,o+x profile
[lqs@learn101 ~]$ ll
-rwxr-xr-x. 1 lqs lqs 1819 12月 3 12:34 profile
[lqs@learn101 ~]$ chmod u-x,g-x,o-x profile
[lqs@learn101 ~]$ ll
-rw-r--r--. 1 lqs lqs 1819 12月 3 12:34 profile
[lqs@learn101 ~]$ chmod 777 profile
[lqs@learn101 ~]$ ll
-rwxrwxrwx. 1 lqs lqs 1819 12月 3 12:34 profile
[lqs@learn101 ~]$ chmod -R 777 profile
3、chown 改变所有者
[root@learn101 ~]
drwxr-xr-x. 2 root root 4096 12月 4 16:44 test
[root@learn101 ~]
[root@learn101 ~]
drwxr-xr-x. 2 root lqs 4096 12月 4 16:44 test
[root@learn101 ~]
[root@learn101 ~]
drwxr-xr-x. 2 lqs lqs 4096 12月 4 16:44 test
4、chgrp 改变所属组
[root@learn101 ~]
drwxr-xr-x. 2 lqs lqs 4096 12月 4 16:44 test
[root@learn101 ~]
[root@learn101 ~]
drwxr-xr-x. 2 lqs root 4096 12月 4 16:44 test
搜索查找类
1、find 查找文件或者目录
[root@learn101 ~]
/home/lqs/TEST/test1/lqs.txt
/home/lqs/test2/lqs.txt
2、locate快速定位文件路径
[root@learn101 ~]
bash: updatedb: 未找到命令
[root@learn101 ~]
[root@learn101 ~]
[root@learn101 ~]
/home/lqs/TEST/test1/lqs.txt
/home/lqs/test2/lqs.txt
3、grep 过滤查找及“|”管道符
[root@learn101 lqs]
总用量 16
-rw-rw-r--. 1 lqs lqs 27 12月 3 23:51 lqs1.txt
-rwxrwxrwx. 1 lqs lqs 1819 12月 3 12:34 profile
drwxrwxr-x. 3 lqs lqs 4096 12月 3 22:53 TEST
drwxrwxr-x. 2 lqs lqs 4096 12月 4 08:39 test2
[root@learn101 lqs]
4:test2
压缩和解压类
1、gzip/gunzip 压缩
注意:gzip/gunzip 压缩只能压缩文件不能压缩目录且不保留原来的文件
[root@learn101 lqs]
-rw-rw-r--. 1 lqs lqs 27 12月 3 23:51 lqs1.txt
[root@learn101 lqs]
[root@learn101 lqs]
-rw-rw-r--. 1 lqs lqs 56 12月 3 23:51 lqs1.txt.gz
[root@learn101 lqs]
[root@learn101 lqs]
-rw-rw-r--. 1 lqs lqs 27 12月 3 23:51 lqs1.txt
2、zip/unzip 压缩
PS:zip 压缩命令在window/linux都通用,可以压缩目录且保留源文件
[lqs@learn101 ~]$ zip lqs.zip lqs1.txt profile TEST/
-bash: zip: 未找到命令
[lqs@learn101 ~]$ su
密码:
[root@learn101 lqs]
[lqs@learn101 ~]$ zip lqs.zip lqs1.txt profile TEST/
adding: lqs1.txt (stored 0%)
adding: profile (deflated 53%)
adding: TEST/ (stored 0%)
[lqs@learn101 ~]$ ll
-rw-rw-r--. 1 lqs lqs 1324 12月 4 19:47 lqs.zip
[lqs@learn101 ~]$ unzip lqs.zip -d ./
-bash: unzip: 未找到命令
[lqs@learn101 ~]$ sudo yum install unzip
[lqs@learn101 ~]$ unzip lqs.zip -d ./
Archive: lqs.zip
replace ./lqs1.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
extracting: ./lqs1.txt
inflating: ./profile
[lqs@learn101 ~]$ ll
-rw-rw-r--. 1 lqs lqs 27 12月 3 23:51 lqs1.txt
-rw-rw-r--. 1 lqs lqs 1324 12月 4 19:47 lqs.zip
3、tar 打包
选项(-zcvf -zxvf) | 说明() |
---|
-c | 产生.tar打包文件 | -v | 显示详细信息 | -f | 指定压缩后的文件名 | -z | 打包同时压缩 | -x | 解包.tar文件 |
[lqs@learn101 ~]$ ll
-rw-rw-r--. 1 lqs lqs 27 12月 3 23:51 lqs1.txt
-rwxrwxrwx. 1 lqs lqs 1819 12月 3 12:34 profile
drwxrwxr-x. 3 lqs lqs 4096 12月 3 22:53 TEST
drwxrwxr-x. 2 lqs lqs 4096 12月 4 08:39 test2
[lqs@learn101 ~]$ tar -zcvf lqs.tar.gz lqs1.txt profile
lqs1.txt
profile
[lqs@learn101 ~]$ ll
总用量 20
-rw-rw-r--. 1 lqs lqs 27 12月 3 23:51 lqs1.txt
-rw-rw-r--. 1 lqs lqs 1029 12月 4 19:52 lqs.tar.gz
-rwxrwxrwx. 1 lqs lqs 1819 12月 3 12:34 profile
drwxrwxr-x. 3 lqs lqs 4096 12月 3 22:53 TEST
drwxrwxr-x. 2 lqs lqs 4096 12月 4 08:39 test2
[lqs@learn101 ~]$ tar -zxvf lqs.tar.gz -C ./
lqs1.txt
profile
[lqs@learn101 ~]$ ll
总用量 20
-rw-rw-r--. 1 lqs lqs 27 12月 3 23:51 lqs1.txt
-rw-rw-r--. 1 lqs lqs 1029 12月 4 19:52 lqs.tar.gz
-rwxrwxr-x. 1 lqs lqs 1819 12月 3 12:34 profile
磁盘分区类
1、df 查看磁盘空间使用情况
[lqs@learn101 ~]$ df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 45G 1.4G 41G 4% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 976M 104M 806M 12% /boot
tmpfs 378M 0 378M 0% /run/user/1000
2、du 文件和目录的磁盘使用空间
[lqs@learn101 TEST]$ cd ..
[lqs@learn101 ~]$ du TEST/
4 TEST/test1
12 TEST/
[lqs@learn101 ~]$ du -a TEST/
4 TEST/test.txt
0 TEST/test1/lqs.txt
4 TEST/test1
12 TEST/
3、fdisk 查看分区
Linux分区说明
Device:分区序列
Boot:引导
Start:从X磁柱开始
End:到Y磁柱结束
Blocks:容量
Id:分区类型ID
System:分区类型
[lqs@learn101 ~]$ sudo fdisk -l
[sudo] lqs 的密码:
磁盘 /dev/sda:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000bf1ea
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 96468991 47184896 83 Linux
/dev/sda3 96468992 104857599 4194304 82 Linux swap / Solaris
4、lsblk 查看设备挂载情况
语法
mount [-t vfstype] [-o options] device dir 作用:挂载设备
umount 设备文件名或挂载点 作用:卸载设备
-t vfstype 功能:
指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:
光盘或光盘镜像:iso9660
DOS fat16文件系统:msdos
Windows 9x fat32文件系统:vfat
Windows NT ntfs文件系统:ntfs
Mount Windows文件网络共享:smbfs
UNIX(LINUX) 文件网络共享:nfs
-o options 功能:
主要用来描述设备或档案的挂接方式。常用的参数有:
loop:用来把一个文件当成硬盘分区挂接上系统
ro:采用只读方式挂接设备
rw:采用读写方式挂接设备
iocharset:指定访问文件系统所用字符集
device 功能:
要挂接(mount)的设备
dir 功能:
设备在系统上的挂接点(mount point)
[lqs@learn101 ~]
[lqs@learn101 ~]
[lqs@learn101 ~]
[lqs@learn101 ~]
进程线程类
1 ps 查看当前系统进程状态
语法:
ps -aux | grep xxx 作用:查看系统中所有进程
ps -ef | grep xxx 作用:可以查看子父进程之间的关系
选项说明:
选项 | 功能 |
---|
-a | 选择所有进程 | -u | 显示所有用户的所有进程 | -x | 显示没有终端的进程 |
ps-aux显示信息说明
USER:该进程是由哪个用户产生的 PID:进程的ID号 %CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源; %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
VSZ:该进程占用虚拟内存的大小,单位KB; RSS:该进程占用实际物理内存的大小,单位KB; TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。 STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台 START:该进程的启动时间 TIME:该进程占用CPU的运算时间,注意不是系统时间 COMMAND:产生此进程的命令名
ps -ef显示信息说明 UID:用户ID PID:进程ID PPID:父进程ID C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高 STIME:进程启动的时间 TTY:完整的终端名称 TIME:CPU时间 CMD:启动进程所用的命令和参数
[lqs@learn101 ~]$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 193704 6900 ? Ss 10:13 0:14 /usr/lib/systemd/systemd --switched-root --s
root 2 0.0 0.0 0 0 ? S 10:13 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 10:13 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 10:13 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S 10:13 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 10:13 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S 10:13 0:07 [rcu_sched]
root 10 0.0 0.0 0 0 ? S< 10:13 0:00 [lru-add-drain]
......
[lqs@learn101 ~]$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 10:13 ? 00:00:14 /usr/lib/systemd/systemd --switched-root --system --deserial
root 2 0 0 10:13 ? 00:00:00 [kthreadd]
root 3 2 0 10:13 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 10:13 ? 00:00:00 [kworker/0:0H]
root 7 2 0 10:13 ? 00:00:00 [migration/0]
root 8 2 0 10:13 ? 00:00:00 [rcu_bh]
root 9 2 0 10:13 ? 00:00:07 [rcu_sched]
root 10 2 0 10:13 ? 00:00:00 [lru-add-drain]
root 11 2 0 10:13 ? 00:00:00 [watchdog/0]
root 12 2 0 10:13 ? 00:00:00 [watchdog/1]
root 13 2 0 10:13 ? 00:00:00 [migration/1]
root 14 2 0 10:13 ? 00:00:00 [ksoftirqd/1]
root 16 2 0 10:13 ? 00:00:00 [kworker/1:0H]
......
2、kill 终止进程
[lqs@learn101 ~]$ kill -9 11161
[lqs@learn101 ~]$ killall jps
3、pstree 查看进程树
[root@learn101 lqs]
bash: pstree: 未找到命令
[root@learn101 lqs]
[lqs@learn101 ~]$ pstree -p
systemd(1)─┬─NetworkManager(610)─┬─{NetworkManager}(630)
│ └─{NetworkManager}(635)
├─VGAuthService(596)
├─agetty(618)
├─auditd(565)───{auditd}(566)
├─chronyd(603)
├─crond(613)
├─dbus-daemon(600)───{dbus-daemon}(609)
├─irqbalance(590)
├─master(1080)─┬─pickup(13283)
│ └─qmgr(1088)
├─polkitd(592)─┬─{polkitd}(620)
│ ├─{polkitd}(621)
│ ├─{polkitd}(624)
│ ├─{polkitd}(625)
│ └─{polkitd}(626)
├─rsyslogd(859)─┬─{rsyslogd}(917)
│ └─{rsyslogd}(927)
├─sshd(855)───sshd(7268)───sshd(7273)───bash(7274)───pstree(13493)
├─systemd-journal(399)
├─systemd-logind(599)
├─systemd-udevd(433)
├─tuned(856)─┬─{tuned}(1297)
│ ├─{tuned}(1298)
│ ├─{tuned}(1299)
│ └─{tuned}(1312)
└─vmtoolsd(597)───{vmtoolsd}(632)
[lqs@learn101 ~]$ pstree -u
systemd─┬─NetworkManager───2*[{NetworkManager}]
├─VGAuthService
├─agetty
├─auditd───{auditd}
├─chronyd(chrony)
├─crond
├─dbus-daemon(dbus)───{dbus-daemon}
├─irqbalance
├─master─┬─pickup(postfix)
│ └─qmgr(postfix)
├─polkitd(polkitd)───5*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─sshd───sshd───sshd(lqs)───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
└─vmtoolsd───{vmtoolsd}
4、top 查看系统健康状态
命令
top [选项]
选项解释:
选项 | 解释 |
---|
-d | 秒数 指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令: | -i | 使top不显示任何闲置或者僵死进程。 | -p | 通过指定监控进程ID来仅仅监控某个进程的状态。 |
操作说明(键盘字母输入)
操作 | 功能 |
---|
P | 以CPU使用率排序,默认就是此项 | M | 以内存的使用率排序 | N | 以PID排序 | q | 退出top |
[lqs@learn101 ~]$ top -d 1
top - 21:53:31 up 11:40, 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 : 3863568 total, 3134704 free, 114556 used, 614308 buff/cache
KiB Swap: 4194300 total, 4194300 free, 0 used. 3454196 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 193704 6900 4108 S 0.0 0.2 0:15.13 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.02 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
[lqs@learn101 ~]$ top -i
top - 21:58:02 up 11:45, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3863568 total, 3134952 free, 114308 used, 614308 buff/cache
KiB Swap: 4194300 total, 4194300 free, 0 used. 3454444 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
22 root rt 0 0 0 0 S 0.3 0.0 0:00.18 watchdog/3
lqs@learn101 ~]$ top -p 7273
top - 21:58:54 up 11:45, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3863568 total, 3135104 free, 114308 used, 614156 buff/cache
KiB Swap: 4194300 total, 4194300 free, 0 used. 3454596 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7273 lqs 20 0 158800 2456 1084 S 0.0 0.1 0:00.21 sshd
5、netstat 显示网络统计信息和端口占用情况
语法:
netstat -anp |grep 进程号 作用:查看该进程网络信息
netstat -nlp | grep 端口号 作用:查看网络端口号占用情况
选项解释
选项 | 解释 |
---|
-n | 拒绝显示别名,能显示数字的全部转化成数字 | -l | 仅列出有在listen(监听)的服务状态 | -p | 显示哪个进程在调用 |
[root@learn101 lqs]
bash: netstat: 未找到命令
[root@learn101 lqs]
[lqs@learn101 ~]$ netstat -anp | grep ps
(No info could be read for "-p": geteuid()=1000 but you should be root.)
unix 2 [ ] DGRAM 1419 - /run/systemd/cgroups-agent
[root@learn101 lqs]
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 855/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1080/master
tcp6 0 0 :::22 :::* LISTEN 855/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1080/master
udp 0 0 127.0.0.1:323 0.0.0.0:* 603/chronyd
udp6 0 0 ::1:323 :::* 603/chronyd
raw6 0 0 :::58 :::* 7 610/NetworkManager
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ACC ] STREAM LISTENING 15400 1/systemd /run/systemd/private
......
unix 2 [ ACC ] SEQPACKET LISTENING 15453 1/systemd /run/udev/control
unix 2 [ ACC ] STREAM LISTENING 10871 1/systemd /run/dbus/system_bus_socket
unix 2 [ ACC ] STREAM LISTENING 1427 1/systemd /run/systemd/journal/stdout
[root@learn101 lqs]
unix 2 [ ACC ] SEQPACKET LISTENING 15453 1/systemd /run/udev/control
RPM
1、 RPM查询命令(rpm -qa)
[root@learn101 lqs]
net-tools-2.0-0.25.20131004git.el7.x86_64
2、RPM卸载命令(rpm -e)
[root@learn101 lqs]
[root@learn101 lqs]
3、RPM安装命令(rpm -ivh)
语法
rpm -ivh RPM包全名
选项解释
选项 | 解释 |
---|
-i | -i=install,安装 | -v | -v=verbose,显示详细信息 | -h | -h=hash,进度条 | –nodeps | –nodeps,不检测依赖进度 |
[root@learn101 lqs]
补充内容
企业真实面试题
百度&考满分
问题:Linux常用命令
参考答案:find、df、tar、ps、top、netstat等。(尽量说一些高级命令)
瓜子二手车
问题:Linux查看内存、磁盘存储、io 读写、端口占用、进程等命令
参考答案:
1、查看内存:top
2、查看磁盘存储情况:df -h
3、查 看磁盘IO读写情况:iotop(需要安装一下:yum install iotop)、iotop -o(直接查看输出比较高的磁盘读写程序)
4、查看端口占用情况:netstat -tunlp | grep 端口号
5、查看进程:ps -aux
|