【Linux】Linux常用命令整理

Linux常用命令整理

文章目录


一、常用快捷键

操作描述
【ctrl】+ c结束进程
【ctrl】+ l清屏
tab提示,补全

历史命令切换:

操作描述
history列出执行过的命令
【ctrl】+ p 或 ↑向上遍历(previous)
【ctrl】+ n 或 ↓向下遍历(next)

光标移动:

操作描述
【ctrl】+ p 或 ↑光标向上移动(previous)
【ctrl】+ n 或 ↓光标向下移动(next)
【ctrl】+ b 或 ←光标向左移动(backward)
【ctrl】+ f 或 →光标向右移动(forward)
【ctrl】+ a光标移动到头部
【ctrl】+ e光标移动到尾部

删除字符:
注意:Linux下光标宽一个字符,光标盖住的字符为光标后的字符

操作描述
【ctrl】+ d 或 【backspace】删除光标后边的字符
【ctrl】+ h删除光标前边的字符
【ctrl】+ u删除光标前的所有内容
【ctrl】+ k删除光标后的所有内容

二、获取帮助信息

2.1 man获取帮助信息

man 【命令/配置文件】

信息描述
NAME命令的名称和单行描述
SYNOPSIS如何使用命令
DESCRIPTION命令功能的深入讨论
EXAMPLES使用命令的样例
SEE ALSO相关主题,通常是手册页

例:查看ls的帮助信息===>man ls

2.2 help获取shell内置命令的帮助信息

help 【命令】
一部分命令直接内嵌在shell中,在系统加载启动之后随着shell一起加载,常驻在系统内存中,这部分命令称为内置命令。
例:查看cd命令的帮助信息====>help cd

2.3 which查看指定命令所在路径

which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

[vvvcxjvvv@localhost ~]$ which ls
alias ls='ls --color=auto'
	/usr/bin/ls
[vvvcxjvvv@localhost ~]$ which cd 
/usr/bin/cd
[vvvcxjvvv@localhost ~]$ which cp
/usr/bin/cp

三、文件目录操作

Linux系统目录结构:
在这里插入图片描述
​ 1>. 根目录:
2>. /bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令。
3>. /dev: dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
4>. /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
5>. /home: 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
6>. /lib: 这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
7>. /media: linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
8>. /mnt: 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
9>. /root: 该目录为系统管理员,也称作超级权限者的用户主目录。
10>. /usr: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
​ 11>. /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
​ 12>. /lost+found: 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
​ 13>. /opt: 这是给主机额外安装软件所摆放的目录。
​ 14>. /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件。
​ 15>. /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
​ 16>. /selinux: 这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
​ 17>. /srv: 该目录存放一些服务启动之后需要提取的数据。
​ 18>. /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs.sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统种被创建。
​ 19>. /tmp:这个目录是用来存放一些临时文件的。
​ 20>. /usr/bin:系统用户使用的应用程序。
​ 21>. /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
​ 22>. /usr/src:内核源代码默认的放置目录。
​ 23>. /var: 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

3.1 cd切换路径

cd 【参数】

操作描述
cd 绝对路径/相对路径切换到指定路径
.当前目录
. .当前的上一级目录
cd . .回到当前目录上一级目录
cd切换到用户的家目录(宿主目录)(即/home/当前用户名)
cd ~切换到用户的家目录(宿主目录)(即/home/当前用户名)
cd -回到上一次所在目录(在两个临近目录之间进行切换)
cd - P跳转到实际物理路径而非快捷方式路径
[vvvcxjvvv@localhost ~]$ cd ./Desktop
[vvvcxjvvv@localhost Desktop]$ cd ~
[vvvcxjvvv@localhost ~]$ cd -
/home/vvvcxjvvv/Desktop
[vvvcxjvvv@localhost Desktop]$ cd ..
[vvvcxjvvv@localhost ~]$ pwd
/home/vvvcxjvvv
[vvvcxjvvv@localhost ~]$ cd /home/vvvcxjvvv/Desktop/cxj_data
[vvvcxjvvv@localhost cxj_data]$ 

[vvvcxjvvv@localhost cxj_data]$ 代表含义:
vvvcxjvvv:当前用户名
@:at
localhost:主机名
cxj_data:代表当前所在目录
$:表示当前用户为普通用户
#:表示当前用户为超级用户root

进入超级用户:sudo su
退出超级用户:exit

3.2 pwd获得当前工作目录的绝对路径

pwd
pwd:print working directory——打印工作目录

[vvvcxjvvv@localhost ~]$ pwd
/home/vvvcxjvvv

3.3 ls列出目录中文件内容

ls 【选项】【目录/文件】

选项描述
-aall,列出全部文件,包括隐藏文件(以.开头的文件)
-l等价于ll,列出文件及其属性、权限等数据
-R(recursive)同时列出所有子目录层
[vvvcxjvvv@localhost cxj_data]$ ls
2022-07-11 03-45-26屏幕截图.png  Linux速查备忘手册.pdf  listenTogetherDialing.wav  pdf  redis  SayHello
[vvvcxjvvv@localhost cxj_data]$ ls -l
total 932
-rw-r--r--. 1 vvvcxjvvv vvvcxjvvv  44903 Jul 11 03:45 2022-07-11 03-45-26屏幕截图.png
-rw-rw-r--. 1 vvvcxjvvv vvvcxjvvv 246149 Jul 11 03:43 Linux速查备忘手册.pdf
-rw-rw-r--. 1 vvvcxjvvv vvvcxjvvv 651160 Jul 11 04:01 listenTogetherDialing.wav
drwxr-xr-x. 2 vvvcxjvvv vvvcxjvvv    215 Jul 16 07:07 pdf
drwxrwxr-x. 2 vvvcxjvvv vvvcxjvvv   4096 Jul 11 03:55 redis
-rw-r--r--. 1 vvvcxjvvv vvvcxjvvv    449 Jul 11 20:56 SayHello

3.4 mkdir创建新目录

mkdir 【选项】 要创建的目录

选项说明
-p创建多层目录

创建一个新目录:

[vvvcxjvvv@localhost ~]$ mkdir cxj_temp

创建多层目录:

[vvvcxjvvv@localhost ~]$ mkdir -p cxj_temp2/tempfolder2

3.5 rmdir删除空目录

rmdir 要删除的空目录
删除空目录:

[vvvcxjvvv@localhost ~]$ rmdir cxj_temp2
rmdir: failed to remove ‘cxj_temp2’: Directory not empty
[vvvcxjvvv@localhost ~]$ rmdir cxj_temp2/tempfolder2
[vvvcxjvvv@localhost ~]$ rmdir cxj_temp

3.6 touch创建空文件

touch 文件名称

[vvvcxjvvv@localhost ~]$ cd ./Desktop/cxj_data
[vvvcxjvvv@localhost cxj_data]$ ls
2022-07-11 03-45-26屏幕截图.png  Linux速查备忘手册.pdf  listenTogetherDialing.wav  pdf  redis  SayHello
[vvvcxjvvv@localhost cxj_data]$ touch study.txt
[vvvcxjvvv@localhost cxj_data]$ ls
2022-07-11 03-45-26屏幕截图.png  Linux速查备忘手册.pdf  listenTogetherDialing.wav  pdf  redis  SayHello  study.txt

3.7 cp复制文件/目录

cp 【选项】 源文件/目录 目标文件/目录

[vvvcxjvvv@localhost ~]$ ls
a.out  cxj_temp  cxj_temp2  Desktop  下载  公共  图片  文档  桌面  模板  视频  音乐
[vvvcxjvvv@localhost ~]$ touch cxj_temp/study.txt
[vvvcxjvvv@localhost ~]$ cp cxj_temp/study.txt cxj_temp2
[vvvcxjvvv@localhost ~]$ cp -r cxj_temp cxj_temp2
[vvvcxjvvv@localhost ~]$ cd cxj_temp2
[vvvcxjvvv@localhost cxj_temp2]$ ls
cxj_temp  study.txt

