Linux最全命令总结【有代码演示,没有之一】

Linux的安装、目录结构介绍,以及shell5 远程连接:https://blog.csdn.net/weixin_45606067/article/details/107834549
vim编辑器、开关机、用户管理常见命令:https://blog.csdn.net/weixin_45606067/article/details/107845432

九、实用指令

1. 指定运行级别

运行级别说明:
0:关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启

常用运行级别是 3和 5,要修改默认的运行级别可改文件。

/etc/inittab 的 id:5:initdefault 这一行中的数字。

2. 切换到指定运行级别的指令

基本语法

init [012356]
在这里插入图片描述

应用实例

1)通过 init来切换不同的运行级别,比如动 5->3 ,然后关机

init 3
init 5
init 0

面试题

如何找回 root密码,如果我们不小心,忘记 root密码,怎么找回。

思路:进入到单用户模式,然后修改 root密码。因为进入单用户模式,root不需要密码就可以登录。

总结:

开机 -> 在引导时输入回车键 -> 看到一个界面输入 e -> 看到一个新的界面,选中第二行(编辑内核)在输入 e- > 在这行最后输入 1,再输入回车键 -> 再次输入 b,这时就会进入到单用户模式。

这时,我们就进入到单用户模式,使用 passwd指令来修改 root密码。

3.帮助指令

3.1 介绍

当我们对某个指令不熟悉时,我们可以使用 Linux提供的帮助指令来了解这个指令的使用方法。

3.2 man获得帮助信息

基本语法

man [命令或配置文件](功能描述:获得帮助信息)

应用实例

1)查看 ls命令的帮助信息
在这里插入图片描述

3.3 help指令

基本语法

help命令(功能描述:获得 shell内置命令的帮助信息)

应用实例

1)查看 cd命令的帮助信息
在这里插入图片描述

3.4 当一个指令不熟悉如何学习的建议

百度帮助更直接

虽然上面两个都可以来获取指令帮助,但是需要英语功底,如果英语不太好的,我还是推荐大家直接百度靠谱。

4.文件目录类

4.1pwd指令

基本语法

pwd (功能描述:显示当前工作目录的绝对路径)

应用实例

1)显示当前工作目录的绝对路径
在这里插入图片描述

4.2 ls指令

基本语法

ls [选项][目录或是文件]

常用选项

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

-l:以列表的方式显示信息

应用实例

1)查看当前目录的所有内容信息
在这里插入图片描述
在这里插入图片描述

4.3 cd指令

基本语法

cd [参数] (功能描述:切换到指定目录)

常用参数

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

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

绝对路径和相对路径

如何理解绝对路径和相对路径:
在这里插入图片描述

应用实例

1)使用绝对路径切换到 root 目录

cd /root

2)使用相对路径到 /root 目录

这里我们需要知道该用户目录在哪个目录下,才能写出这个指令,假设在/usr/lib。

cd ../../root

3)表示回到当前目录的上一级目录

cd ..

4)回到家目录

cd
cd ~

4.4 mkdir指令

指令介绍

mkdir指令用于创建目录(make directory)

基本语法

mkdir [选项] 要创建的目录

常用选项

-p:创建多级目录

应用实例

1)创建一个目录 /home/dog
在这里插入图片描述

2)创建多级目录 /home/animal/tiger
在这里插入图片描述

4.5 rmdir指令

指令介绍

rmdir指令删除空目录

基本语法

rmdir [选项] 要删除的空目录

应用实例

1)删除一个目录 /home/dog
在这里插入图片描述
使用细节

rmdir删除的是空目录,如果目录下有内容时无法删除的。

提示:如果需要删除非空目录,需要使用 rm -rf 要删除的目录。
在这里插入图片描述

4.6 touch指令

指令介绍

touch指令创建空文件

基本语法

touch 文件名称

应用实例

1)创建一个空文件 hello.txt
在这里插入图片描述
2)创建两个空文件 ok1.txt ok2.txt
在这里插入图片描述

4.7 cp指令【重要】

指令介绍

cp 指令拷贝文件到指定目录

基本语法

cp [选项] source dest

常用选项

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

应用实例

1)将 /home/aaa.txt 拷贝到 /home/bbb目录下[拷贝单个文件]
在这里插入图片描述

