Linux - Linux命令大全

news2025/1/11 15:10:51

阅读前可参考

https://blog.csdn.net/MinggeQingchun/article/details/128547426

一、Linux系统管理

(一)查看Linux系统版本

1、查看Linux内核版本

1、cat /proc/version:Linux查看当前操作系统版本信息

2、uname -a:Linux查看版本当前操作系统内核信息

2、查看Linux系统版本

1、lsb_release -a

这个命令适用于所有的Linux发行版,包括RedHat、SUSE、Debian…等发行版

注:使用该命令时提示command not found,需要安装yum install redhat-lsb -y

2、cat /etc/redhat-release

这种方法只适合Redhat系的Linux

3、cat /etc/issue

此命令也适用于所有的Linux发行版

3、uname的使用

uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)

uname -a显示全部信息

-m或--machine:显示电脑类型;

-r或--release:显示操作系统的发行编号;

-s或--sysname:显示操作系统名称;

-v:显示操作系统的版本;

-p或--processor:输出处理器类型或"unknown";

-i 或--hardware-platform:输出硬件平台或"unknown";

-o或--operating-system:输出操作系统名称;

--help:显示帮助;

--version:显示版本信息

(二)vi 和 vim

vi编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,vi是效率很高的文本编辑器。

vim是vi的增强版,比vi更容易使用。vi的命令几乎全部都可以在vim上使用

1、vi和vim三种常见模式:

一般模式以vi/vim 命令打开一个文档就直接进入一般模式了(默认模式)。在这个模式中,可以使用『上下左右』按键来移动光标,可以使用『删除字符』或『删除整行』快捷键来处理文档内容,也可以使用『复制、粘贴』快捷键来处理文件数据,。可以查看文件的内容,但是不能编辑文件内容 

编辑模式按下i, I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式, 一般按 i 即可。可以编辑文件内容,但是不能保存编辑的内容,按Esc键,可以回到一般模式

命令行模式:在一般模式下,按shift+ :,进入命令行模式

输入: q!:不保存强制退出编辑器
            wq:保存并且退出编辑器
            q:只是退出编辑器

2、vi和vim常用快捷键

1、一般模式拷贝当前行(yy) , 拷贝当前行向下的5行(5yy),并粘贴(p)

2、一般模式删除当前行(dd) , 删除当前行向下的5行(5dd)

3、一般模式下,在文件中查找某个单词,[命令模式下:(/关键字),回车查找, 输入(n) 就是查找下一个]

4、一般模式下,使用快捷键到达文档的最首行[gg]和最末行[G]

5、一般模式下,在一个文件中输入"xxxx" ,然后又撤销这个动作(u)

6、一般模式下,并将光标移动到10行shift+g

第一步:输入10

第二步:输入shift+g

第三步:回车

7、命令行模式下,设置文件的行号,取消文件的行号.[命令行下(: set nu) 和(:set nonu)]

8、其它快捷键:

(三)用户管理

Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。root用户是系统默认创建的管理员账号

1、添加用户

useradd [选项] 用户名

[root@localhost home]# useradd zhangsan
[root@localhost home]# cd /home/
[root@localhost home]# ll
total 4
drwx------. 15 ming     ming     4096 Jan  5 17:28 ming
drwx------.  3 zhangsan zhangsan   78 Jan  6 10:48 zhangsan

(1)创建一个用户zhangsan 

(2)在/home目录下创建用的根目录,目录名称默认跟用户名相同

(3)在linux中任何一个用户都至少属于一个组,新建用户时如果不指定组,则会新建一个组,组名跟用户名相同,并且把该用户添加到该组中

useradd zhangsan

创建一个账号叫zhangsan,此时会创建账号、创建一个组zhangsan并且把zhangsan分到此组中、还会在/home下创建一个目录叫zhangsan作为新创建用户的根目录 

useradd -d /home/lisiDir lisi

创建一个账号叫lisi,并且给lisi指定家目录/lisiDir

[root@localhost home]# useradd -d /home/lisiDir lisi
[root@localhost home]# ll
total 4
drwx------.  3 lisi     lisi       78 Jan  6 10:39 lisiDir
drwx------. 15 ming     ming     4096 Jan  5 17:28 ming
drwx------.  3 zhangsan zhangsan   78 Jan  6 10:36 zhangsan

2、用户设置密码

passwd zhangsan

[root@localhost home]# passwd zhangsan
Changing password for user zhangsan.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

3、删除用户

userdel [选项] 用户名

[root@localhost home]# userdel zhangsan
[root@localhost home]# ll
total 4
drwx------.  3 lisi lisi   78 Jan  6 10:39 lisiDir
drwx------. 15 ming ming 4096 Jan  5 17:28 ming
drwx------.  3 1001 1001   78 Jan  6 10:36 zhangsan

userdel zhangsan:删除用户zhangsan,保留zhangsan的主目录,在/home 目录下还能看到 /zhangsan目录

userdel -r lisi 

删除用户lisi,并且把lisi的主目录也删除

[root@localhost home]# userdel -r lisi
[root@localhost home]# ll
total 4
drwx------. 15 ming ming 4096 Jan  5 17:28 ming
drwx------.  3 1001 1001   78 Jan  6 10:36 zhangsan

4、查看用户信息

id 用户名

id zhangsan:查看用户zhangsan的信息

[root@localhost home]# id zhangsan
uid=1001(zhangsan) gid=1001(zhangsan) groups=1001(zhangsan)

5、切换用户

su 用户名

su zhangsan:切换到zhangsan用户

注:从高权限用户切换到低权限用户时,不需要输密码;否则,需要输密码

另:exit命令可以回到原来的用户

[root@localhost home]# su zhangsan
[zhangsan@localhost home]$ su root
Password: 
[root@localhost home]# 

(四)用户组管理

