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行内容。
基本语法
-
tail 文件 (功能描述:查看文件后 10行内容)
-
tail -n 5 文件(功能描述:查看文件后 5行内容,5可以是任意行数)
-
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指令-显示当前日期
基本语法
-
date(功能描述:显示当前时间)
-
date +%Y(功能描述:显示当前年份)
-
date +%m(功能描述:显示当前月份)
-
date +%d(功能描述:显示当前是哪一天)
-
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或关机
如果有收获!!! 希望老铁们来个三连,点赞、收藏、转发。
创作不易,别忘点个赞,可以让更多的人看到这篇文章,顺便鼓励我写出更好的博客