2)递归复制整个文件夹,举例

将 /home/test 整个目录拷贝到 /home/zwj 目录
在这里插入图片描述
使用细节

强制覆盖不提示的方法:\cp
在这里插入图片描述
技术小技巧

可以通过上下箭头的键,调出原来使用过的指令。

4.8 rm指令

指令介绍

rm指令移除【删除】文件或目录

基本语法

rm [选项] 要删除的文件或目录

常用选项

-r:递归删除整个文件夹

-f :强制删除不提示

应用实例

1)将 /home/aaa.txt 删除
在这里插入图片描述

2)递归删除整个文件夹 /home/bbb
在这里插入图片描述
使用细节

强制删除不提示的方法:带上 -f 参数即可
在这里插入图片描述

4.9 mv指令

指令介绍

mv 移动文件与目录或重命名

基本语法

mv oldNameFile newNameFile(功能描述:重命名)

mv /temp/movefile /targetFolder (功能描述:移动文件)

应用实例

1)将 /home/aaa.txt文件重新命名为 pig.txt
在这里插入图片描述
2)将 /home/pig.txt文件移动到 /root目录下
在这里插入图片描述

4.10 cat指令

指令介绍

cat查看文件内容,是以只读的方式打开。

基本语法

cat [选项] 要查看的文件

常用选项

-n:显示行号

应用实例

1)/etc/profile文件内容,并显示行号
在这里插入图片描述
使用细节

cat只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令 | more

cat文件名 | more [分页浏览]

4.11 more指令

指令介绍

more指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键,详见操作说明

基本语法

more 要查看的文件

应用实例

1)采用 more查看文件 /etc/profile
在这里插入图片描述
快捷键

操作 功能说明
空白键(space) 代表向下翻一页
Enter 代表向下翻[一行]
q 代表立即离开more,不在显示该文件内容
Ctrl+F 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号

4.12 less指令

指令介绍

less指令用来分屏查看文件内容,它的功能与 more指令类似,但是比 more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率

基本语法

less 要查看的文件

应用实例

1)采用 less 查看一个大文件文件 /opt/金庸-射雕英雄传 txt精校版.txt
在这里插入图片描述

快捷键

操作 功能说明
空白键 向下翻动一页
[pagedown] 向下翻动一页
[pageup] 向上翻动一页
/字串 向下搜寻[字符]的功能:n:向下查找;N:向上查找;
?字串 向上搜寻[字符]的功能:n:向上查找;N:向下查找;
q 离开less这个程序

4.13 >指令和 >>指令

指令介绍

> 指令和 >> 指令

> 输出重定向 :会将原来的文件的内容覆盖。

>> 追加:不会覆盖原来文件的内容,而是追加到文件的尾部。

基本语法

1)ls -l > 文件(功能描述:列表的内容写入文件 a.txt中(覆盖写))
在这里插入图片描述
说明:ls -l > a.txt ,将 ls -l的显示的内容覆盖写入到 a.txt文件,如果该文件不存在,就创建该文件。

2)ls -al >>文件(功能描述:列表的内容追加到文件 aa.txt的末尾)
在这里插入图片描述
3)cat文件1 > 文件2(功能描述:将文件 1的内容覆盖到文件 2)
在这里插入图片描述
4)echo “内容” >>文件

应用实例

1)将 /home目录下的文件列表写入到 /home/info.txt中
在这里插入图片描述
2)将当前日历信息追加到 /home/mycal文件中 [提示 cal ]
在这里插入图片描述

4.14 echo指令

指令介绍

echo输出内容到控制台。

基本语法

echo [选项][输出内容]

应用实例

1)使用 echo指令输出环境变量,输出当前的环境路径
在这里插入图片描述
2)使用 echo指令输出 hello,world!

echo hello,world!

4.15 head指令

指令介绍

head用于显示文件的开头部分内容,默认情况下 head指令显示文件的前 10行内容

基本语法

head 文件 (功能描述:查看文件头 10行内容)

head -n 5文件 (功能描述:查看文件头 5行内容,5可以是任意行数)

应用实例

1)查看/etc/profile的前面 5 行代码
在这里插入图片描述

4.16 tail指令

指令介绍

tail用于输出文件中尾部的内容,默认情况下 tail指令显示文件的后 10行内容。

