第二章 Linux 实操

第二章 Linux 实操

1、Linux 实用指令

指定运行级别

运行级别说明:

  • 0:关机
  • 1:单用户【找回丢失密码】
  • 2:多用户状态没有网络服务
  • 3:多用户状态有网络服务(实际生产环境用这个)
  • 4:系统未使用保留给用户
  • 5:图形界面
  • 6:系统重启

常用运行级别是3和5,也可以指定默认运行级别

应用实例:

命令:init[0 1 2 3 4 5 6]

通过 init 来切换不同的运行级别,比如从5切换到3,然后关机

查看当前的运行级别
systemctl get-default

Untitled

multi-user.target,等价于运行级别3

graphical.target,等价于运行级别5

切换到5的运行级别
systemctl set-default graphical.target

找回root密码

经典面试题:如何找回root密码?

  1. 首先,启动系统,进入开机界面,在界面中按“e”进入编辑界面。如图
  2. 进入编辑界面,使用键盘上的上下键把光标往下移动,找到以“Linux16”开头内容所在的行数”,在行的最后面输入:init=/bin/sh。如图

https://typoraxiexu.oss-cn-shenzhen.aliyuncs.com/img/202210220840430.png

  1. 接着,输入完成后,直接按快捷键:Ctrl+x 进入单用户模式
  2. 接着,在光标闪烁的位置中输入:mount -o remount,rw /(注意:各个单词间有空格,逗号间没有空格),完成后按键盘的回车键(Enter)。如图

https://typoraxiexu.oss-cn-shenzhen.aliyuncs.com/img/202210220844743.png

  1. 在新的一行最后面输入:passwd, 完成后按键盘的回车键(Enter)。输入密码,然后再次确认密码即可(提示: 密码长度最好8位以上,但不是必须的),密码修改成功后,会显示passwd…的样式,说明密码修改成功

https://typoraxiexu.oss-cn-shenzhen.aliyuncs.com/img/202210220845039.png

  1. 接着,在鼠标闪烁的位置中(最后一行中)输入:touch /.autorelabel(注意:touch与 /间有一个空格),完成后按键盘的回车键(Enter)
  2. 继续在光标闪烁的位置中,输入:exec /sbin/init(注意:exec与 /间有一个空格),完成后按键盘的回车键(Enter),等待系统自动修改密码(提示:这个过程时间可能有点长,耐心等待),完成后,系统会自动重启, 新的密码生效了

https://typoraxiexu.oss-cn-shenzhen.aliyuncs.com/img/202210220847598.png

帮助命令

man获得帮助信息

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