三种情况:

  1. cp 源文件 目标文件——若目标文件存在则源文件对目标文件进行覆盖;若目标文件不存在,则创建目标文件后,将源文件复制到目标文件中。
  2. cp 源文件 目标文件目录——源文件复制到目标文件目录中
  3. cp -r 源文件目录 目标文件目录——将源文件目录递归复制到目标文件目录中(目标目录不存在创建目录)

例子:拷贝dir1目录下所有文件到dir2目录下

[vvvcxjvvv@localhost ~]$ cp dir1/* dir2

3.8 mv移动文件/目录或重命名

mv 旧文件名 新文件名——重命名

[vvvcxjvvv@localhost ~]$ cd cxj_temp
[vvvcxjvvv@localhost cxj_temp]$ ls
study.txt
[vvvcxjvvv@localhost cxj_temp]$ mv study.txt study2.txt
[vvvcxjvvv@localhost cxj_temp]$ ls
study2.txt

mv 待移动文件 目标文件夹——移动文件

[vvvcxjvvv@localhost cxj_temp]$ mv study2.txt ../cxj_temp2/
[vvvcxjvvv@localhost cxj_temp]$ cd ../cxj_temp2
[vvvcxjvvv@localhost cxj_temp2]$ ls
study2.txt

3.9 rm删除文件/目录

rm 【选项】 待删除文件

选项描述
-r递归删除文件所有内容
-fforce,不用提示来确认,强制执行删除操作
-v显示指令的详细执行过程
-i提示用户是否需要删除目录或文件

删除文件:

[vvvcxjvvv@localhost cxj_temp2]$ ls
cxj_temp  study.txt
[vvvcxjvvv@localhost cxj_temp2]$ rm study.txt
[vvvcxjvvv@localhost cxj_temp2]$ ls
cxj_temp

递归删除目录:

[vvvcxjvvv@localhost cxj_temp2]$ rm cxj_temp
rm: cannot remove ‘cxj_temp’: Is a directory
[vvvcxjvvv@localhost cxj_temp2]$ rm -rf cxj_temp
[vvvcxjvvv@localhost cxj_temp2]$ ls
[vvvcxjvvv@localhost cxj_temp2]$ 

3.10 查看文件内容

3.10.1 cat查看文件内容

cat 【选项】 待查看文件
查看文件内容,从第一行开始显示,一般用于查看较小的文件

选项描述
-n显示所有行的行号,包括空行

3.10.2 more分屏查看

more 待查看文件

操作描述
【SPACE】向下翻一页
【ENTER】向下翻一行
【ctrl】 + c 或 q退出more
【ctrl】 + F向下滚动一屏
【ctrl】 + B返回上一屏
=输出当前行的行号
:f输出文件名和当前行的行号

3.10.3 less分屏查看

less 待查看文件

操作描述
【SPACE】向下翻一页
【ENTER】向下翻一行
【pagedown】向下翻一页
【pagedown】向上翻一页
q退出less
ctrl+p 或 ↑滚动到上一行
ctrl+n 或 ↓滚动到下一行
/word向下查找word字符串;n:向下查找;N:向上查找
?word向上查找word字符串;n:向上查找;N:向下查找

3.10.4 head显示文件头部内容

head 【选项】 文件
显示文件开头部分内容,默认情况显示10行

选项描述
-n<行数>指定显示头部内容行数

3.10.5 tail输出文件尾部内容

tail【选项】 文件
显示文件尾部内容,默认情况显示最后10行

选项描述
-n<行数>指定显示头部内容行数
-f显示文件最新追加的内容,监视文件变化

3.11 echo输出内容至控制台

echo 【选项】 【输出内容】

选项描述
-e支持反斜杠控制的字符转换
转义字符描述
\\
\n换行符
\t制表符tab
[vvvcxjvvv@localhost cxj_temp2]$ echo "Hello\tWorld"
Hello\tWorld
[vvvcxjvvv@localhost cxj_temp2]$ echo -e "Hello\tWordl"
Hello	Wordl

[vvvcxjvvv@localhost cxj_temp2]$ echo -e "\\ \n \t \\" 
\ 
 	 \
[vvvcxjvvv@localhost cxj_temp2]$ 

3.12 >输出重定向和>>追加

ls -l > 文件——输出重定向(覆盖原文件内容)
cat filename >> 文件——追加(列表内容追加到源文件末尾)

[vvvcxjvvv@localhost cxj_temp2]$ cat study2.txt
[vvvcxjvvv@localhost cxj_temp2]$ echo "Hello World" > study2.txt
[vvvcxjvvv@localhost cxj_temp2]$ cat study2.txt
Hello World
[vvvcxjvvv@localhost cxj_temp2]$ echo "Hello Linux" > study2.txt
[vvvcxjvvv@localhost cxj_temp2]$ cat study2.txt
Hello Linux
[vvvcxjvvv@localhost cxj_temp2]$ echo "Hello World" >> study2.txt
[vvvcxjvvv@localhost cxj_temp2]$ cat study2.txt
Hello Linux
Hello World
[vvvcxjvvv@localhost cxj_temp2]$ 

3.13 ln链接

3.13.1 软链接

软链接类似快捷方式,有自己的数据块,主要存放链接其它文件的路径
ln -s 【原文件或目录】 【软链接名】——给原文件建立一个软链接
注意:
rm -rf 软链接名——删除软链接
rm -rf 软链接名/——会把软链接对应的真实目录下的内容删掉

注意:创建软链接时指明文件的绝对路径

测试1:使用相对路径创建软链接,将软链接移动到别的地方后软链接失效

在这里插入图片描述
注意软链接大小为9:软链接指向相对路径大小为9个字节。
由于创建软链接时使用的是相对路径,所以当软链接被移动后(所在当前目录发生改变),链接时自然找不到指向的文件/目录。

测试2:使用绝对路径创建软链接

在这里插入图片描述
软链接的大小为38:注意到软链接指向绝对路径的大小为38个字节。
此时软链接指向的是绝对路径,当软链接被移动后仍然可以链接到原来指向的文件/目录。

测试3:给目录创建软链接

在这里插入图片描述

3.13.2 硬链接

硬链接以文件副本的形式存在,但不占用实际空间。不允许给目录创建硬链接。硬链接只有在同一个文件系统中才能创建。linux下每一个文件都对应一个Inode,创建硬链接后,两个文件的Inode是相同的。文件创建硬链接后,硬链接计数+1,删除一个硬链接,硬链接计数-1。
在这里插入图片描述
注意:删掉被链接的文件hello.txt,对新创建的硬链接没有影响,只是硬链接计数减少了。

查看文件的Inode:stat 文件名
在这里插入图片描述

测试:对创建的硬链接移动到一个其它目录

在这里插入图片描述

3.14 查看文件/目录属性命令

3.14.1 wc查看文件字数、字节数、行数

参数描述
-c只显示字节数
-l只显示行数
-w只显示字数
[vvvcxjvvv@localhost test]$ ll
total 4
-rw-rw-r--. 2 vvvcxjvvv vvvcxjvvv 26 Jan  6 05:57 hello.txt
[vvvcxjvvv@localhost test]$ cat hello.txt
Hello World~
Hello Linux~
[vvvcxjvvv@localhost test]$ wc hello.txt 
 2  4 26 hello.txt

结果:2行,4个字,26个字节

3.14.2 od查看二进制文件信息

参数描述
-cASCII字符
-d有符号十进制数
-f浮点数
-o八进制数
-u无符号十进制数
-x十六进制数

例:以ASCII字符形式查看二进制文件hello

在这里插入图片描述

3.14.3 du查看某个目录大小

du===>disk use

[vvvcxjvvv@localhost cxj_data]$ du -h GCC_Demo/
36K	GCC_Demo/src
4.0K	GCC_Demo/include
60K	GCC_Demo/

3.14.4 df查看磁盘使用情况

df===>disk free

[vvvcxjvvv@localhost Desktop]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        895M     0  895M   0% /dev
tmpfs           910M     0  910M   0% /dev/shm
tmpfs           910M   11M  900M   2% /run
tmpfs           910M     0  910M   0% /sys/fs/cgroup
/dev/sda3        98G  7.8G   90G   8% /
/dev/sda1       297M  213M   84M  72% /boot
tmpfs           182M   40K  182M   1% /run/user/1000
tmpfs           182M     0  182M   0% /run/user/0

四、用户管理

4.1 查看用户

4.1.1 cat /etc/passwd查看创建哪些用户

cat /etc/passwd

[vvvcxjvvv@localhost ~]$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
...
vvvcxjvvv:x:1000:1000:vvvcxjvvv:/home/vvvcxjvvv:/bin/bash
cxj:x:1001:1001::/home/cxj:/bin/bash

4.1.2 id查看用户是否存在

id 用户名

[vvvcxjvvv@localhost ~]$ id cxj
uid=1001(cxj) gid=1001(cxj) groups=1001(cxj)
[vvvcxjvvv@localhost ~]$ id cxj2
id: cxj2: no such user
[vvvcxjvvv@localhost ~]$ id vvvcxjvvv
uid=1000(vvvcxjvvv) gid=1000(vvvcxjvvv) groups=1000(vvvcxjvvv)

4.1.3 who查看登录用户信息

who可以查看当前在线用户的情况,使用的设备终端(pts),登录到系统的时间

whoami——显示自身用户名称
who am i——显示登陆用户的用户名及登录时间

[vvvcxjvvv@localhost ~]$ whoami
vvvcxjvvv
[vvvcxjvvv@localhost ~]$ who am i
vvvcxjvvv pts/0        2022-07-16 06:55 (xxx.xxx.xxx.xxx)

4.2 useradd增加用户

sudo useradd 用户名——添加新用户
参数:
-s: 指定新用户登陆时shell类型
-g :指定所属组,该组必须已经存在
-d :用户家目录
-m :用户家目录不存在时,自动创建该目录

例子:sudo useradd -s /bin/bash -g group1 -d /home/user1-m user1

常用:添加新用户至某个组——useradd -g 组名 用户名

[root@localhost vvvcxjvvv]# useradd cxj2
[root@localhost vvvcxjvvv]# id cxj2
uid=1002(cxj2) gid=1002(cxj2) groups=1002(cxj2)
[root@localhost vvvcxjvvv]# useradd -g 1002 cxj3
[root@localhost vvvcxjvvv]# id cxj3
uid=1003(cxj3) gid=1002(cxj2) groups=1002(cxj2)

另一种添加新用户方法:sudo adduser 用户名

4.3 userdel删除用户

sudo userdel 用户名——删除用户但保留该用户的主目录
sudo userdel -r 用户名——同时删除用户和用户主目录

选项描述
-r删除用户的同时删除与用户相关的所有文件
[root@localhost home]# ls
cxj  cxj2  cxj3  vvvcxjvvv
[root@localhost home]# userdel cxj2
[root@localhost home]# ls
cxj  cxj2  cxj3  vvvcxjvvv
[root@localhost home]# userdel -r cxj3
[root@localhost home]# ls
cxj  cxj2  vvvcxjvvv

4.4 usermod修改用户

sudo usermod -g 用户组 用户名

选项描述
-g修改用户的初始登录组,给定的组必须存在。默认组id为1
[root@localhost home]# id cxj3
uid=1003(cxj3) gid=1002(cxj2) groups=1002(cxj2)
[root@localhost home]# usermod -g 1001 cxj3
[root@localhost home]# id cxj3
uid=1003(cxj3) gid=1001(cxj) groups=1001(cxj)

4.5 passwd设置用户密码

sudo passwd 用户名——设置用户密码

[root@localhost home]# passwd cxj2 
Changing password for user cxj2.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

4.6 su切换用户

su 用户名——切换用户,只获得用户的执行权限而不能获得该用户的环境遍历
su - 用户名——切换到用户并获得该用户的执行权限和环境遍历

[vvvcxjvvv@localhost ~]$ su cxj
Password: 
[cxj@localhost vvvcxjvvv]$ ls
ls: cannot open directory .: Permission denied
[cxj@localhost vvvcxjvvv]$ cd 
[cxj@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos

4.7 sudo为普通用户设置root权限

切换到root用户:sudo su
sudo 操作

[root@localhost ~]# su vvvcxjvvv
[vvvcxjvvv@localhost root]$ ls
ls: cannot open directory .: Permission denied
[vvvcxjvvv@localhost root]$ sudo ls
[sudo] password for vvvcxjvvv: 
anaconda-ks.cfg  original-ks.cfg

4.8 exit退出登录用户

exit

[vvvcxjvvv@localhost ~]$ sudo su
[sudo] password for vvvcxjvvv: 
[root@localhost vvvcxjvvv]# exit
exit
[vvvcxjvvv@localhost ~]$ exit
logout

Connection closed.

Disconnected from remote host(centos_home) at 21:57:11.

五、用户组管理

5.1 cat /etc/group查看创建了哪些用户组

cat etc/group

[vvvcxjvvv@localhost ~]$ cat /etc/group
root:x:0:
...
vvvcxjvvv:x:1000:vvvcxjvvv
cxj:x:1001:

5.2 groupadd添加用户组

groupadd 组名

[vvvcxjvvv@localhost ~]$ groupadd cxj_temp1
groupadd: Permission denied.
groupadd:无法锁定 /etc/group,请稍后再试。
[vvvcxjvvv@localhost ~]$ su root
密码:
[root@localhost vvvcxjvvv]# groupadd cxj_temp1

5.3 groupdel删除用户组

groupdel 组名

[root@localhost vvvcxjvvv]# groupadd cxj_temp2
[root@localhost vvvcxjvvv]# groupdel cxj_temp2

5.4 groupmod修改用户组

group -n 新组名 旧组名

选项描述
-n<新组名>指定工作组的新组名
[root@localhost vvvcxjvvv]# groupmod -n cxj_temp1 cxj_temp3
groupmod:“cxj_temp3”组不存在
[root@localhost vvvcxjvvv]# groupmod -n cxj_temp3 cxj_temp1

六、文件权限管理

6.1 文件属性介绍

文件属性描述
文件属性由十个字符进行描述:

  • 首字符(第0位):代表文件类型;-代表文件;d代表目录;l代表链接
  • 1-3位:描述该文件所有者(user)对该文件的权限
  • 4-6位:描述该文件所有者的同组用户(group)对该文件的权限
  • 7-9位:其它用户对该文件的权限

1-9位出现【-】说明没有该权限
rwx对于文件

  • r:可读取,查看
  • w:可以写(修改),但不一定可以删除(用户必须得具有该文件所在目录的写(w)权限才可删除)
  • x:可执行

rwx对于目录

  • r:可读取,可以使用ls命令查看目录内容
  • w:可修改,目录内创建、删除、重命名目录
  • x:可执行,可以进入该目录

6.2 chmod改变文件权限

chmod ===> change mod——修改文件属性/访问权限

  • 方式一:

chmod 【{ugoa} {+-=} {rwx}】 文件或目录

注:u:所有者、g:所有组、o:其他人、a:所有人(u、g、o之和,默认)

[vvvcxjvvv@localhost cxj_data]$ ll
总用量 932
-rw-rw-r--. 1 vvvcxjvvv vvvcxjvvv      0 716 07:18 study.txt
[vvvcxjvvv@localhost cxj_data]$ chmod u+x,o-r study.txt
[vvvcxjvvv@localhost cxj_data]$ ll
总用量 932
-rwxrw----. 1 vvvcxjvvv vvvcxjvvv      0 716 07:18 study.txt
[vvvcxjvvv@localhost cxj_data]$ sudo chmod -100 study.txt
[sudo] password for vvvcxjvvv: 
[vvvcxjvvv@localhost cxj_data]$ ll
total 11604
-rw-rw----. 1 cxj       vvvcxjvvv      53 Jul 23 02:12 study.txt
  • 方式二

chmod 【mod = 421】 文件或目录——方式二

注:r=4、w=2、x=1 、没有权限=0
例:rwx=4+2+1=7

[vvvcxjvvv@localhost cxj_data]$ ll
总用量 932
-rw-r--r--. 1 vvvcxjvvv vvvcxjvvv    449 711 20:56 SayHello
[vvvcxjvvv@localhost cxj_data]$ chmod 745 SayHello
[vvvcxjvvv@localhost cxj_data]$ ll
总用量 932
-rwxr--r-x. 1 vvvcxjvvv vvvcxjvvv    449 711 20:56 SayHello

6.3 chown改变文件/目录所有者

chown ===> change owner——将指定文件的拥有者改为指定的用户或组
chown 【选项】 【最终用户】 【文件/目录】

选项描述
-r递归操作

修改文件所有者:

[vvvcxjvvv@localhost cxj_data]$ chown cxj study.txt
chown: 正在更改"study.txt" 的所有者: 不允许的操作
[vvvcxjvvv@localhost cxj_data]$ sudo chown cxj study.txt
[sudo] vvvcxjvvv 的密码:
[vvvcxjvvv@localhost cxj_data]$ ll
总用量 932
-rwxrw----. 1 cxj       vvvcxjvvv      0 716 07:18 study.txt

递归修改目录所有者:

[vvvcxjvvv@localhost temp]$ mkdir -p temp1/temp2
[vvvcxjvvv@localhost temp]$ ll
总用量 0
drwxrwxr-x. 3 vvvcxjvvv vvvcxjvvv 19 716 23:16 temp1
[vvvcxjvvv@localhost temp]$ sudo chown cxj temp1
[vvvcxjvvv@localhost temp]$ ll
总用量 0
drwxrwxr-x. 3 cxj vvvcxjvvv 19 716 23:16 temp1

6.4 chgrp改变文件/目录所属组

chgrp ===> change group——改变文件或目录的所属群组
chgrp 【最终用户组】 【文件/目录】

[vvvcxjvvv@localhost temp]$ ll
总用量 0
drwxrwxr-x. 3 vvvcxjvvv vvvcxjvvv 19 716 23:16 temp1
[vvvcxjvvv@localhost temp]$ sudo chown cxj temp1
[vvvcxjvvv@localhost temp]$ ll
总用量 0
drwxrwxr-x. 3 cxj vvvcxjvvv 19 716 23:16 temp1
[vvvcxjvvv@localhost temp]$ chgrp cxj_temp3 temp1
chgrp: 正在更改"temp1" 的所属组: 不允许的操作
[vvvcxjvvv@localhost temp]$ sudo chgrp cxj_temp3 temp1
[vvvcxjvvv@localhost temp]$ ll
总用量 0
drwxrwxr-x. 3 cxj cxj_temp3 19 716 23:16 temp1

例:修改文件hello.txt的所有者为Alan,所属组为China

[vvvcxjvvv@localhost temp]$ sudo chown Alan:China hello.txt

七、搜索查找命令

7.1 find查找文件/目录

find 【搜索范围】 【选项】

选项描述
-name<查询方式>按指定文件名查找文件
-user<用户名>查找属于指定用户的所有文件
-size<文件大小>按指定文件大小查找文件
-type<文件类型>按文件类型查询

文件类型:

  1. f:普通文件类型
  2. d:目录
  3. l:符号链接
  4. b:块设备文件
  5. c:字符设备文件
  6. s:socket文件(网络套接字)
  7. p:管道

按文件名/用户名查找:

[vvvcxjvvv@localhost Desktop]$ find cxj_data/ -name "*.txt"
cxj_data/study.txt
[vvvcxjvvv@localhost Desktop]$ find cxj_data/ -user cxj
cxj_data/study.txt
cxj_data/temp/temp1

按文件大小查找:

  • +n:size大于n
  • -n:size小于n
  • n:size大小等于n

注意:单位k必须小写,M必须大写

例如:查找目录下大于10M的文件

[vvvcxjvvv@localhost Desktop]$ find cxj_data/ -size +10240
cxj_data/pdf/STL源码剖析简体中文完整版(清晰扫描带目录).pdf
[vvvcxjvvv@localhost Desktop]$ find cxj_data -size +10M
cxj_data/pdf/STL源码剖析简体中文完整版(清晰扫描带目录).pdf

按文件类型查找:

[vvvcxjvvv@localhost cxj_data]$ tree GCC_Demo
GCC_Demo
├── dynamicmain
├── include
│   └── sayHello.h
├── main.cpp
├── main.o
└── src
    ├── 2
    ├── libsayHello.so
    ├── sayHello.cpp
    └── sayHello.o

2 directories, 8 files
[vvvcxjvvv@localhost cxj_data]$ find GCC_Demo -type d
GCC_Demo
GCC_Demo/src
GCC_Demo/include
[vvvcxjvvv@localhost cxj_data]$ find GCC_Demo -type f
GCC_Demo/src/sayHello.cpp
GCC_Demo/src/sayHello.o
GCC_Demo/src/2
GCC_Demo/src/libsayHello.so
GCC_Demo/main.cpp
GCC_Demo/include/sayHello.h
GCC_Demo/main.o
GCC_Demo/dynamicmain

7.2 locate快速定位文件路径

第一次运行前需要使用updatedb创建locate数据库
locate 文件

[vvvcxjvvv@localhost Desktop]$ updatedb
updatedb: 无法为 `/var/lib/mlocate/mlocate.db' 打开临时文件
[vvvcxjvvv@localhost Desktop]$ sudo updatedb
[sudo] vvvcxjvvv 的密码:
[vvvcxjvvv@localhost Desktop]$ locate temp1
/home/vvvcxjvvv/Desktop/cxj_data/temp/temp1
/home/vvvcxjvvv/Desktop/cxj_data/temp/temp1/temp2

7.3 grep过滤查找与管道符“I”

grep可以按文件内容进行查找

grep 【选项】 【查找内容】 【源文件】

选项描述
-n显示匹配行及行号
-r递归操作

例子:查看cxj_data目录下哪些文件包含了#include <iostream>,并显示该内容所在行号

[vvvcxjvvv@localhost cxj_data]$ sudo grep -rn "#include <iostream>" /home/vvvcxjvvv/Desktop/cxj_data/
/home/vvvcxjvvv/Desktop/cxj_data/mycode/temp/include/myfriend.h:2:#include <iostream>
/home/vvvcxjvvv/Desktop/cxj_data/mycode/temp/main.cpp:2:#include <iostream>
/home/vvvcxjvvv/Desktop/cxj_data/mycode/hello/hello.cpp:1:#include <iostream>
/home/vvvcxjvvv/Desktop/cxj_data/mycode/temp1/include/myfriend.h:2:#include <iostream>
/home/vvvcxjvvv/Desktop/cxj_data/mycode/temp1/main.cpp:2:#include <iostream>
/home/vvvcxjvvv/Desktop/cxj_data/mycode/temp2/include/myfriend.h:2:#include <iostream>
/home/vvvcxjvvv/Desktop/cxj_data/mycode/temp2/main.cpp:2:#include <iostream>
/home/vvvcxjvvv/Desktop/cxj_data/mycode/temp3/include/myfriend.h:2:#include <iostream>
/home/vvvcxjvvv/Desktop/cxj_data/GCC_Demo/src/sayHello.cpp:1:#include <iostream>
/home/vvvcxjvvv/Desktop/cxj_data/GCC_Demo/main.cpp:1:#include <iostream>
/home/vvvcxjvvv/Desktop/cxj_data/GCC_Demo/include/sayHello.h:1:#include <iostream>
/home/vvvcxjvvv/Desktop/cxj_data/GCC_Test/hello.cpp:1:#include <iostream>
/home/vvvcxjvvv/Desktop/cxj_data/GDB_Demo/GDBTest.cpp:1:#include <iostream>

管道符|表示将前一个命令的处理结果输出传递给后面命令处理

[vvvcxjvvv@localhost cxj_data]$ ls | grep -n SayHello
6:SayHello
[vvvcxjvvv@localhost cxj_data]$ ls
2022-07-11 03-45-26屏幕截图.png  listenTogetherDialing.wav  redis     study.txt
Linux速查备忘手册.pdf            pdf                        SayHello  temp
[vvvcxjvvv@localhost cxj_data]$ ll
总用量 932
-rw-r--r--. 1 vvvcxjvvv vvvcxjvvv  44903 711 03:45 2022-07-11 03-45-26屏幕截图.png
-rw-rw-r--. 1 vvvcxjvvv vvvcxjvvv 246149 711 03:43 Linux速查备忘手册.pdf
-rw-rw-r--. 1 vvvcxjvvv vvvcxjvvv 651160 711 04:01 listenTogetherDialing.wav
drwxr-xr-x. 2 vvvcxjvvv vvvcxjvvv    215 716 07:07 pdf
drwxrwxr-x. 2 vvvcxjvvv vvvcxjvvv   4096 711 03:55 redis
-rwxr--r-x. 1 vvvcxjvvv vvvcxjvvv    449 711 20:56 SayHello
-rwxrw----. 1 cxj       vvvcxjvvv      0 716 07:18 study.txt
drwxrwxr-x. 3 vvvcxjvvv vvvcxjvvv     19 716 23:16 temp

八、压缩解压文件/目录

8.1 gzip/gunzip压缩解压文件

gzip 文件——压缩文件,只能将文件压缩为.gz文件
gunzip 文件(.gz)——解压.gz文件

注:

  • 只能压缩文件不能压缩目录
  • 不保留原来的文件
  • 同时压缩多个文件会产生多个压缩包
[vvvcxjvvv@localhost gzTest]$ ls
hello1.txt  hello2.txt
[vvvcxjvvv@localhost gzTest]$ gzip hello1.txt 
[vvvcxjvvv@localhost gzTest]$ ls
hello1.txt.gz  hello2.txt
[vvvcxjvvv@localhost gzTest]$ gunzip hello1.txt.gz
[vvvcxjvvv@localhost gzTest]$ ls
hello1.txt  hello2.txt
[vvvcxjvvv@localhost gzTest]$ gzip hello1.txt hello2.txt
[vvvcxjvvv@localhost gzTest]$ ls
hello1.txt.gz  hello2.txt.gz
[vvvcxjvvv@localhost gzTest]$ mkdir aa/bb -p
[vvvcxjvvv@localhost gzTest]$ ls
aa  hello1.txt.gz  hello2.txt.gz
[vvvcxjvvv@localhost gzTest]$ gzip aa
gzip: aa is a directory -- ignored

8.2 bzip2/bunzip2压缩解压文件

bzip2 参数 文件名——压缩文件为.bz2格式

注:

  1. 参数-k:keep,保留源文件
  2. 不能对目录进行压缩
  3. 不能对多个文件进行打包压缩

bunzip2 压缩文件名——解压.bz2格式文件

[vvvcxjvvv@localhost Desktop]$ tree bz2Test/
bz2Test/
├── aa
│   └── bb
├── hello1.txt
└── hello2.txt

2 directories, 2 files
[vvvcxjvvv@localhost Desktop]$ cd bz2Test/
[vvvcxjvvv@localhost bz2Test]$ bzip2 hello1.txt
[vvvcxjvvv@localhost bz2Test]$ ls
aa  hello1.txt.bz2  hello2.txt
[vvvcxjvvv@localhost bz2Test]$ bzip2 -k hello2.txt
[vvvcxjvvv@localhost bz2Test]$ ls
aa  hello1.txt.bz2  hello2.txt  hello2.txt.bz2
[vvvcxjvvv@localhost bz2Test]$ bzip2 aa
bzip2: Input file aa is a directory.
[vvvcxjvvv@localhost bz2Test]$ bunzip2 hello1.txt.bz2 hello2.txt.bz2 
bunzip2: Output file hello2.txt already exists.
[vvvcxjvvv@localhost bz2Test]$ ls
aa  hello1.txt  hello2.txt  hello2.txt.bz2

8.3 tar打包(压缩、解压)内容

压缩文件:
tar + 参数(zcvf) + 压缩包名字.tar.gz + 待压缩文件/目录
tar + 参数(jcvf) + 压缩包名字.tar.bz2 + 待压缩文件/目录
解压文件:
tar + 参数(zxvf) + 压缩包名(xxx.tar.gz)
tar + 参数(jxvf) + 压缩包名(xxx.tar.bz2)

选项描述
-z用 gzip 来压缩/解压缩文件
-j用 bzip2 来压缩/解压缩文件
-c(create)创建新的压缩文件,如果用户想备份一个目录或文件,就要选择这个选项
-v显示详细信息
-f指定压缩后的文件名
-x解包.tar文件
-v详细报告tar处理的文件信息
-C解压到指定目录

压缩多个文件/目录:

[vvvcxjvvv@localhost tarTest]$ ls
couple  joey.txt  phoebe.txt
[vvvcxjvvv@localhost tarTest]$ tree couple
couple
├── chandler.txt
├── monica.txt
├── rachel.txt
└── ross.txt

0 directories, 4 files
[vvvcxjvvv@localhost tarTest]$ tar -zcvf mytar.tar.gz couple joey.txt phoebe.txt 
couple/
couple/chandler.txt
couple/monica.txt
couple/ross.txt
couple/rachel.txt
joey.txt
phoebe.txt
[vvvcxjvvv@localhost tarTest]$ ls
couple  joey.txt  mytar.tar.gz  phoebe.txt
[vvvcxjvvv@localhost tarTest]$ tar -jcvf mytar.tar.bz2 couple joey.txt phoebe.txt 
couple/
couple/chandler.txt
couple/monica.txt
couple/ross.txt
couple/rachel.txt
joey.txt
phoebe.txt
[vvvcxjvvv@localhost tarTest]$ ls
couple  joey.txt  mytar.tar.bz2  mytar.tar.gz  phoebe.txt

解压文件(不指明解压目录,默认解压到当前目录):

[vvvcxjvvv@localhost friend3]$ ls
mytar.tar.gz
[vvvcxjvvv@localhost friend3]$ tar -zxvf mytar.tar.gz 
couple/
couple/chandler.txt
couple/monica.txt
couple/ross.txt
couple/rachel.txt
joey.txt
phoebe.txt
[vvvcxjvvv@localhost friend3]$ ls
couple  joey.txt  mytar.tar.gz  phoebe.txt

解压到指定文件夹:
tar zxvf xxx.tar.gz -C + 解压目录
tar jxvf xxx.tar.bz2 -C + 解压目录

[vvvcxjvvv@localhost tarTest]$ mkdir friend1
[vvvcxjvvv@localhost tarTest]$ tar -zxvf mytar.tar.gz -C friend1
couple/
couple/chandler.txt
couple/monica.txt
couple/ross.txt
couple/rachel.txt
joey.txt
phoebe.txt
[vvvcxjvvv@localhost tarTest]$ tree friend1
friend1
├── couple
│   ├── chandler.txt
│   ├── monica.txt
│   ├── rachel.txt
│   └── ross.txt
├── joey.txt
└── phoebe.txt

1 directory, 6 files
[vvvcxjvvv@localhost tarTest]$ mkdir friend2
[vvvcxjvvv@localhost tarTest]$ tar -jxvf mytar.tar.bz2 -C friend2
couple/
couple/chandler.txt
couple/monica.txt
couple/ross.txt
couple/rachel.txt
joey.txt
phoebe.txt
[vvvcxjvvv@localhost tarTest]$ tree friend2
friend2
├── couple
│   ├── chandler.txt
│   ├── monica.txt
│   ├── rachel.txt
│   └── ross.txt
├── joey.txt
└── phoebe.txt

1 directory, 6 files
[vvvcxjvvv@localhost tarTest]$ 

8.4 zip/unzip压缩解压文件/目录

压缩:
zip 【选项】 XXX.zip 待压缩的文件/目录

zip选项描述
-r递归操作,压缩目录

注:可以压缩目录且保留源文件

压缩文件:

[vvvcxjvvv@localhost Desktop]$ tree zipTest/
zipTest/
├── couple
│   ├── chandler.txt
│   ├── monica.txt
│   ├── rachel.txt
│   └── ross.txt
├── joey.txt
└── phoebe.txt

1 directory, 6 files
[vvvcxjvvv@localhost Desktop]$ cd zipTest/
[vvvcxjvvv@localhost zipTest]$ zip friend1.zip couple joey.txt phoebe.txt 
  adding: couple/ (stored 0%)
  adding: joey.txt (stored 0%)
  adding: phoebe.txt (stored 0%)
[vvvcxjvvv@localhost zipTest]$ 

注意:没有使用递归参数-r,couple目录下的文件并没有被打包

递归压缩目录:

[vvvcxjvvv@localhost zipTest]$ zip -r friend2.zip couple joey.txt phoebe.txt 
  adding: couple/ (stored 0%)
  adding: couple/chandler.txt (stored 0%)
  adding: couple/monica.txt (stored 0%)
  adding: couple/ross.txt (stored 0%)
  adding: couple/rachel.txt (stored 0%)
  adding: joey.txt (stored 0%)
  adding: phoebe.txt (stored 0%)
[vvvcxjvvv@localhost zipTest]$

解压:
unzip 【选项】 XXX.zip

unzip选项描述
-d<目录>指定解压后文件的存放目录

指定目标文件夹解压缩:

[vvvcxjvvv@localhost zipTest]$ unzip friend2.zip -d friend2
Archive:  friend2.zip
   creating: friend2/couple/
 extracting: friend2/couple/chandler.txt  
 extracting: friend2/couple/monica.txt  
 extracting: friend2/couple/ross.txt  
 extracting: friend2/couple/rachel.txt  
 extracting: friend2/joey.txt        
 extracting: friend2/phoebe.txt      
[vvvcxjvvv@localhost zipTest]$ ls
couple  friend1.zip  friend2  friend2.zip  joey.txt  phoebe.txt
[vvvcxjvvv@localhost zipTest]$ tree friend2
friend2
├── couple
│   ├── chandler.txt
│   ├── monica.txt
│   ├── rachel.txt
│   └── ross.txt
├── joey.txt
└── phoebe.txt

1 directory, 6 files

8.5 rar压缩/解压文件

rar使用前需要安装。

centos7安装rar步骤(64位):

[root@localhost ~]# wget http://www.rarlab.com/rar/rarlinux-x64-5.3.0.tar.gz
--2023-01-09 00:56:21--  http://www.rarlab.com/rar/rarlinux-x64-5.3.0.tar.gz
Resolving www.rarlab.com (www.rarlab.com)... 51.195.68.162
Connecting to www.rarlab.com (www.rarlab.com)|51.195.68.162|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.rarlab.com/rar/rarlinux-x64-5.3.0.tar.gz [following]
--2023-01-09 00:56:22--  https://www.rarlab.com/rar/rarlinux-x64-5.3.0.tar.gz
Connecting to www.rarlab.com (www.rarlab.com)|51.195.68.162|:443... connected.
HTTP request sent, awaiting response... 200 
Length: 1149037 (1.1M) [application/x-gzip]
Saving to: ‘rarlinux-x64-5.3.0.tar.gz’

100%[==============================================================================================================================>] 1,149,037    164KB/s   in 7.4s   

2023-01-09 00:56:31 (152 KB/s) - ‘rarlinux-x64-5.3.0.tar.gz’ saved [1149037/1149037]

[root@localhost ~]# tar -zxvf rarlinux-x64-5.3.0.tar.gz 
rar/
rar/order.htm
rar/acknow.txt
rar/readme.txt
rar/rar_static
rar/default.sfx
rar/license.txt
rar/rarfiles.lst
rar/whatsnew.txt
rar/makefile
rar/rar
rar/unrar
rar/rar.txt
[root@localhost ~]# cd rar
[root@localhost rar]# make
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib
[root@localhost rar]# rar
bash: rar: command not found...
[root@localhost rar]# ls
acknow.txt  default.sfx  license.txt  makefile  order.htm  rar  rarfiles.lst  rar_static  rar.txt  readme.txt  unrar  whatsnew.txt
[root@localhost rar]# cp rar_static /usr/local/bin/rar
cp: overwrite ‘/usr/local/bin/rar’? y
[root@localhost rar]# exit
exit

语法:rar <命令> -<选项1> ….-<选项N> <操作文档> <文件…> <@文件列表…> <解压路径>

命令:

a:添加文件到操作文档
x:带路径解压文档中内容到当前目录

选项:-r——递归子目录(对目录下文件压缩需要用到)

压缩: rar a 压缩文件名(xxx.rar) 待压缩文件/目录

[vvvcxjvvv@localhost rarTest]$ ls
test
[vvvcxjvvv@localhost rarTest]$ rar a -r test.rar test

RAR 5.30   Copyright (c) 1993-2015 Alexander Roshal   18 Nov 2015
Trial version             Type RAR -? for help

Evaluation copy. Please register.

Creating archive test.rar

Adding    test/couple/chandler.txt                                    OK 
Adding    test/couple/monica.txt                                      OK 
Adding    test/couple/ross.txt                                        OK 
Adding    test/couple/rachel.txt                                      OK 
Adding    test/joey.txt                                               OK 
Adding    test/phoebe.txt                                             OK 
Adding    test/couple                                                 OK 
Adding    test                                                        38%
Done
[vvvcxjvvv@localhost rarTest]$ ls
test  test.rar

解压: rar x 压缩文件名(xxx.rar)

[vvvcxjvvv@localhost rarTest]$ ls
test  test.rar
[vvvcxjvvv@localhost rarTest]$ rar x test.rar

RAR 5.30   Copyright (c) 1993-2015 Alexander Roshal   18 Nov 2015
Trial version             Type RAR -? for help


Extracting from test.rar


Would you like to replace the existing file test/couple/chandler.txt
    16 bytes, modified on 2023-01-09 01:36
with a new one
    16 bytes, modified on 2023-01-09 01:36

[Y]es, [N]o, [A]ll, n[E]ver, [R]ename, [Q]uit q

Program aborted

解压缩至指定目录: rar x 压缩文件名(xxx.rar) 目录

[vvvcxjvvv@localhost rarTest]$ ls
test  test.rar
[vvvcxjvvv@localhost rarTest]$ mkdir myDir
[vvvcxjvvv@localhost rarTest]$ rar x test.rar myDir

RAR 5.30   Copyright (c) 1993-2015 Alexander Roshal   18 Nov 2015
Trial version             Type RAR -? for help


Extracting from test.rar

Creating    myDir/test                                                OK
Creating    myDir/test/couple                                         OK
Extracting  myDir/test/couple/chandler.txt                            OK 
Extracting  myDir/test/couple/monica.txt                              OK 
Extracting  myDir/test/couple/ross.txt                                OK 
Extracting  myDir/test/couple/rachel.txt                              OK 
Extracting  myDir/test/joey.txt                                       OK 
Extracting  myDir/test/phoebe.txt                                     OK 
All OK

九、查看磁盘分区

9.1 mount/unmount 挂载/卸载

系统默认挂载目录:/media
手动挂载目录:/mnt

mount 【-t cfstype】 【-o options】 device dir——挂载设备

参数描述
-t cfstype指定文件系统的类型
-o options描述设备或档案的挂载方式
device待挂载的设备
dir设备在系统上的挂载点

默认手动挂载到 /mnt。挂载到/mnt以外的目录 – 挂载成功后会遮蔽掉目录中原来的东西,卸载设备之后才能看到目录中原来的数据。

unmount 设备文件名或挂载点——卸载设备
卸载的时候,用户的当前位置一定不能再 /mnt(/media)或者其子目录下,否则无法卸载。

9.2 du查看文件或目录所占磁盘空间

du 目录/文件——显示目录的磁盘使用状况

选项描述
-h以Gbytes、MBytes、Kbytes等格式显示
-a不仅查看子目录大小,还查看文件
-c显示所有文件和子目录大小和,显示总和
-s只显示总和
–max-depth=n指定统计子目录的深度为n
[vvvcxjvvv@localhost ~]$ du -sh
329M	

9.3 df查看磁盘空间使用状况

df 【选项】——列出文件系统整体磁盘使用量,检查文件系统磁盘空间占用状况

选项描述
-h以Gbytes、MBytes、Kbytes等格式显示
[vvvcxjvvv@localhost ~]$ df -h
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        895M     0  895M    0% /dev
tmpfs           910M     0  910M    0% /dev/shm
tmpfs           910M   11M  900M    2% /run
tmpfs           910M     0  910M    0% /sys/fs/cgroup
/dev/sda3        98G  6.0G   92G    7% /
/dev/sda1       297M  164M  134M   55% /boot
tmpfs           182M   40K  182M    1% /run/user/1000

9.4 lsblk查看设备挂载情况

lsblk

选项描述
-f查看详细设备挂载情况,显示文件系统信息
[vvvcxjvvv@localhost ~]$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  100G  0 disk 
├─sda1   8:1    0  300M  0 part /boot
├─sda2   8:2    0    2G  0 part [SWAP]
└─sda3   8:3    0 97.7G  0 part /
sr0     11:0    1 1024M  0 rom  

9.5 fdisk分区

fdisk -l——查看磁盘分区详情

选项描述
-l显示所有硬盘分区列表
[vvvcxjvvv@localhost ~]$ sudo fdisk -l
[sudo] vvvcxjvvv 的密码:

磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000c3be4

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      616447      307200   83  Linux
/dev/sda2          616448     4812799     2098176   82  Linux swap / Solaris
/dev/sda3         4812800   209715199   102451200   83  Linux

fdisk 硬件设备名——对新增硬盘进行分区操作

十、网络命令

10.1 ifconfig显示网络接口配置信息

ifconfig
在这里插入图片描述

ens33:网卡名
UP:网卡开启状态
RUNNING:网卡的网线被接上
MULTICAST:支持组播
inet:IP地址
netmask:掩码
broadcast:广播地址
RX:接收数据包
TX:发送数据包
lo:主机的回环网卡

Linux 操作系统的网卡设备的传统命名方式是 eth0、eth1、eth2等。
注:CentOS7 提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配。这样做的优点是命名全自动的、可预知的,缺点是比 eth0、wlan0 更难读,比如 ens33 。

10.2 ping测试主机间网络连通性

语法:ping 【参数】 目的主机名/IP地址
参数:
-c 数目:在发送指定数目的包后停止。
-i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次

[vvvcxjvvv@localhost ~]$ ping baidu.com
PING baidu.com (39.156.66.10) 56(84) bytes of data.
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=1 ttl=128 time=32.0 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=2 ttl=128 time=34.3 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=3 ttl=128 time=29.6 ms
^C
--- baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2005ms
rtt min/avg/max/mdev = 29.688/32.018/34.319/1.901 ms
[vvvcxjvvv@localhost ~]$ ping 39.156.66.10
PING 39.156.66.10 (39.156.66.10) 56(84) bytes of data.
64 bytes from 39.156.66.10: icmp_seq=1 ttl=128 time=46.8 ms
64 bytes from 39.156.66.10: icmp_seq=2 ttl=128 time=30.4 ms
64 bytes from 39.156.66.10: icmp_seq=3 ttl=128 time=29.8 ms
^C
--- 39.156.66.10 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 29.865/35.750/46.894/7.886 ms

注意不加参数需要手动停止——ctrl + c

[vvvcxjvvv@localhost ~]$ ping -c 4 baidu.com
PING baidu.com (39.156.66.10) 56(84) bytes of data.
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=1 ttl=128 time=34.3 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=2 ttl=128 time=34.2 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=3 ttl=128 time=33.0 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=4 ttl=128 time=30.5 ms

--- baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 30.575/33.056/34.316/1.530 ms
[vvvcxjvvv@localhost ~]$ 

10.3 nslookup查看服务器域名对应的IP地址

使用nslookup 域名就可查看服务器域名对应的IP地址

[vvvcxjvvv@localhost ~]$ nslookup www.baidu.com
Server:		192.xxx.xxx.2
Address:	192.xxx.xxx.2#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.
Name:	www.a.shifen.com
Address: 36.152.44.96
Name:	www.a.shifen.com
Address: 36.152.44.95

十一、进程管理

11.1 ps查看当前系统进程状态

ps ===> process status

ps 【选项】

选项描述
a列出带有终端的所有用户的进程
x列出当前用户的所有进程,包括没有终端的进程
u查看进程所有者及其他一些信息
-e列出所有进程
-u列出某个用户关联的所有进程
-f显示完整格式的进程列表

显示所有用户的所有进程信息:ps aux

[vvvcxjvvv@localhost ~]$ ps au
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       1299  0.0  3.2 336924 59960 tty1     Ssl+ Jan08   0:04 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -auth /run/gdm/auth-for-gdm-kWy31W/database 
vvvcxjv+   3472  0.0  0.1 116576  3220 pts/0    Ss   Jan08   0:01 -bash
cxj        9305  0.0  0.1 116324  2864 pts/1    Ss+  02:02   0:00 -bash
vvvcxjv+   9429  0.0  0.1 155448  1868 pts/0    R+   02:10   0:00 ps au
[vvvcxjvvv@localhost ~]$ ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.3 193932  6168 ?        Ss   Jan08   0:07 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
...

root       9292  0.2  0.2 161072  5580 ?        Ss   02:02   0:00 sshd: cxj [priv]
cxj        9298  0.0  0.1 161072  2552 ?        S    02:02   0:00 sshd: cxj@pts/1
cxj        9305  0.0  0.1 116324  2864 pts/1    Ss+  02:02   0:00 -bash
root       9377  0.0  0.0      0     0 ?        S    02:05   0:00 [kworker/1:0]
root       9395  0.0  0.0      0     0 ?        S    02:07   0:00 [kworker/1:1]
root       9418  0.0  0.2 386024  4912 ?        Sl   02:09   0:00 gdm-session-worker [pam/gdm-password]
root       9427  0.0  0.0      0     0 ?        R    02:09   0:00 [kworker/0:1]
root       9455  0.0  0.0 108052   360 ?        S    02:10   0:00 sleep 60
vvvcxjv+   9456  0.0  0.1 155448  1868 pts/0    R+   02:10   0:00 ps aux

查询结果中PID表示进程ID。
对于TTY设备:tty1 - tty6 表示文字界面,tty7表示图形界面

对显示的进程进行过滤:ps aux | grep xxx

[vvvcxjvvv@localhost ~]$ ps aux | grep sshd
root       1096  0.0  0.1 112900  2756 ?        Ss   21:53   0:00 /usr/sbin/sshd -D
root       2842  0.0  0.1 160988  3560 ?        Ss   21:54   0:00 sshd: vvvcxjvvv [priv]
vvvcxjv+   2846  0.0  0.1 160988  2140 ?        S    21:54   0:00 sshd: vvvcxjvvv@pts/0
vvvcxjv+   6481  0.0  0.0 112828   976 pts/1    S+   23:47   0:00 grep --color=auto sshd
[vvvcxjvvv@localhost ~]$ ps -ef | grep sshd
root       1096      1  0 21:53 ?        00:00:00 /usr/sbin/sshd -D
root       2842   1096  0 21:54 ?        00:00:00 sshd: vvvcxjvvv [priv]
vvvcxjv+   2846   2842  0 21:54 ?        00:00:00 sshd: vvvcxjvvv@pts/0
vvvcxjv+   6491   5031  0 23:48 pts/1    00:00:00 grep --color=auto sshd

grep查询是需要占用一个进程的,所有结果 > 2 才能说明查询结果存在;如果结果有一条,表示没有查询的进程。

[vvvcxjvvv@localhost ~]$ ps aux | grep aaaaaa
vvvcxjv+   9609  0.0  0.0 112808   976 pts/0    S+   02:22   0:00 grep --color=auto aaaaaa
[vvvcxjvvv@localhost ~]$ 

查看进程树:pstree

pstree 【选项】

选项描述
-p显示进程PID
-u显示进程所属用户

11.2 kill中止进程

kill 【选项】 进程号——通过进程号杀死进程
killall 进程名称——通过进程名称杀死进程

选项描述
-9(SIGKILL)强制立即停止进程
[vvvcxjvvv@localhost ~]$ ps aux | grep bash
root        641  0.0  0.0 115408   972 ?        S    Jan08   0:01 /bin/bash /usr/sbin/ksmtuned
vvvcxjv+   2238  0.0  0.0  72552   780 ?        Ss   Jan08   0:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic"
cxj        9305  0.0  0.1 116324  2864 pts/1    Ss+  02:02   0:00 -bash
vvvcxjv+   9723  1.7  0.1 116456  2908 pts/0    Ss   02:29   0:00 -bash
vvvcxjv+   9771  0.0  0.0 112812   976 pts/0    S+   02:29   0:00 grep --color=auto bash
[vvvcxjvvv@localhost ~]$ kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX	
[vvvcxjvvv@localhost ~]$ kill -SIGKILL 9305
-bash: kill: (9305) - Operation not permitted
[vvvcxjvvv@localhost ~]$ sudo kill -SIGKILL 9305
[sudo] password for vvvcxjvvv: 
[vvvcxjvvv@localhost ~]$ ps aux | grep bash
root        641  0.0  0.0 115408   972 ?        S    Jan08   0:01 /bin/bash /usr/sbin/ksmtuned
vvvcxjv+   2238  0.0  0.0  72552   780 ?        Ss   Jan08   0:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic"
vvvcxjv+   9723  0.2  0.1 116456  2976 pts/0    Ss   02:29   0:00 -bash
vvvcxjv+   9821  0.0  0.0 112812   976 pts/0    R+   02:30   0:00 grep --color=auto bash
[vvvcxjvvv@localhost ~]$ 

11.3 env查看当前进程环境变量

Linux下环境变量格式为键值对:key=value:value (多个值之间用 :分隔)

[vvvcxjvvv@localhost ~]$ env | grep PATH
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/var/lib/snapd/snap/bin:/home/vvvcxjvvv/software/Typora/bin/Typora-linux-x64/:/home/vvvcxjvvv/.local/bin:/home/vvvcxjvvv/bin

PATH:该环境变量中记录着shell命令解析器去查找命令的目录位置,从前往后的顺序查找。

11.4 top实时监控系统进程状态

top 【选项】

选项描述
-d 秒数指定top命令每隔几秒更新,默认3秒
-i使得top不显示任何闲置或僵死的进程
-p通过指定监控进程ID来仅仅监控某个进程的状态
操作描述
P以cpu使用率排序(默认此项)
M以内存使用率排序
N以PID排序
q退出top

11.5 netstat查看网络状态和端口占用信息

netstat -anp | grep 进程号——查看该进程的网络信息
netstat -nlp | grep 端口号——查看网络端口号的占用情况

选项描述
-aall,显示所有正在监听(listen)和未监听的套接字(socket)
-n拒绝显示别名,能显示数字的全部转为数字
-l仅列出在监听的服务状态
-p表示显示哪个进程在调用

查看进程sshd的网络信息:

[root@localhost vvvcxjvvv]# netstat -anp | grep sshd

查看端口号100占用情况:

[root@localhost vvvcxjvvv]# netstat -nlp | grep 100

十二、时间日期查看

12.1 date显示时间

date 【选项】 【时间/日期格式】

选项描述
-d<时间字符串>显示指定时间字符串所表示的时间而不是当前时间
-s<日期时间>设置系统日期时间
参数描述
<+日期时间格式>指定显示时使用的日期时间格式
举例描述
date -d’1 days ago’显示一天前时间
date显示当前时间
date “+%Y-%m-%d %H:%M:%S”以年月日时分秒显示当前时间
[vvvcxjvvv@localhost ~]$ date
Sat Jul 16 07:47:40 PDT 2022
[vvvcxjvvv@localhost ~]$ date "+%Y-%m-%d %H:%M:%S"
2022-07-16 07:48:18
[vvvcxjvvv@localhost ~]$ date -d'1 days ago'
Fri Jul 15 07:48:35 PDT 2022

12.2 date设置系统时间

date -s 字符串时间
例:
date -s"2022-07-26 17:05:03"

[vvvcxjvvv@localhost ~]$ date -s"2022-07-16 22:49:03"
date: cannot set date: Operation not permitted
Sat Jul 16 22:49:03 PDT 2022
[vvvcxjvvv@localhost ~]$ sudo date -s"2022-07-16 22:49:03"
[sudo] password for vvvcxjvvv: 
Sat Jul 16 22:49:03 PDT 2022
[vvvcxjvvv@localhost ~]$ date
Sat Jul 16 22:49:06 PDT 2022

12.3 cal查看日历

cal 【year】——查看year年时的日历,若只有cal则查看当前月的日历

[vvvcxjvvv@localhost ~]$ cal
      July 2022     
Su Mo Tu We Th Fr Sa
                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

十三、设置定时任务

13.1 启动crond服务

systemctl restart crond——重启crond服务

13.2 crontab设置定时任务

crontab 【选项】

选项描述
-e编辑crontab定时任务
-l查询crontab定时任务
-r删除当前用户所有crontab定时任务

十四、软件包管理

14.1 RPM

14.1.1 RPM查询

rpm -qa——查询所安装的所有rpm软件包
rpm -qa | grep xxx——采取过滤操作,查询安装的xxx软件包

[root@localhost vvvcxjvvv]# rpm -qa | grep firefox
firefox-68.10.0-1.el7.centos.x86_64

14.1.2 RPM安装

rpm -ivh RPM软件包全名

选项描述
-iinstall,安装
-v–verbose,显示详细信息
-h–hash,进度条
–nodeps安装前不检查依赖
[root@localhost vvvcxjvvv]# rpm -qa|grep mysql

14.1.3 RPM卸载

rpm -e RPM软件包
rpm -e --nodeps 软件包

选项描述
-e卸载软件包
–nodeps卸载软件时不检查依赖
[root@localhost vvvcxjvvv]# rpm -e firefox

14.2 YUM

yum 【选项】 【参数】

选项描述
-y对所有提问都回答yes
参数描述
install安装rpm软件包
update更新rpm软件包
check-update检查是否有可用的更新rpm软件包
remove删除指定的rpm软件包
list显示软件包信息
clean清理yum过期的缓存
deplist显示yum软件包所有的依赖关系

总结

本文对常用的Linux操作命令进行了归纳与整理

参考资料

《鸟哥的Linux私房菜》

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值