基本语法

  1. tail 文件 (功能描述:查看文件后 10行内容)

  2. tail -n 5 文件(功能描述:查看文件后 5行内容,5可以是任意行数)

  3. tail -f 文件 (功能描述:实时追踪该文档的所有更新,工作经常使用)

应用实例

1)查看/etc/profile最后 5行的代码
在这里插入图片描述
2)实时监控 mydate.txt ,看看到文件有变化时,是否看到,实时的追加日期
在这里插入图片描述

4.17 ln指令

指令介绍

软链接也叫符号链接,类似于 windows里的快捷方式,主要存放了链接其他文件的路径。

基本语法

ln -s [原文件或目录] [软链接名](功能描述:给原文件创建一个软链接)

应用实例

1)在/home目录下创建一个软连接 linkToRoot,连接到 /root目录
在这里插入图片描述
2)删除软连接 linkToRoot
在这里插入图片描述

细节说明

当我们使用 pwd指令查看目录时,仍然看到的是软链接所在目录。

4.18 history指令

指令介绍

查看已经执行过历史命令,也可以执行历史指令

基本语法

history (功能描述:查看已经执行过历史命令)

应用实例

1)显示所有的历史命令
在这里插入图片描述

2)显示最近使用过的 10个指令。
在这里插入图片描述

3)执行历史编号为 5的指令
在这里插入图片描述

5. 时间日期类

5.1 date指令-显示当前日期

基本语法

  1. date(功能描述:显示当前时间)

  2. date +%Y(功能描述:显示当前年份)

  3. date +%m(功能描述:显示当前月份)

  4. date +%d(功能描述:显示当前是哪一天)

  5. date “+%Y-%m-%d %H:%M:%S”(功能描述:显示年月日时分秒)

应用实例

1)显示当前时间信息

date

2)显示当前时间年月日

date "+%Y-%m-%d"

3)显示当前时间年月日时分秒

date "+%Y-%m-%d %H:%M:%S"

5.2 date指令-设置日期

基本语法

date -s 字符串时间

应用实例

设置系统当前时间,比如设置成 2020-10-10 11:22:22

date -s "2020-10-10 11:22:22"

5.3 cal指令

指令介绍

查看日历指令

基本语法

cal [选项] (功能描述:不加选项,显示本月日历)

应用实例

1)显示当前日历

cal

2)显示 2019年日历

cal 2019

6. 搜索查找类

6.1 find 指令

指令介绍

find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。

基本语法

find [搜索范围][选项]

选项说明

选项 功能
-name<查询方式> 按照指定的文件名查找模式查找文件
-user<用户名> 查找数据指定用户名所有文件
-size<文件大小> 按照指定的文件大小查找文件

应用实例

1)按文件名:根据名称查找/home目录下的 hello.txt文件
在这里插入图片描述
2)按拥有者:查找/opt目录下,用户名称为 nobody的文件
在这里插入图片描述
3)查找整个 linux系统下大于 20m的文件(+n大于 -n小于 n等于)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4)1m = 1024k
在这里插入图片描述

5)查询 /目录下,所有 .txt的文件
在这里插入图片描述

6.2 locate指令

指令介绍

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

基本语法

locate 搜索文件

特别说明

由于 locate指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb指令创建 locate数据库

应用实例

1)请使用 locate指令快速定位 hello.txt文件所在目录
在这里插入图片描述

6.3 grep指令和管道符号 |

指令介绍

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

基本语法

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

常用选项

选项 功能
-n 显示屁屁行及行号
-i 忽略字母大小写

应用实例

1)请在 hello.txt 文件中,查找 “yes” 所在行,并且显示行号。
在这里插入图片描述

7. 压缩和解压类

7.1 gzip/gunzip指令

指令介绍

gzip用于压缩文件, gunzip用于解压的。

基本语法

gzip文件(功能描述:压缩文件,只能将文件压缩为*.gz文件)

gunzip文件.gz(功能描述:解压缩文件命令)

应用实例

1)gzip压缩,将 /home下的 hello.txt文件进行压缩
在这里插入图片描述
2)gunzip压缩,将 /home下的 hello.txt.gz文件进行解压缩
在这里插入图片描述
细节说明

当我们使用 gzip对文件进行压缩后,不会保留原来的文件