案例:查看 ls 命令的帮助信息(man ls

ls -a:列出所有文件,包括以 “.” 开头的隐含文件

Untitled

说明:在Linux下,隐藏文件是以“.”开头的,选项可以组合使用,例如:ls -al

ls -l:单列输出

Untitled

help 指令

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

Untitled

文件目录类

pwd指令

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

Untitled

ls指令

基本语法:ls [选项] [目录或是文件]

常用选项:

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

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

cd指令

基本语法:cd [参数] (功能描述:切换到指定的目录)

理解:绝对路径和相对路径(相对路径是针对当前位置的路径)

cd ~ 或者 cd 回到自己的家目录,比如你是root,那么 cd ~ 就是到 /root 目录

Untitled

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

Untitled

mkdir 指令

基本语法:mkdir [选项] 要创建的目录

理解:mkdir指令用于创建目录(默认只能创建一级目录)

常用选项:

-p:创建多级目录

Untitled

rmdir 指令(用于删除空目录)

基本语法:rmdir [选项] 要删除的空目录

使用细节:

  • rmdir 删除的是空目录,如果想要删除的目录下有内容则无法删除
  • 如果需要删除非空目录,需要使用 rm -rf 要删除的目录

Untitled

touch指令(用于创建空文件)

基本语法:touch 文件名称

实例:在 /home 目录下创建一个空文件 hello.txt

Untitled

cp指令(copy拷贝文件到指定目录)

基本语法:cp [选项] source dest

常用选项:

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

应用实例:

  1. 将 /home/hello.txt 拷贝到 /home/bbb 目录下

Untitled

  1. 递归复制整个文件夹,将 /home/bbb 整个目录下的文件全部拷贝到 /home/opt

Untitled

使用细节:强制覆盖不提示的方法:\cp

\cp -r /home/bbb/ /optt/

rm指令(remove,移除文件或目录)

基本语法:rm [选项] 要删除的文件或目录

Untitled

常用选项:

  • -r:递归删除整个文件夹
  • -f :强制删除不提示

使用细节:强制删除不提示的方法,带上 -f 参数即可

Untitled

mv指令(move,移动文件与目录或重命名)

基本语法:

  • mv oldNameFile newNameFile(功能描述:如果两个文件在同一个目录,相当于重命名)
  • mv /temp/movefile /targetFolder(功能描述:移动文件,剪切)

Untitled

使用细节:移动并重命名

Untitled

应用实例:移动整个目录,比如将 /opt/bbb 移动到 /home 下

Untitled

cat指令(查看文件内容)

基本语法:cat [选项] 要查看的文件

常用选项: -n 显示行号

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

Untitled

cat -n /etc/profile | more

more指令

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

基本语法:more 要查看的文件

操作说明:如下图

Untitled

less 指令

Untitled

echo 指令

echo 输出内容到控制台

基本语法:echo [选项] [输出内容]

实例:

  1. 使用 echo 指令输出环境变量,比如输出 P A T H 、 PATH、 PATHHOSTNAME

Untitled

  1. 使用 echo 指令输出 hello,world!

Untitled

head 指令

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

基本语法:

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

应用实例:

  1. 查看 /etc/profile 的前面5行代码

Untitled

tail 指令

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

基本语法:

  1. tail 文件(功能描述:查看文件尾10行内容)
  2. tail -n 5 文件(功能描述:查看文件尾5行内容,5可以是任意行数)
  3. tail -f 文件(功能描述:实时追踪该文档的所有更新)

应用实例:

  1. 查看 /etc/profile 最后5行的代码

Untitled

  1. 实时监控 mydate.txt,看看文件有变化时,是否能看到,实时的追加日期

Untitled

退出可以按下Ctrl键 + C键

指令 和 >>指令

输出重定向

追加

基本语法:

1. ls -l > 文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))
2. ls -al >> 文件 (功能描述:列表的内容追加到文件aa.txt的末尾)
3. cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件24. echo "内容" >> 文件 (追加)

应用实例:

  1. 将 /home 目录下的文件列表写入到 /home/info.txt 中,覆盖写入
ls -l /home > /home/info.txt [如果info.txt没有,则会创建]

Untitled

  1. 将当前日历信息追加到 /home/mycal 文件中

显示当前日历信息:cal

Untitled

ln指令

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

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

应用实例:

  1. 在/home 目录下创建一个软连接 myroot,连接到 /root 目录

Untitled

  1. 删除软连接 myroot

Untitled

细节说明:当我们使用pwd指令查看目录时,仍然看到的是软连接所在的目录。

history指令

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

history		  查看所有的历史指令
history 10    查看最近使用过的10个指令	
!5 			  执行历史编号为5的指令

Untitled

时间日期类

date指令-显示当前日期

基本语法:

date				  显示当前时间
date +%Y			显示当前年份
date +%m			显示当前月份
date +%d			显示当前是哪一天
date "+%Y-%m-%d %H:%M:%S" 显示年月日时分秒

应用实例:

  1. 显示当前时间信息
  2. 显示当前时间年月日

Untitled

  1. 显示当前时间年月日时分秒

Untitled

date指令-设置日期

基本语法:

date -s 字符串时间

应用实例:

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

cal指令

查看日历指令

基本语法:

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

Untitled

搜索查找类

find 指令

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

基本语法:

find [搜索范围] [选项]

