Linux常用基础操作命令


简介
本篇博客是自己学习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 ~]$ #回车后的结果

#cd - 回到上一次所在目录
[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 删除一个空的目录

#删除空文件test2
[lqs@hadoop102 ~]$ mkdir -p /test/test1/test2

6、touch 创建空文件

#创建lqs.txt的空文件在lqs(~)下
[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

#递归强制删除目录中的所有内容
#-r 递归删除;-f强制删除
[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.txt文件
[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  文件		(功能描述:实时追踪该文档的所有更新)
# 输出文件尾部n行内容
[lqs@learn101 ~]$ tail -n 1 lqs.txt 

# -f 显示文件最新追加的内容,监视文件变化
[lqs@learn101 ~]$ tail -f lqs.txt 

15、echo

#echo输出内容到控制台
[lqs@learn101 ~]$ echo "hello\tworld"
hello\tworld

# -e:支持反斜线控制的字符转换
[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 、> 输出重定向和 >> 追加

#将ls查看信息写入到文件中,覆盖写
[lqs@learn101 ~]$ ls -l >houge.txt

#将ls查看信息追加到文件中
[lqs@learn101 ~]$ ls -al >>houge.txt

#采用echo将hello单词追加到文件中
[lqs@learn101 ~]$ echo hello>>houge.txt

#将lqs.txt文件追加到lqs1.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

#删除软连接,rm -rf lqs/ 这样式不能删除的
[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 组名 用户名	(功能描述:添加新用户到某个组)
#添加用户yangguo
[root@learn101 home]# useradd yangguo
[root@learn101 home]# ll
总用量 8
drwx------. 4 lqs     lqs     4096 12月  4 08:37 lqs
drwx------. 2 yangguo yangguo 4096 12月  4 10:36 yangguo

#添加用户yangguo到yangguo组 useradd -g 用户组组名 用户名
[root@learn101 home]# useradd -g yangguo yangguo
2、passwd 设置用户密码
[root@learn101 home]# passwd yangguo
更改用户 yangguo 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
3、id 查看用户是否存在
#查看用户杨过是否存在
[root@learn101 home]# id yangguo
uid=1001(yangguo) gid=1001(yangguo) 组=1001(yangguo)

#查看用户xln是否存在
[root@learn101 home]# id xln
id: xln: no such user
4、cat /etc/passwd 查看创建了哪些用户
#查看有哪些用户
[root@learn101 home]# cat /etc/passwd
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 切换用户
#su - 用户名,切换用户并获得相应的用户执行权限和环境变量执行权限
[root@learn101 home]# su - lqs
上一次登录:六 12月  4 08:25:13 CST 2021从 192.168.10.15pts/0 上
[lqs@learn101 ~]$ su 
密码:
su 用户名,切换用户只获得用户执行权限并没有获得相应的环境变量执行权限
[root@learn101 lqs]# su lqs

6、userdel 删除用户
#删除用户和用户组信息
[root@learn101 home]# ll
drwx------. 4 lqs     lqs     4096 12月  4 10:54 lqs
drwx------. 2 yangguo yangguo 4096 12月  4 10:36 yangguo
[root@learn101 home]# userdel -rf yangguo
[root@learn101 home]# ll
总用量 4
drwx------. 4 lqs lqs 4096 12月  4 10:54 lqs

#值删除用户信息
[root@learn101 home]# useradd yangguo

7、who 查看登录用户信息
#查看当前登录的是哪个用户
[root@learn101 lqs]# whoami
root

#查看一开始(最原始)登录的是哪个用户
[root@learn101 lqs]# who am i
lqs      pts/0        2021-12-04 08:25 (192.168.10.15)
8、sudo 设置普通用户具有root权限(这个权限是临时的)
#添加lqs用户,并对其设置密码
[root@learn101 home]# useradd lqs
[root@learn101 home]# passwd lqs
更改用户 xln 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新

#修改配置文件,
[root@learn101 home]# vi /etc/sudoers
#修改内容和位置如下图:
#采用

在这里插入图片描述
修改内容和位置


9、usermod 修改用户
[root@learn101 home]# ll
总用量 8
drwx------. 4 lqs     lqs     4096 12月  4 10:54 lqs
drwx------. 2 yangguo yangguo 4096 12月  4 10:36 yangguo
[root@learn101 home]# usermod -l xln yangguo
[root@learn101 home]# ll
总用量 8
drwx------. 4 lqs lqs     4096 12月  4 10:54 lqs
drwx------. 2 xln yangguo 4096 12月  4 10:36 yangguo

[root@learn101 home]# usermod -l yangguo xln
[root@learn101 home]# ll
总用量 8
drwx------. 4 lqs     lqs     4096 12月  4 10:54 lqs
drwx------. 2 yangguo yangguo 4096 12月  4 10:36 yangguo

[root@learn101 home]# usermod -d xln -m yangguo
[root@learn101 home]# ll
总用量 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组
[lqs@learn101 ~]$ groupadd lqs
2、groupdel 删除组
#删除lqs组
[lqs@learn101 ~]$ groupdel lqs
3、groupmod 修改组
#修改lqs组名称为qsl
#groupmod -n 新组名 老组名
[lqs@learn101 ~]$ groupmod -n qsl lqs
4、usermod 修改用户组
#groupmod -g 组名 用户名
#-g 指定用户需要加入的用户组,需要写id
#将用户lqs切换到qsl组当中
[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]# ll
-rw-r--r--. 1 lqs lqs 1819 12月  3 12:34 profile
[root@learn101 lqs]# chmod u+x profile 
[root@learn101 lqs]# ll
-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 ~]# ll
drwxr-xr-x. 2 root root 4096 12月  4 16:44 test

#修改文件所有组
[root@learn101 ~]# chown :lqs test/
[root@learn101 ~]# ll
drwxr-xr-x. 2 root lqs  4096 12月  4 16:44 test

#修改文件所有者和所有组
[root@learn101 ~]# chown lqs:lqs test/
[root@learn101 ~]# ll
drwxr-xr-x. 2 lqs  lqs  4096 12月  4 16:44 test
4、chgrp 改变所属组
[root@learn101 ~]# ll
drwxr-xr-x. 2 lqs  lqs  4096 12月  4 16:44 test

#修改文件的所有组
[root@learn101 ~]# chgrp root test/
[root@learn101 ~]# ll
drwxr-xr-x. 2 lqs  root 4096 12月  4 16:44 test

搜索查找类

1、find 查找文件或者目录
#查找名字叫lqs.txt的文件
[root@learn101 ~]# find / -name lqs.txt
/home/lqs/TEST/test1/lqs.txt
/home/lqs/test2/lqs.txt
2、locate快速定位文件路径
[root@learn101 ~]# updatedb
bash: updatedb: 未找到命令
[root@learn101 ~]# yum install mlocate

[root@learn101 ~]# updatedb
[root@learn101 ~]# locate lqs.txt
/home/lqs/TEST/test1/lqs.txt
/home/lqs/test2/lqs.txt
3、grep 过滤查找及“|”管道符
[root@learn101 lqs]# ll
总用量 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

#查找文件test2在当前文件下的第几行
[root@learn101 lqs]# ls | grep -n test2
4:test2

压缩和解压类

1、gzip/gunzip 压缩

注意:gzip/gunzip 压缩只能压缩文件不能压缩目录且不保留原来的文件

[root@learn101 lqs]# ll
-rw-rw-r--. 1 lqs lqs   27 12月  3 23:51 lqs1.txt

#压缩文件
[root@learn101 lqs]# gzip lqs1.txt 
[root@learn101 lqs]# ll
-rw-rw-r--. 1 lqs lqs   56 12月  3 23:51 lqs1.txt.gz

#解压文件
[root@learn101 lqs]# gunzip lqs1.txt.gz 
[root@learn101 lqs]# ll
-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]# yum install zip
[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
#压缩文件lqs1.txt和profile到lqs.tar.gz中
[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.tar.gz到当前目录当中
[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/
#-a 显示当前目录下所有的文件目录和子目录大小
[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 ~]# mkdir /mnt/cdrom/						建立挂载点
[lqs@learn101 ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/	设备/dev/cdrom挂载到 挂载点 :  /mnt/cdrom中
[lqs@learn101 ~]# ll /mnt/cdrom/
#卸载光盘镜像文件
[lqs@learn101 ~]# umount /mnt/cdrom

进程线程类

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]
......

#查看进程的CPU和内存占有率
[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 终止进程
#kill -9(强制杀死进程) 11161 进程端口号
[lqs@learn101 ~]$ kill -9 11161

#通过进程名杀死进程
[lqs@learn101 ~]$ killall jps
3、pstree 查看进程树
[root@learn101 lqs]# pstree
bash: pstree: 未找到命令
[root@learn101 lqs]# yum -y install psmisc

#查看进程pid
[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

#查看当前系统所有进程,并每1秒更新一次
[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]# netstat -nlp
bash: netstat: 未找到命令
[root@learn101 lqs]#  yum -y install net-tools


#查看进程号对应的网络信息
[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]# netstat -nlp
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]# netstat -nlp | grep 15453
unix  2      [ ACC ]     SEQPACKET  LISTENING     15453    1/systemd            /run/udev/control


RPM

1、 RPM查询命令(rpm -qa)
#查看net-tools的安装情况
[root@learn101 lqs]# rpm -qa | grep net-tools
net-tools-2.0-0.25.20131004git.el7.x86_64
2、RPM卸载命令(rpm -e)
#卸载net-tools
[root@learn101 lqs]# rpm -e net-tools

#卸载net-tools,进行强行卸载,加命令--nodeps
[root@learn101 lqs]# rpm -e --nodeps net-tools
3、RPM安装命令(rpm -ivh)
语法
	rpm -ivh RPM包全名

选项解释

选项解释
-i-i=install,安装
-v-v=verbose,显示详细信息
-h-h=hash,进度条
–nodeps–nodeps,不检测依赖进度

#安装net-tools软件包
[root@learn101 lqs]# rpm -ivh net-tools-2.0-0.25.20131004git.el7.x86_64

补充内容

企业真实面试题

	百度&考满分
	问题: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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小雏菊的成长

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

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

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

打赏作者

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

抵扣说明:

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

余额充值