7.2 zip/unzip指令

指令介绍

zip用于压缩文件, unzip用于解压的,这个在项目打包发布中很有用的

zip基本语法

zip [选项] XXX.zip将要压缩的内容(功能描述:压缩文件和目录的命令)

zip常用选项

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

unzip基本语法

unzip [选项] XXX.zip(功能描述:解压缩文件)

unzip常用选项

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

应用实例

1)将 /home下的所有文件进行压缩成 mypackage.zip
在这里插入图片描述
2)将 mypackge.zip解压到 /opt/tmp目录下
在这里插入图片描述

7.3 tar指令

指令介绍

tar指令是打包指令,最后打包后的文件是 .tar.gz的文件。

基本语法

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

(功能描述:打包目录,压缩后的文件格式.tar.gz)

选项说明

选项 功能
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件

应用实例

1)压缩多个文件,将 /home/a1.txt和 /home/a2.txt压缩成 a.tar.gz
在这里插入图片描述
2)将/home的文件夹压缩成 myhome.tar.gz
在这里插入图片描述
3)将 a.tar.gz解压到当前目录
在这里插入图片描述
4)将 myhome.tar.gz解压到 /opt/目录下

指定解压到的那个目录,事先要存在才能成功,否则会报错
在这里插入图片描述

十、组管理和权限管理

1. Linux组基本介绍

在 linux中的每个用户必须属于一个组,不能独立于组外。在 linux中每个文件有所有者、所在组、其它组的概念。

1)所有者

2)所在组

3)其它组

4)改变用户所在的组

2. 文件 / 目录所有者

一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。

2.1 查看文件的所有者

基本语法

ls -ahl

应用实例

1)创建一个组 police,再创建一个用户 tom,将 tom放在 police组,然后使用 tom来创建一个文件 ok.txt
在这里插入图片描述
在这里插入图片描述

2.2 修改文件所有者

基本语法

chown 用户名 文件名

应用案例

1)使用 root创建一个文件 apple.txt,然后将其所有者修改成 tom
在这里插入图片描述

3. 组的创建

基本指令

groupadd 组名

应用实例

创建一个组 monster

创建一个用户 fox,并放入到 monster组中
在这里插入图片描述

4. 文件 / 目录所在组

当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组。

查看文件/目录所在组

基本指令

ls–ahl

应用实例

修改文件所在的组

基本指令

chgrp 组名文件名

应用实例

1)使用 root用户创建文件 orange.txt ,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到 police组
在这里插入图片描述

5. 其它组

除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组。

6. 改变用户所在组

在添加用户时,可以指定将该用户添加到哪个组中,同样的用 root的管理权限可以改变某个用户所在的组。

基本语法

usermod –g 组名 用户名

usermod –d 目录名用户名改变该用户登陆的初始目录

应用实例

1)创建一个土匪组(bandit)将 tom 这个用户从原来所在的 police组,修改到 bandit(土匪)组。
在这里插入图片描述

7. 权限的基本介绍

ls -l 中显示的内容如下:

-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

0-9位说明:

1)第 0位确定文件类型(d:目录, -:文件 , l:链接 , c :字符设备, b:块文件)

2)第 1-3位确定所有者(该文件的所有者)拥有该文件的权限。—User

3)第 4-6位确定所属组(同用户组的)拥有该文件的权限,—Group

4)第 7-9位确定其他用户拥有该文件的权限 —Other

在这里插入图片描述

8. rwx权限详解

rwx作用到文件

1)[ r ]代表可读(read):可以读取,查看

2)[ w ]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件。

3)[ x ]代表可执行(execute):可以被执行

rwx作用到目录

1)[ r ]代表可读(read):可以读取,ls查看目录内容

2)[ w ]代表可写(write):可以修改,目录内创建+删除+重命名目录

3)[ x ]代表可执行(execute:可以进入该目录

9. 文件及目录权限实际案例

ls -l 中显示的内容如下:(记住)

-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

10个字符确定不同用户能对文件干什么:

第一个字符代表文件类型:文件(-),目录(d),链接(l)

其余字符每 3个一组(rwx)读(r)(w)执行(x)

第一组 rwx :文件拥有者的权限是读、写和执行

第二组 rw- :与文件拥有者同一组的用户的权限是读、写但不能执行

第三组 r-- :不与文件拥有者同组的其他用户的权限是读不能写和执行

可用数字表示为: r=4,w=2,x=1因此 rwx=4+2+1=7
在这里插入图片描述

10.修改文件权限-chmod

基本说明

通过 chmod指令,可以修改文件或者目录的权限

第一种方式:+、-、=变更权限

u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)