选项说明(可填选项):

Untitled

说明:当查询路径下无该文件,就不会有任何显示

应用实例:

  1. 按文件名:根据名称查找 /home 目录下的 hello.txt 文件

Untitled

  1. 按拥有者:查找 /opt 目录下,用户名称为 nobody 的文件

Untitled

  1. 查找整个Linux系统下大于200M的文件(+n大于、-n小于、n等于,单位有 k,M,G)

Untitled

locate指令

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

基本语法:

locate 搜索文件

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

应用实例:请使用 locate 指令快速定位 hello.txt 文件所在的目录

Untitled

which指令

可以查看某个指令在哪个目录下

比如:查看 ls 指令在哪个目录下

Untitled

grep指令和管道符号 |

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

基本语法:

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

常用选项:

Untitled

应用实例:

请在 hello.txt 文件中,查找“yes”所在行,并且显示行号

两种写法:

1. cat /home/hello.txt | grep -n "yes" 
2. grep -n "yes" /home/hello.txt

Untitled

压缩和解压类

gzip / gunzip 指令

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

基本语法:

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

应用实例:

  1. gzip 压缩,将 /home 目录下的 hello.txt 文件进行压缩
  2. gunzip 解压,将 /home 目录下的 hello.txt.gz 文件进行解压

Untitled

zip / unzip 指令

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

基本语法:

zip [选项] xxx.zip 将要压缩的内容(功能描述:一般是文件和文件夹)
uzip [选项] xxx.zip (功能描述:解压文件)
  • zip 常用选项:

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

  • unzip 常用选项:

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

  • 应用实例:
  1. 将整个 /home 目录(包括home目录本身)下的所有文件/文件夹进行压缩成 myhome.zip

Untitled

Untitled

  1. 将 myhome.zip 解压到 /opt/tmp 目录下

Untitled

Untitled

tar指令

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

基本语法:

tar [选项] xxx.tar.gz  打包的内容 (功能描述:打包目录或文件,压缩后的格式.tar.gz)

选项说明:

Untitled

应用实例:

  1. 压缩多个文件,将 /home/pig.txt 和 /home/cat.txt 压缩成 pc.tar.gz

Untitled

  1. 将 /home 的文件夹压缩成 myhome.tar.gz

Untitled

Untitled

  1. 将 pc.tar.gz 解压到当前目录

Untitled

  1. 将 myhome.tar.gz 解压到 /opt/tmp2 目录下

Untitled

Untitled

2、组管理和权限管理

Linux 组的基本介绍

  • 在 Linux 中的每个用户都必须属于一个组,不能独立于组外。
  • 在 Linux 中的每个文件都有所有者所在组其他组的概念。
  1. 所有者
  2. 所在组
  3. 其他组
  4. 改变用户所在的组

文件/目录的所有者

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

查看文件的所有者

指令: ls -ahl

应用实例:下面应该是所在组,这里写错了

Untitled

注意:蓝色代表目录,白色代表普通文件

修改文件所有者

指令:chown 用户名 文件名

应用实例:

使用 root 创建一个文件 apple.txt,然后将其所有者修改成 tom

Untitled

组的创建

基本指令:

groupadd 组名

应用实例:

  1. 创建一个组,monster
  2. 创建一个用户 fox,并放入到 monster 组中

Untitled

文件/目录的所在组

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

查看文件/目录的所在组

基本指令:

ls -ahl

应用实例:

  1. 使用 fox 创建一个文件,看看该文件属于哪个组?

Untitled

修改文件所在的组

基本指令:

chgrp 组名 文件名

应用实例:

  1. 使用 root 用户创建文件 orange.txt,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到 fruit 组。

Untitled

Untitled

其他组

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

改变用户所在组

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

改变用户所在的组

usermod -g 新组名 用户名
usermod -d 目录名 用户名 (功能描述:改变该用户登录的初始目录,特别说明:用户需要有进入新目录的权限)

应用实例:

将 zwj 这个用户从原来所在组,修改到 wudang 组。