Linux的组类似于角色,系统可以对有共性的多个用户进行统一的管理。每一个用户都至少属于一个组,创建用户时如果不指定组,会默认创建一个跟用户名相同的组,并且把新创建的用户分配到组中,root用户默认属于root组

1、添加组

groupadd 组名

groupadd dev:创建一个组dev

2、删除组

groupdel 组名

groupdel dev:删除组dev

[root@localhost home]# groupadd dev
[root@localhost home]# groupdel dev

3、添加用户到组

gpasswd -a 用户名 组名

gpasswd -a zhangsan dev:将张三用户添加到dev组中

[root@localhost home]# gpasswd -a zhangsan dev
Adding user zhangsan to group dev
[root@localhost home]# id zhangsan 
uid=1001(zhangsan) gid=1001(zhangsan) groups=1001(zhangsan),1002(dev)

4、添加用户到指定组

useradd -g 组名 用户名

useradd –g dev zhangsan:添加用户zhangsan,并且指定zhangsan属于组dev

[root@localhost home]# useradd -g dev lisi
[root@localhost home]# id lisi
uid=1002(lisi) gid=1002(dev) groups=1002(dev)

5、将用户从组中移除

gpasswd -d 用户名 组名

gpasswd -d zhangsan dev:将张三用从dev组中移除

[root@localhost home]# gpasswd -d zhangsan dev
Removing user zhangsan from group dev
[root@localhost home]# id zhangsan 
uid=1001(zhangsan) gid=1001(zhangsan) groups=1001(zhangsan)

(五)系统操作命令

1、关机

shutdown now  立即关机

shutdown -h xx  定时关机

shutdown -r now  立即重启(现在重新启动计算机)

2、重启

reboot  立即重启

3、同步数据库(把内存的数据同步到磁盘)

sync

(六)帮助命令

1、查看linux系统手册上的帮助信息:man 命令
man ls

分屏显示、按回车翻一行、按空格翻一页、按q退出查看

2、查看命名的内置帮助信息:help 命令
help cd

二、目录、文件命令

(一)目录命令

1、pwd指令;查看当前所在目录

查看当前所在目录:pwd

[root@localhost ~]# pwd
/root

2、ls、ll 指令;查看指定目录下所有的子目录和文件列表

 ls [选项] [指定目录] :查看指定目录下所有的子目录和文件列表(默认平铺方式)

常用选项

(1)-a :显示当前目录所有的文件和目录,包括隐藏的

(2)-l :以列表的方式显示信息,相当于ll

 ll [选项] [指定目录]:查看指定目录下所有的子目录和文件列表(列表方式)

ls /home(默认平铺方式)

ls 查看当前目录下所有的子目录和文件列表

ls -l /home :以列表形式显示

ls -a /home:显示指定目录下所有的子目录和文件(包括虚拟的目录)

ls -al /home:以列表形式显示指定目录下所有的子目录和文件(包括虚拟的目录)

[root@localhost /]# ll /home
total 4
drwx------. 15 ming ming 4096 Jan  5 17:28 ming
[root@localhost /]# ls /home
ming
[root@localhost /]# ls -l /home
total 4
drwx------. 15 ming ming 4096 Jan  5 17:28 ming
[root@localhost /]# ls -a /home
.  ..  ming
[root@localhost /]# ls -al /home
total 4
drwxr-xr-x.  3 root root   18 Jan  6 12:00 .
dr-xr-xr-x. 17 root root  233 Jan  4 11:36 ..
drwx------. 15 ming ming 4096 Jan  5 17:28 ming

3、cd 指令;切换目录

cd 目录名

切换到指定目录

绝对路径(以/开头的目录)和相对路径(以目录名开头的目录,从当前目录下开始查找)

cd ~ 或者cd :回到自己的主目录

cd .. 回到当前目录的上一级目录

1、绝对目录:以盘符开始的目录叫绝对目录,从盘符开始查找目标目录

cd /opt/testDir

~:当前用户的根目录。在任何目录下执行:cd ~,进入当前用户的根目录

2、相对目录:以目录名开始的目录叫相对目录,从当前目录开始查找目标目录

cd testDir

..:当前目录的上一级目录,从的当前目录开始查找它的上一级目录

.:当前目录,在当前目录下执行某条脚本指令,xx.sh ====> ./xx.sh

4、mkdir 指令;创建目录

mkdir [选项] 目录名

创建目录

mkdir /opt/test/test1:在/opt/test目录下创建一个目录test1(使用绝对目录)

-p :创建多级目录

mkdir -p /opt/test/test1/test2: 在/opt/test目录下创建目录test1,并且在test1下创建test2(一次创建多级目录)

[root@localhost opt]# mkdir /opt/test/test1
mkdir: cannot create directory ‘/opt/test/test1’: No such file or directory
[root@localhost opt]# mkdir -p /opt/test/test1
[root@localhost opt]# cd /opt/test/test1/
[root@localhost test1]# pwd
/opt/test/test1

5、rmdir 指令;删除一个空目录

rmdir 目录名

[root@localhost test1]# ll
total 4
-rw-r--r--. 1 root root 8 Jan  6 14:43 test.txt
[root@localhost test1]# rmdir /opt/test/test1/
rmdir: failed to remove ‘/opt/test/test1/’: Directory not empty
[root@localhost test1]# rm test.txt 
rm: remove regular file ‘test.txt’? Y
[root@localhost /]# rmdir /opt/test
[root@localhost /]# cd /opt/
[root@localhost opt]# ll
total 4
drwxr-xr-x. 2 root root  6 Mar 26  2015 rh
-rw-r--r--. 1 root root 53 Jan  5 17:55 test.txt

(二)文件命令

1、touch:创建一个或多个空文件

touch 文件名列表(文件名之间用空格隔开)