1)chmod u=rwx,g=rx,o=x 文件目录名

2)chmod o+w 文件目录名

3)chmod a-x 文件目录名

案例演示

1)给 abc 文件的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限
在这里插入图片描述
2)给 abc文件的所有者除去执行的权限,增加组写的权限
在这里插入图片描述
3)给 abc文件的所有用户添加读的权限
在这里插入图片描述

第二种方式:通过数字变更权限

规则:r=4 w=2 x=1

chmod u=rwx,g=rx,o=x

相当于 chmod 751 文件目录名

案例演示

1)将 /home/abc.txt文件的权限修改成 rwxr-xr-x,使用给数字的方式实现

分析:rwx = 4+2+1 = 7

​ r-x = 4+1=5

​ r-x = 4+1 =5

chmod 755 /home/abc.txt

11. 修改文件所有者-chown

基本介绍

chown newowner file改变文件的所有者

chown newowner:newgroup file改变用户的所有者和所有组

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

案例演示

1)请将 /home/abc .txt文件的所有者修改成 tom
在这里插入图片描述
2)请将 /home/kkk目录下所有的文件和目录的所有者都修改成 tom

首选我们应该使用 root操作。
在这里插入图片描述

12. 修改文件所在组-chgrp

基本介绍

chgrp newgroup file 改变文件的所有组

案例演示

1)请将 /home/abc .txt文件的所在组修改成 bandit (土匪)

chgrp bandit /home/abc.txt

2)请将 /home/kkk目录下所有的文件和目录的所在组都修改成 bandit(土匪)

chgrp -R bandit /home/kkk

13. 练习

最佳实践-警察和土匪游戏

police , bandit

jack, jerry:警察

xh, xq:土匪

(1)创建组

groupadd police
groupadd bandit

(2)创建用户

useradd -g police jack
useradd -g police jerry
useradd -g bandit xh
useradd -g bandit xq
passwd jack
passwd jerry
passwd xh
passwd xq

(3)jack创建一个文件,自己可以读写,本组人可以读,其它组没人任何权限

chmod 640 jack01.txt

(4) jack修改该文件,让其它组人可以读,本组人可以读写者

chmod o=r,g=rw jack01.txt

(5) xh投靠警察,看看是否可以读写

先用 root修改 xh 的组

usermod -g police xh

使用 jack给他的家目录 /home/jack的所在组一个 rx的权限

chmod g=rx jack/

xh需要重新注销在到 jack目录就可以操作 jack的文件

ls -l
vim jack01.txt

练习文件权限管理

建立两个组(神仙,妖怪)

建立四个用户(唐僧,悟空,八戒,沙僧)

设置密码

把悟空,八戒放入妖怪唐僧沙僧在神仙

用悟空建立一个文件(monkey.java该文件要输出 i am monkey)

给八戒一个可以 r w的权限

八戒修改 monkey.java加入一句话( i am pig)

唐僧沙僧对该文件没有权限

把沙僧放入妖怪组

让沙僧修改该文件 monkey,加入一句话 (“我是沙僧,我是妖怪!”);

练习2

1用 root登录,建立用户 mycentos,自己设定密码

2.用 mycentos登录,在主目录下建立目录 test/t11/t1

3.在 t1中建立一个文本文件 aa,用 vi编辑其内容为 ls–al

4.改变 aa的权限为可执行文件[可以将当前日期追加到一个文件],运行该文件./aa

5.删除新建立的目录 test/t11/t1

6.删除用户 mycentos及其主目录中的内容

7.将 linux设置成进入到图形界面的

8.重新启动 linux或关机


如果有收获!!! 希望老铁们来个三连,点赞、收藏、转发。
创作不易,别忘点个赞,可以让更多的人看到这篇文章,顺便鼓励我写出更好的博客

猜你喜欢

转载自blog.csdn.net/weixin_45606067/article/details/107845670
今日推荐