Untitled

权限的基本介绍

ls -l 显示的内容如下:

-rw-r--r--(第一列) 1 root root 0 Oct 22 11:08 pig.txt

第一列的 0-9 位说明:

  • 第 0 位确定文件类型(d、-、l、c、b)
    • l 是链接,相当于Windows的快捷方式
    • d是目录,相当于Windows的文件夹
    • c是字符设备文件,比如鼠标、键盘
    • b是块设备,比如硬盘
    • -是普通文件
  • 第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限 —User
  • 第 4-6 位确定所属组(同用户组的)拥有该文件的权限 —Group
  • 第 7-9 位确定其他用户拥有该文件的权限 —Other

rwx 权限详解(难点)

rwx 作用到文件

  • 【r】代表可读(read):可以读取、查看
  • 【w】代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
  • 【x】代表可执行(execute):可以被执行

rwx 作用到目录

  • 【r】代表可读(read):可以读取,ls查看目录内容
  • 【w】代表可写(write):可以修改,对目录内创建文件、删除文件、重命名文件
  • 【x】代表可执行(execute):可以进入该目录

文件及目录权限实际案例

ls -l 显示的内容如下:

	10个字符    所有者  所在组
-rwxrw-r-- 1 root   root  1213 Feb 2 09:39 abc

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

  • 第一个字符代表文件类型:(d、-、l、c、b)
  • 其余字符每三个一组(rwx)读(r)写(w)执行(x)
  • 第一组 rwx:文件拥有者的权限是读、写和执行
  • 第二组 rw-:与文件拥有者同一组的用户的权限是读、写但不能执行
  • 第三组 r--:不与文件拥有者同组的其他用户的权限是只能读,不能写和执行

可用数字表示为:r=4、w=2、x=1,因此 rwx = 4+2+1 = 7

其他说明

1                   如果是文件:表示硬件连接数,如果是目录:表示子目录数+文件数
root                文件所有者
root                文件所在组
1213                文件大小(字节),如果是文件夹则显示4096字节
Feb 2 0939        最后修改日期
abc                 文件名

修改权限 - chmod

基本说明:通过 chmod 指令,可以修改文件或目录的权限。

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

u:所有者

g:所在组

o:其他用户

a:所有人(u、g、o的总和)

  • chmod u=rwx,g=rx,o=x 文件/目录名
  • chmod o+w 文件/目录名
  • chmod a-x 文件/目录名

应用实例:

  1. 给abc文件的所有者赋予读写和执行的权限,给所在组赋予读和执行的权限,给其他组赋予读和执行的权限
chmod u=rwx,g=rx,o=rx abc

Untitled

  1. 给abc文件的所有者除去执行的权限,赋予所在组写的权限
chmod u-x,g+w abc

Untitled

  1. 给abc文件的所有用户赋予读的权限
chmod a+r abc

Untitled

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

r=4、w=2、x=1,rwx=4+2+1

chmod u=rwx,g=rx,o=x 文件/目录名
相当于 chmod 751 文件/目录名

应用实例:

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

Untitled

修改文件的所有者 - chown

基本介绍

chown newowener 文件/目录 改变所有者
chown newonwner:newgroup 文件/目录 改变所有者和所在组
-R 如果是目录,则使其下所有子文件或目录递归生效(recursion)

应用实例:

  1. 请将 /home/abc.txt 文件的所有者修改成 tom

Untitled

  1. 请将 /home/kkk 目录下所有的文件和目录的所有者都修改成 tom

Untitled

修改文件/目录的所在组 - chgrp

基本介绍:

chgrp newgroup 文件/目录 (功能描述:改变所在组)

应用实例:

  1. 请将 /home/abc.txt 文件的所在组修改成 shaolin(少林)

Untitled

  1. 请将 /home/kkk 目录下所有的文件和目录的所在组都修改成 shaolin(少林)

Untitled

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

猿小羽

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

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

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

打赏作者

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

抵扣说明:

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

余额充值