[root@localhost opt]# touch t1.txt
[root@localhost opt]# touch t1.txt t2.txt
[root@localhost opt]# ll
total 4
drwxr-xr-x. 2 root root  6 Mar 26  2015 rh
-rw-r--r--. 1 root root  0 Jan  6 15:50 t1.txt
-rw-r--r--. 1 root root  0 Jan  6 15:50 t2.txt
-rw-r--r--. 1 root root 53 Jan  5 17:55 test.txt

2、cp [选项] source(源文件目录) dest(目标目录):复制文件或目录

-r :递归复制整个文件夹

cp t1.txt test :把t1.txt文件复制到test目录中

cp -r test test1:把test目录复制到test目录中(递归地复制目录)

[root@localhost opt]# cp t1.txt test
[root@localhost opt]# cd test
[root@localhost test]# ll
total 0
-rw-r--r--. 1 root root 0 Jan  6 15:56 t1.txt


[root@localhost opt]# cp -r test test1
[root@localhost opt]# cd test1
[root@localhost test1]# ll
total 0
drwxr-xr-x. 2 root root 20 Jan  6 16:01 test

(1)将一个文件夹下的所有内容复制到另一个文件夹下

cp -r /home/packageA/* /home/cp/packageB/
或
cp -r /home/packageA/. /home/cp/packageB/

(2)将一个文件夹复制到另一个文件夹下

cp -r /home/packageA /home/packageB

3、rm 文件名或者目录名;删除文件或者目录

 删除一个文件夹及其下面的所有文件

rm -rf /home/packageA

-r 表示向下递归,不管有多少级目录,一并删除

-f 表示直接强行删除,不作任何提示

rm t1.txt  提示删除文件

rm -f t2.txt  强制删除文件

rm -r test2  提示递归删除目录

rm -rf test5  强制递归删除目录

4、mv source(源) dest(目标);移动目录或者文件

mv test.txt test1

mv test1 test2

mv t3.txt t3_new.txt  文件重命名

注:如果目标中已经存在该文件或者目录,则会提示是否覆盖

(1)移动一个文件夹到另一个文件夹下面

mv /home/packageA /home/packageB/
或
mv /home/packageA /home/packageB

(2)移动一个文件夹下的所有内容到另一个文件夹下面

mv /home/packageA/* /home/packageB/

5、cat 文件名;查看文件内容

-n :显示行号

文件内容一次性显示出来

cat t4.txt

cat -n t4.txt  显示行号

[root@localhost opt]# cat -n t1.txt 
     1	uerhfei
     2	fwerjhfiewhf
     3	hfiewhvir
     4	hfcuiescir
     5	hgicewrvuewr

6、 more 文件名;分页查看文件文件内容

分页查看文件文件内容:more 文件名  一次性加载文件所有内容到内存,分页显示

按回车翻一行、按空格翻一页

more t1.txt

7、less 文件名:分页查看文件文件内容

分页查看文件文件内容:less 文件名 分页加载文件所有内容到内存,分页显示

less t1.txt

按回车翻一行、按空格翻一页,按q退出查看

8、head [选项] 文件名;查看文件的头10行

head t1.txt

head -n 5 t1.txt

[root@localhost opt]# head -n 2 t1.txt
uerhfei
fwerjhfiewhf

9、tail [选项] 文件名;查看文件的后10行

[root@localhost opt]# tail -n 2 t1.txt
hfcuiescir
hgicewrvuewr
[root@localhost opt]# tail t1.txt
uerhfei
fwerjhfiewhf
hfiewhvir
hfcuiescir
hgicewrvuewr

10、echo;输出系统变量或者常量的值到命令行终端

[root@localhost opt]# echo $JAVA_HOME

[root@localhost opt]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

11、> 文件名;把前一个查看命令的结果输出到指定的文件中

如果目标文件不存在,则新建一个文件

如果目标文件已存在,则把文件以前的内容覆盖

ls > ret.txt

ls -al > ret.txt

cat ret.txt > t1.txt 文件内容的复制

[root@localhost opt]# ls > ret.txt
[root@localhost opt]# ll
total 12
-rw-r--r--. 1 root root 45 Jan  6 16:16 ret.txt
drwxr-xr-x. 2 root root  6 Mar 26  2015 rh
-rw-r--r--. 1 root root 55 Jan  6 16:06 t1.txt
-rw-r--r--. 1 root root  0 Jan  6 15:50 t2.txt
drwxr-xr-x. 2 root root 20 Jan  6 15:56 test
drwxr-xr-x. 3 root root 18 Jan  6 16:01 test1
-rw-r--r--. 1 root root 53 Jan  5 17:55 test.txt
[root@localhost opt]# ls -al > ret.txt
[root@localhost opt]# cat ret.txt
total 8
drwxr-xr-x.  5 root root 100 Jan  6 16:16 .
dr-xr-xr-x. 17 root root 233 Jan  4 11:36 ..
-rw-r--r--.  1 root root   0 Jan  6 16:16 ret.txt
drwxr-xr-x.  2 root root   6 Mar 26  2015 rh
-rw-r--r--.  1 root root  55 Jan  6 16:06 t1.txt
-rw-r--r--.  1 root root   0 Jan  6 15:50 t2.txt
drwxr-xr-x.  2 root root  20 Jan  6 15:56 test
drwxr-xr-x.  3 root root  18 Jan  6 16:01 test1
-rw-r--r--.  1 root root  53 Jan  5 17:55 test.txt
[root@localhost opt]# cat ret.txt >t1.txt
[root@localhost opt]# cat t1.txt
total 8
drwxr-xr-x.  5 root root 100 Jan  6 16:16 .
dr-xr-xr-x. 17 root root 233 Jan  4 11:36 ..
-rw-r--r--.  1 root root   0 Jan  6 16:16 ret.txt
drwxr-xr-x.  2 root root   6 Mar 26  2015 rh
-rw-r--r--.  1 root root  55 Jan  6 16:06 t1.txt
-rw-r--r--.  1 root root   0 Jan  6 15:50 t2.txt
drwxr-xr-x.  2 root root  20 Jan  6 15:56 test
drwxr-xr-x.  3 root root  18 Jan  6 16:01 test1
-rw-r--r--.  1 root root  53 Jan  5 17:55 test.txt

12、>> 文件名;把前一个查看命令的结果追加输出到指定的文件中

如果目标文件不存在,则新建一个文件

如果目标文件已存在,则在文件原来内容的基础上进行追加

ls > ret.txt

ls -al >> ret.txt

cat t1.txt >> ret.txt

[root@localhost opt]# ls -al >> ret1.txt
[root@localhost opt]# cat ret1.txt 
total 12
drwxr-xr-x.  5 root root 116 Jan  6 16:19 .
dr-xr-xr-x. 17 root root 233 Jan  4 11:36 ..
-rw-r--r--.  1 root root   0 Jan  6 16:19 ret1.txt
-rw-r--r--.  1 root root 436 Jan  6 16:16 ret.txt
drwxr-xr-x.  2 root root   6 Mar 26  2015 rh
-rw-r--r--.  1 root root 436 Jan  6 16:17 t1.txt
-rw-r--r--.  1 root root   0 Jan  6 15:50 t2.txt
drwxr-xr-x.  2 root root  20 Jan  6 15:56 test
drwxr-xr-x.  3 root root  18 Jan  6 16:01 test1
-rw-r--r--.  1 root root  53 Jan  5 17:55 test.txt
[root@localhost opt]# vi t2.txt
[root@localhost opt]# cat t2.txt 
fihi
[root@localhost opt]# cat t2.txt >> ret1.txt 
[root@localhost opt]# cat ret1.txt 
total 12
drwxr-xr-x.  5 root root 116 Jan  6 16:19 .
dr-xr-xr-x. 17 root root 233 Jan  4 11:36 ..
-rw-r--r--.  1 root root   0 Jan  6 16:19 ret1.txt
-rw-r--r--.  1 root root 436 Jan  6 16:16 ret.txt
drwxr-xr-x.  2 root root   6 Mar 26  2015 rh
-rw-r--r--.  1 root root 436 Jan  6 16:17 t1.txt
-rw-r--r--.  1 root root   0 Jan  6 15:50 t2.txt
drwxr-xr-x.  2 root root  20 Jan  6 15:56 test
drwxr-xr-x.  3 root root  18 Jan  6 16:01 test1
-rw-r--r--.  1 root root  53 Jan  5 17:55 test.txt
fihi

三、时间和日期

1、date;查看或者设置系统的日期或者时间

date 查看系统当前的完整的日期和时间

date +%Y:系统当前的年份

date +%m :系统当前的月份

date +%d :系统当前的日期

date '+%Y-%m-%d %H:%M:%S':按yyyy-MM-dd HH:mm:ss格式显示

date -S '2021-01-01 10:30:30' :设置当前的系统时间

[root@localhost opt]# date
Fri Jan  6 16:22:28 CST 2023
[root@localhost opt]# date + %Y
date: extra operand ‘%Y’
Try 'date --help' for more information.
[root@localhost opt]# date +%Y
2023
[root@localhost opt]# date +%m
01
[root@localhost opt]# date +%d
06
[root@localhost opt]# date '+%Y-%m-%d %H:%M:%S'
2023-01-06 16:23:39

2、cal;查看系统日历

cal:查看当前月份的日历

cal 2022:查看指定年份的日历

[root@localhost opt]# cal
    January 2023    
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

[root@localhost opt]# cal 2022
                               2022                               

       January               February                 March       
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
                   1          1  2  3  4  5          1  2  3  4  5
 2  3  4  5  6  7  8    6  7  8  9 10 11 12    6  7  8  9 10 11 12
 9 10 11 12 13 14 15   13 14 15 16 17 18 19   13 14 15 16 17 18 19
16 17 18 19 20 21 22   20 21 22 23 24 25 26   20 21 22 23 24 25 26
23 24 25 26 27 28 29   27 28                  27 28 29 30 31
30 31
        April                   May                   June        
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
                1  2    1  2  3  4  5  6  7             1  2  3  4
 3  4  5  6  7  8  9    8  9 10 11 12 13 14    5  6  7  8  9 10 11
10 11 12 13 14 15 16   15 16 17 18 19 20 21   12 13 14 15 16 17 18
17 18 19 20 21 22 23   22 23 24 25 26 27 28   19 20 21 22 23 24 25
24 25 26 27 28 29 30   29 30 31               26 27 28 29 30

        July                  August                September     
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
                1  2       1  2  3  4  5  6                1  2  3
 3  4  5  6  7  8  9    7  8  9 10 11 12 13    4  5  6  7  8  9 10
10 11 12 13 14 15 16   14 15 16 17 18 19 20   11 12 13 14 15 16 17
17 18 19 20 21 22 23   21 22 23 24 25 26 27   18 19 20 21 22 23 24
24 25 26 27 28 29 30   28 29 30 31            25 26 27 28 29 30
31
       October               November               December      
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
                   1          1  2  3  4  5                1  2  3
 2  3  4  5  6  7  8    6  7  8  9 10 11 12    4  5  6  7  8  9 10
 9 10 11 12 13 14 15   13 14 15 16 17 18 19   11 12 13 14 15 16 17
16 17 18 19 20 21 22   20 21 22 23 24 25 26   18 19 20 21 22 23 24
23 24 25 26 27 28 29   27 28 29 30            25 26 27 28 29 30 31
30 31

四、搜索查找指令

(一)find

find [搜索范围][搜索标准] 关键字

-name:按名称查找,支持通配符。

-user:按用户名查找

-size:按文件大小查找

find *.txt  搜索当前目录下,所有的.txt文件

find *e*  搜索当前目录下,所有名称中包含e的那些文件或者目录

find /etc *.txt  搜索/etc目录下所有.txt文件

find /etc -size +5k  搜索/etc目录下所有大于5k的文件

find /etc -size =5k  搜索/etc目录下所有等于5k的文件

find /etc -size -5k  搜索/etc目录下所有小于5k的文件

find /etc -user zhangsan  搜索/etc目录下所有的所有者是zhangsan的文件和目录

[root@localhost opt]# ll
total 20
-rw-r--r--. 1 root root 493 Jan  6 16:20 ret1.txt
-rw-r--r--. 1 root root 436 Jan  6 16:16 ret.txt
drwxr-xr-x. 2 root root   6 Mar 26  2015 rh
-rw-r--r--. 1 root root 436 Jan  6 16:17 t1.txt
-rw-r--r--. 1 root root   5 Jan  6 16:19 t2.txt
drwxr-xr-x. 2 root root  20 Jan  6 15:56 test
drwxr-xr-x. 3 root root  18 Jan  6 16:01 test1
-rw-r--r--. 1 root root  53 Jan  5 17:55 test.txt
[root@localhost opt]# find *.txt
ret1.txt
ret.txt
t1.txt
t2.txt
test.txt
[root@localhost opt]# find *r*
ret1.txt
ret.txt
rh

[root@localhost opt]# find /opt -size -1k
/opt/test/t1.txt
/opt/test1/test/t1.txt

(二)locate

locate:在整棵目录树中搜索文件或者目录,都是根据名称搜索,效率高

locate指令可以快速在整个系统中定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻

updatedb,首先执行数据库同步命令(保证数据实时性)

locate 关键字

[root@localhost opt]# updatedb
[root@localhost opt]# locate *.txt
/opt/ret.txt
/opt/ret1.txt
/opt/t1.txt
/opt/t2.txt
/opt/test.txt
/opt/test/t1.txt
/opt/test1/test/t1.txt

(三)grep

grep [选项] 查找的源文件内容

-n:显示匹配行和行号

-i:忽略大小写

说明:grep 过滤查找,管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理

find *.txt|grep new  搜索当前目录下,所有名称包含new的.txt文件

find /etc -size -5k|grep firefox

cat t1.txt|grep beijing

cat t1.txt|grep -ni beijing:-i 忽略大小写,-n 显示行号 

ls -al|grep new

[root@localhost opt]# find *.txt|grep ret
ret1.txt
ret.txt

[root@localhost opt]# cat t1.txt|grep shanghai
shanghai
[root@localhost opt]# cat t1.txt|grep -ni shanghai
2:Welcome to Shanghai!
3:shanghai
4:SHangHai
5:Shanghai
6:shangHai

[root@localhost opt]# ls -al|grep ret
-rw-r--r--.  1 root root 493 Jan  6 16:20 ret1.txt
-rw-r--r--.  1 root root 436 Jan  6 16:16 ret.txt

五、压缩,解压

1、gzip 和 gunzip;压缩或者解压单个文件

gzip 文件

压缩文件,将文件压缩为*.gz文件存放在原文件所在目录,压缩成功后会把原文件删除。用于压缩单个文件

gunzip 文件

解压缩文件命令,解压成功后存放在原压缩文件所在目录,并且把原压缩文件删除

gzip ret.txt

gunzip ret.txt.gz

[root@localhost opt]# gzip ret.txt
[root@localhost opt]# ll
total 20
-rw-r--r--. 1 root root 493 Jan  6 16:20 ret1.txt
-rw-r--r--. 1 root root 187 Jan  6 16:16 ret.txt.gz
drwxr-xr-x. 2 root root   6 Mar 26  2015 rh
-rw-r--r--. 1 root root  70 Jan  6 17:01 t1.txt
-rw-r--r--. 1 root root   5 Jan  6 16:19 t2.txt
drwxr-xr-x. 2 root root  20 Jan  6 15:56 test
drwxr-xr-x. 3 root root  18 Jan  6 16:01 test1
-rw-r--r--. 1 root root  53 Jan  5 17:55 test.txt
[root@localhost opt]# gunzip ret.txt.gz
[root@localhost opt]# ll
total 20
-rw-r--r--. 1 root root 493 Jan  6 16:20 ret1.txt
-rw-r--r--. 1 root root 436 Jan  6 16:16 ret.txt
drwxr-xr-x. 2 root root   6 Mar 26  2015 rh
-rw-r--r--. 1 root root  70 Jan  6 17:01 t1.txt
-rw-r--r--. 1 root root   5 Jan  6 16:19 t2.txt
drwxr-xr-x. 2 root root  20 Jan  6 15:56 test
drwxr-xr-x. 3 root root  18 Jan  6 16:01 test1
-rw-r--r--. 1 root root  53 Jan  5 17:55 test.txt

2、zip 和 unzip ;压缩(打包)或者解压多个文件和目录

(1)zip [选项] XX.zip 将要压缩的内容

将指定文件或目录压缩成XXX.zip文件,用于压缩所有文件结构

-r:递归压缩,即压缩目录

[root@localhost opt]# zip test.zip ret1.txt ret.txt t1.txt
  adding: ret1.txt (deflated 65%)
  adding: ret.txt (deflated 63%)
  adding: t1.txt (deflated 26%)
[root@localhost opt]# ll
total 24
-rw-r--r--. 1 root root 493 Jan  6 16:20 ret1.txt
-rw-r--r--. 1 root root 436 Jan  6 16:16 ret.txt
drwxr-xr-x. 2 root root   6 Mar 26  2015 rh
-rw-r--r--. 1 root root  70 Jan  6 17:01 t1.txt
-rw-r--r--. 1 root root   5 Jan  6 16:19 t2.txt
drwxr-xr-x. 2 root root  20 Jan  6 15:56 test
drwxr-xr-x. 3 root root  18 Jan  6 16:01 test1
-rw-r--r--. 1 root root  53 Jan  5 17:55 test.txt
-rw-r--r--. 1 root root 835 Jan  6 18:03 test.zip

(2)unzip [选项] XX.zip

-d 目录:指定解压后文件的存放目录

zip test.zip ret.txt t1.txt test2 

unzip test.zip -d test3 

[root@localhost opt]# unzip test.zip -d test2
Archive:  test.zip
  inflating: test2/ret1.txt          
  inflating: test2/ret.txt           
  inflating: test2/t1.txt   

3、tar;压缩(打包)或者解压多个文件和目录

tar [选项] XX.tar.gz [打包的内容]

打包或者解压文件

-c:产生.tar.gz打包文件

-v:显示详细信息

-f:指定压缩后的文件名

-z:打包同时压缩

-x:解压.tar.gz文件

-C: 指定解压到哪个目录

tar -zcvf xxx.tar.gz 文件或者目录列表

tar -zxvf xxx.tar.gz -C 解压目录名 

[root@localhost opt]# tar -zcvf test.tar.gz ret.txt test.zip test
ret.txt
test.zip
test/
test/t1.txt

[root@localhost opt]# tar -zxvf test.tar.gz -C /opt/test3
ret.txt
test.zip
test/
test/t1.txt
[root@localhost opt]# cd test3
[root@localhost test3]# ll
total 8
-rw-r--r--. 1 root root 436 Jan  6 16:16 ret.txt
drwxr-xr-x. 2 root root  20 Jan  6 15:56 test
-rw-r--r--. 1 root root 835 Jan  6 18:03 test.zip

六、 权限,组,目录,文件

(一)组

1、组

在linux中的每个用户必须属于一个组,不能独立于组外,可以改变用户所属组

在linux中每个文件有所有者、所在的组、其它组,也可以改变文件所在组

2、文件/目录的所有者

一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者,默认情况下所有者所在的组也即使文件所在的组

在文件或者目录看来,linux系统中所有的用户分为三类:

(1)所有者:默认情况下,文件或者目录的所有者都是创建者,可以修改

(2)同组用户:跟文件或者目录属于同一个组的用户

(3)其它组用户:既不是文件或者目录的所有者,也不是同组用户

1、查看文件的所有者和所在的组:

ls -l

[root@localhost opt]# ls -l
total 28
-rw-r--r--. 1 root root 493 Jan  6 16:20 ret1.txt
-rw-r--r--. 1 root root 436 Jan  6 16:16 ret.txt
drwxr-xr-x. 2 root root   6 Mar 26  2015 rh
-rw-r--r--. 1 root root  70 Jan  6 17:01 t1.txt
-rw-r--r--. 1 root root   5 Jan  6 16:19 t2.txt
drwxr-xr-x. 2 root root  20 Jan  6 15:56 test
drwxr-xr-x. 3 root root  18 Jan  6 16:01 test1
drwxr-xr-x. 2 root root  51 Jan  6 18:04 test2
drwxr-xr-x. 3 root root  49 Jan  6 18:07 test3
-rw-r--r--. 1 root root 981 Jan  6 18:07 test.tar.gz
-rw-r--r--. 1 root root  53 Jan  5 17:55 test.txt
-rw-r--r--. 1 root root 835 Jan  6 18:03 test.zip
[root@localhost opt]# ls -ahl t1.txt
-rw-r--r--. 1 root root 70 Jan  6 17:01 t1.txt

2、查看文件所有者和所在组

ls –ahl 文件名

(a-all,h-human,l-list)

3、修改文件所有者

chown 新所有者 文件名

chown 新的所有者:新的组 文件名或者目录名

chown zhangsan t1.txt

[root@localhost opt]# chown zhangsan t1.txt
[root@localhost opt]# ll
total 28
-rw-r--r--. 1 root     root 493 Jan  6 16:20 ret1.txt
-rw-r--r--. 1 root     root 436 Jan  6 16:16 ret.txt
drwxr-xr-x. 2 root     root   6 Mar 26  2015 rh
-rw-r--r--. 1 zhangsan root  70 Jan  6 17:01 t1.txt
-rw-r--r--. 1 root     root   5 Jan  6 16:19 t2.txt
drwxr-xr-x. 2 root     root  20 Jan  6 15:56 test
drwxr-xr-x. 3 root     root  18 Jan  6 16:01 test1
drwxr-xr-x. 2 root     root  51 Jan  6 18:04 test2
drwxr-xr-x. 3 root     root  49 Jan  6 18:07 test3
-rw-r--r--. 1 root     root 981 Jan  6 18:07 test.tar.gz
-rw-r--r--. 1 root     root  53 Jan  5 17:55 test.txt
-rw-r--r--. 1 root     root 835 Jan  6 18:03 test.zip

chown -R zhangsan test3   不会改变test3下的文件所有者

[root@localhost opt]# chown -R zhangsan test
[root@localhost opt]# ll
total 28
-rw-r--r--. 1 root     root 493 Jan  6 16:20 ret1.txt
-rw-r--r--. 1 root     root 436 Jan  6 16:16 ret.txt
drwxr-xr-x. 2 root     root   6 Mar 26  2015 rh
-rw-r--r--. 1 zhangsan root  70 Jan  6 17:01 t1.txt
-rw-r--r--. 1 root     root   5 Jan  6 16:19 t2.txt
drwxr-xr-x. 2 zhangsan root  20 Jan  6 15:56 test
drwxr-xr-x. 3 root     root  18 Jan  6 16:01 test1
drwxr-xr-x. 2 root     root  51 Jan  6 18:04 test2
drwxr-xr-x. 3 root     root  49 Jan  6 18:07 test3
-rw-r--r--. 1 root     root 981 Jan  6 18:07 test.tar.gz
-rw-r--r--. 1 root     root  53 Jan  5 17:55 test.txt
-rw-r--r--. 1 root     root 835 Jan  6 18:03 test.zip

chown zhangsan:dev t4.txt

chown zhangsan:dev test2

[root@localhost opt]# chown zhangsan:dev t2.txt
[root@localhost opt]# ll
total 28
-rw-r--r--. 1 root     root 493 Jan  6 16:20 ret1.txt
-rw-r--r--. 1 root     root 436 Jan  6 16:16 ret.txt
drwxr-xr-x. 2 root     root   6 Mar 26  2015 rh
-rw-r--r--. 1 zhangsan root  70 Jan  6 17:01 t1.txt
-rw-r--r--. 1 zhangsan dev    5 Jan  6 16:19 t2.txt
drwxr-xr-x. 2 zhangsan root  20 Jan  6 15:56 test
drwxr-xr-x. 3 root     root  18 Jan  6 16:01 test1
drwxr-xr-x. 2 root     root  51 Jan  6 18:04 test2
drwxr-xr-x. 3 root     root  49 Jan  6 18:07 test3
-rw-r--r--. 1 root     root 981 Jan  6 18:07 test.tar.gz
-rw-r--r--. 1 root     root  53 Jan  5 17:55 test.txt
-rw-r--r--. 1 root     root 835 Jan  6 18:03 test.zip

chown -R zhangsan:dev test2 递归修改目录的所有者和所在的组 

[root@localhost opt]# chown -R zhangsan:dev test2
[root@localhost opt]# ll test2
total 12
-rw-r--r--. 1 zhangsan dev 493 Jan  6 16:20 ret1.txt
-rw-r--r--. 1 zhangsan dev 436 Jan  6 16:16 ret.txt
-rw-r--r--. 1 zhangsan dev  70 Jan  6 17:01 t1.txt

4、修改文件所在组

 chgrp 新组名 文件名

-R 如果是目录则使其下所有子文件或目录递归生效

chgrp dev t2.txt

chgrp -R dev test3

[root@localhost opt]# chgrp dev2 ret.txt
[root@localhost opt]# ll
total 28
-rw-r--r--. 1 root     root 493 Jan  6 16:20 ret1.txt
-rw-r--r--. 1 root     dev2 436 Jan  6 16:16 ret.txt
drwxr-xr-x. 2 root     root   6 Mar 26  2015 rh
-rw-r--r--. 1 zhangsan root  70 Jan  6 17:01 t1.txt
-rw-r--r--. 1 zhangsan dev    5 Jan  6 16:19 t2.txt
drwxr-xr-x. 2 zhangsan root  20 Jan  6 15:56 test
drwxr-xr-x. 3 root     root  18 Jan  6 16:01 test1
drwxr-xr-x. 2 zhangsan dev   51 Jan  6 18:04 test2
drwxr-xr-x. 3 root     root  49 Jan  6 18:07 test3
-rw-r--r--. 1 root     root 981 Jan  6 18:07 test.tar.gz
-rw-r--r--. 1 root     root  53 Jan  5 17:55 test.txt
-rw-r--r--. 1 root     root 835 Jan  6 18:03 test.zip
[root@localhost opt]# chgrp -R dev2 test3
[root@localhost opt]# ll test3
total 8
-rw-r--r--. 1 root dev2 436 Jan  6 16:16 ret.txt
drwxr-xr-x. 2 root dev2  20 Jan  6 15:56 test
-rw-r--r--. 1 root dev2 835 Jan  6 18:03 test.zip

(二)权限

七、八、

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/193940.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32--SPI、I2C、CAND等常用通信外设总线概括

1. SPI SPI是串行外设接口( Serial Peripheral Interface)的缩写。 SPI,是一种高速的(之前做学传输比特115200 112k, 而SPI传输速度为10Mbps),全双工,同步的通信总线,并且在芯片的管…

Allegro如何改变线宽操作指导

Allegro如何改变线宽操作指导 用Allegro做pcb设计的时候,改变走线线宽是非常常用的功能,如下图 线宽目前是12mil,需要把线宽改成15mil 具体操作如下 选择Edit选择Change

摆脱银行询证函的烦恼,契约锁推出银行询证函数字化解决方案

近日,中国财政部会同银保监会印发“财会[2022]39号文件”,明确要加快推进银行函证数字化建设。鼓励具备条件的会计师事务所和银行通过银行函证平台(包括第三方函证平台和银行自建函证平台)开展数字化函证,有效提升函证…

Jenkins集群配置/并发构建

Jenkins集群配置/并发构建1、集群配置步骤1.1 Jenkins服务器规划1.2 添加节点1.2.1 添加Jenkins-02节点1.2.2 添加Jenkins-03节点1.3 Item配置1.4 执行构建任务测试是否成功集群化构建可以有效提升构建效率,尤其是团队项目比较多或是子项目比较多的时候,…

2023前端调试技巧

前端工作中,不仅编码很重要,重现bug,解决bug的能力同样重要。而这些都离不开代码调试。大厂面试题分享 面试题库前端面试题库 (面试必备) 推荐:★★★★★地址:前端面试题库PC调试console.log()…

支付宝调用支付流程(沙箱环境)

文章目录实现效果:前提准备支付流程方案一1. 导入依赖2. 配置文件3. 支付宝初始化4. 唤起支付方案二1. 导入依赖2. 唤起支付实现效果: 前提准备 由于本文只是提及支付的流程及其一些相关知识点,所以前提数据自行准备,参考支付宝支…

Micropython ESP32

Micropython ESP32模块列表network模块WIFI STA模式WIFI AP模式machine模块CPU主频GPIO端口GPIO输入模式GPIO输出模式GPIO中断模式ADC模数转换DAC数模转换PWM脉冲宽度调制UART串口Timer定时器官方文档 下载固件 模块列表 network模块 help(network) object <module ‘net…

域名基础知识

1.域名的概念及作用 域名&#xff08;Domain Name&#xff09;&#xff0c;又称网域&#xff0c;是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称&#xff0c;用于在数据传输时对计算机的定位标识&#xff08;有时也指地理位置&#xff09;。 由于IP地址…

vulnhub之PRIME (2021): 2

1.信息收集 输入arp-scan 192.168.239.0/24发现192.168.239.168主机存活。 使用nmap对目标主机192.168.239.168进行端口收集,&#xff0c;发现存活端口&#xff1a;22、80、139、445、10123。 访问http://192.168.239.168/&#xff0c;没有发现可用的信息。 使用gobuster进…

1、Maven——Maven项目管理工具基本设置、把Maven集成到IDEA2022

目录 一、Maven相关参数配置 1、配置依赖&#xff08;jar包&#xff09;存储位置&#xff08;本地仓库&#xff09; 2、 配置依赖下载地址 二、把Maven集成到IDEA2022 一、Maven相关参数配置 1、配置依赖&#xff08;jar包&#xff09;存储位置&#xff08;本地仓库&#…

vue使用echarts 仪表盘样式不对 | 使用echarts5.0

最近在使用Echarts官网样例的仪表盘图时候发现自己用的和官网的样例样式完全不一样。 无论怎么调整参数都还是没有办法解决。如果有同学碰到和我一样的问题可以尝试一下使用最新版的Echarts&#xff08;5.0以上&#xff09;。 因为曾经也怀疑过Echarts版本问题因此npm install…

MySQL详解(五)——高级 3.0

查询截取分析 慢查询日志 MySQL的慢查询日志是MySQL提供的一种日志记录&#xff0c;它用来记录在MySQL中响应时间超过阀值的语句&#xff0c;具体指运行时间超过long_query_time值的SQL&#xff0c;则会被记录到慢查询日志中。 具体指运行时间超过long_query_time值的SQL&am…

汇编语言-实现一个简单的主引导记录(MBR)引导用户程序

本文参考李忠老师的《X86汇编语言&#xff1a;实模式到保护模式》 前言 自己手动实现一个简单的主引导记录来引导用户程序&#xff0c;有助于了解 主引导程序的工作流程在汇编代码层面如何调用函数&#xff08;函数调用的原理&#xff09;在汇编代码层面如何读写硬盘&#xf…

Android中级——滑动分析

SrcollAndroid坐标系视图坐标系常见方法实现滑动layout()offsetLeftAndRight()和offsetTopAndBottom()LayoutParamsscrollTo()与scrollBy()ScrollerVierDragHeplerAndroid坐标系 将屏幕左上角的顶点作为Android坐标系的原点&#xff0c;向右为X轴正方向&#xff0c;向下为Y轴正…

uni-app中uni-ui组件库的使用

介绍uni-ui是DCloud提供的一个跨端ui库&#xff0c;它是基于vue组件的、flex布局的、无dom的跨全端ui框架。uni-ui不包括基础组件&#xff0c;它是基础组件的补充特点高性能&#xff08;自动差量更新数据&#xff0c;优化逻辑层和视图层通讯折损&#xff0c;背景停止&#xff0…

Leetcode力扣秋招刷题路-0337

从0开始的秋招刷题路&#xff0c;记录下所刷每道题的题解&#xff0c;帮助自己回顾总结 337. 打家劫舍 III&#xff08;Mid&#xff09; 小偷又发现了一个新的可行窃的地区。这个地区只有一个入口&#xff0c;我们称之为 root 。 除了 root 之外&#xff0c;每栋房子有且只有一…

ESP32+Arduino+OLED+u8g2播放视频

1、思路分析 ESP32采用Arduino开发&#xff0c;结合u8g2模块可以很方便地实现在oled上显示图片。因此&#xff0c;只需要将一个视频拆开成一帧帧&#xff0c;然后循环显示即可。 然而&#xff0c;有几个问题&#xff1a; 视频太大&#xff0c;esp32的flash无法存下怎么办&…

DynaSLAM-8 DynaSLAM中双目运行流程(Ⅱ):初始化SLAM系统部分System.cc

目录 1.回忆 2.System::System 1.回忆 上篇博客中我们讲述了DynaSLAM中初始化Mask R-CNN网络部分的代码。 这篇博客我们讲述初始化DynaSLAM除Mask R-CNN网络部分以外的代码。 2.System::System 初始化Mask R-CNN网络后&#xff0c;程序执行&#xff1a; // Create SLAM syst…

MongoDB 4.0支持事务了,还有多少人想用MySQL呢?

目录一、MongoDB 不支持事务&#xff1f;二、什么是事务&#xff1f;三、ACID的定义四、如何使用事务五、重要参数简介1、时间限制2、oplog大小限制六、连接池 数据库连接的缓存1、MongoDB查询数据五步走2、MongoDB连接池的参数配置七、聚合框架八、MongoDB文档格式设计1、限制…

【八大数据排序法】插入排序法的图形理解和案例实现 | C++

第十六章 插入排序法 目录 第十六章 插入排序法 ●前言 ●认识算法 ●一、插入排序法是什么&#xff1f; 1.简要介绍 2.图形理解 3.算法分析 ●二、案例实现 1.案例一 ●总结 前言 排序算法是我们在程序设计中经常见到和使用的一种算法&#xff0c;它主要是将…