Linux 入门教程

Linux 入门教程


内容概要:

Liunx 介绍

什么是 Linux



Linux 版本

内核版本

发行版本

VMware 安装完成后

安装 Linux 系统

我将使用的 VMware 虚拟机 来安装 Liunx 操作系统,具体安装步骤如下:

Linux 安装步骤:
1、安装 VMware 虚拟机 2、下载 Linux 镜像 3、安装 Liunx 系统

安装 VMware 虚拟机

虚拟机的安装和普通电脑软件安装一样,这个就不演示了。虚拟机点击左侧下载: VMware 虚拟机下载

下载 Linux 镜像

以下是各种 Linux 镜像下载地址 ,选择下载即可。如下图:

安装 Liunx 系统


















刚安装好是无法联网的,通过以下设置即可联网:

使用 Linux 系统

小白命令汇总

1
2
3
4
5
6
7
init 0      # 让 Linux 系统关机
init 3 # 由图形界面进入到命令行
startx # 由命令行进入到图形界面
exit # 退出当前用户
su - root # 用户切换操作:切换到 root 管理员用户
su - Jack # 用户切换操作:切换到 Jack 普通用户
ls / # 查看根目录下的文件或文件夹,例如:ls /root ls /bin ls /sbin

root 用户和普通用户

如果 非 root 用户 登陆,用户名后面显示的是 "$" ,如下图:

如果是 root 用户 登陆,用户名后面显示的是 "#" ,如下图:

使用终端

使用终端的三种方式:
1、图形终端 2、命令行终端 3、远程终端(SSH , VNC)

常见目录介绍




系统操作

万能帮助命令

为什么要学习帮助命令: Linux 的基本操作是命令行,里面有海量的命令不适合我们死记硬背,所以当我们不知道如何使用一个 Liunx 命令时,我们就可以使用以上的三种帮助命令来获取相关命令介绍,从而学会如何使用该命令。

man 帮助命令

通过上图介绍,我们知道了 man 命令 的相关用法。举个例子,如果我们不知道 ls 命令 怎么用,那么就使用 man ls 来获取 ls 命令的相关介绍。当然了,我们也可以使用 man man 来获取 man 命令的相关帮助。如下图:

man 后面为什么要加上章节呢?

因为 有些命令是重名的,不加上章节的话,就容易相关命令弄混。举例如下:

1
2
3
4
5
6
7
8
# 命令 passwd 帮助
man 1 passwd

# 文件格式规范中的 passwd 帮助
man 5 passwd

# 如果不知道是哪一章的命令
man -a passwd

help 帮助命令

上图中有 内部命令外部命令 ,那么如何区分呢?欲知详情,请看下图:

由上图可知, cd 命令 是内部命令,ls 命令 是外部命令。

info 帮助命令

info 帮助命令是英文的,理解优点难度。下图是 ls 的 info 帮助命令:

文件操作相关命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
man pwd             # 查看 pwd 命令帮助信息
pwd # 显示当前目录名称
pwd --help # 显示帮助信息,然后退出
pwd --version # 显示版本信息,然后退出

cd # 更改当前的操作目录
cd / # 回到根目录
cd - # 返回上一次操作
cd .. # 返回上一级

cd /path/to/... # 绝对路径
cd ./path/to/... # 相对路径
cd ../path/to/... # 相对路径

ls # 查看当前目录下的文件
ls -l . # 这个 . 是作为参数,代表当前目录,默认可省略
ls [选项] [文件名] # 选项是用来扩充 ls 命令的功能,文件名是 ls 命令的参数

clear # 清除屏幕,Ctrl + L 也行

初识 ls 命令

Linux 中文件的颜色代表了是否有权限,有时 ls 命令 会提示权限不足,说明当前的用户还没有权限查看当前的文件。如下图:

以下各种命令都在图片中了,这样方便查看效果:







初识 cd 命令


目录操作相关命令

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
32
33
# 创建一级文件夹
mkdir /guo # 在根目录下创建 guo 文件夹
mkdir guo # 在当前目录创建 guo 文件夹
mkdir A B C # 在当前目录创建 A B C 三个文件夹
mkdir A # 如果文件已经存在,那么会提示无法船创建目录


# 创建多级文件夹
mkdir A/E # 在 A 文件夹里创建 E 文件夹
mkdir A/E/F # 在 A 文件夹下的 E 文件夹里创建 F 文件夹
mkdir -p A/G/H # 这样创建可以一次性创建多个文件夹,不需要一个一个地创建


# 删除文件夹
rmdir /guo # 删除根目录下的 guo 文件夹,如果文件夹非空,会无法删除
rm -r /a # 删除根目录下的 guo 文件夹,如果文件夹非空,会进行提示
rm -r -f /a # 删除根目录下的 guo 文件夹,如果文件夹非空,不会进行提示
rm -r -f / a # 这条命令慎用,一旦执行,操作系统就没了。慎用~~~


# 复制文件和目录
touch f-A # 创建一个文件
cp guo /tmp # cp 是 copy 的意思,命令表示把当前 guo 这文件复制到 tmp 文件夹下
cp -r guo /tmp # guo 如果是文件夹,就要用这条命令,是文件,就用上一条命令即可
cp -v f-A /tmp # 把文件复制到 tmp 目录,并且显示进度条,去掉 -v 则不显示进度条
cp -p f-A /tmp # -p 表示保留原先文件的时间
cp -a f-A /tmp # -a 表示保留原先文件的的所有属性。例如:权限、作者、创建时间等等


# 移动和重命名文件和文件夹
mv f-A f-B # 把文件 f-A 重命名为 f-B,其实 Linux 底层做的就是一个移动操作
mv f-A /tmp # 把文件 f-A 移动到 tmp 文件夹下面
mv /tmp/f-A /f-C # 移动操作和重命名操作同时进行,把 tmp 文件夹下的 f-A 文件移动到根目录并重命名为 f-C

创建和删除目录



移动和复制目录



通配符


文本查看相关命令

1
2
3
4
5
6
7
8
9
10
11
cat file-1        # 查看文件
head file-1 # 查看文件开头部分,默认 10 行
head -3 file-1 # 查看文件开头前 3 行内容

tail file-1 # 查看文件结尾部分,默认 10 行
tail -3 file-1 # 查看文件结尾 3 行内容
tail -f file-1 # 动态追踪文件,如日志文件

wc -l file-1 # 显示文件的总行数
more file-1 # 按行显示内容
less file-1 # 使用 less 可以随意浏览文件,比 more 更强大



打包和压缩相关命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
tar cf /AA.tar /etc          # tar 命令的选项是没有减号的,选项中的 f 代表打包成文件
ls -l /AA.tar # 查看文件大小,单位是字节
ls -lh /AA.tar # 查看文件大小,单位是兆

# 打包并压缩
tar czf /AA.tar.gz /etc # z 代表集成了 gzip 压缩命令,此处代表打包并压缩
tar cjf /AA.tar.bz2 /etc # j 代表集成了 bzip2 压缩命令,此处代表打包并压缩,且压缩程度比 gzip 高,耗时也更多

# 解压
tar xf /AA.tar -C /guo # 解压 AA.tar ,-C 代表指定解压到某个目录,它的后面就是解压的目的地。如果不写 -C ,那么会报错
tar zxf /AA.tar.gz -C /guo # 解压 AA.tar.gz
tar jxf /AA.tar.bz2 -C /guo # 解压 AA.tar.bz2

# 小提示:
# tar.gz 的缩写 tgz , tar.bz2 的缩写 tbz2 。
# tar xf 也可以解压 tar.gz 和 tar.bz2 等压缩文件。
# It is over !!!


vim 的四种模式

vi 与 vim 的区别:
1、多级撤消:在 vi 中,按u只能撤消上次命令,而在 vim 里可以无限制的撤消。 2、易用性:vi 只能运行于 unix 中,而 vim 不仅可以运行于 unix,还可用于 windows、mac 等多操作平台。 3、语法加亮:vim 可以用不同的颜色来加亮你的代码,在 vi 中没有。 4、对 vi 完全兼容:可以把 vim 当成 vi 来使用。

小结一下: vi 和 vim 都是 Linux 中的编辑器,不同的是 vim 比较高级,可以视为 vi 的升级版本。vi 适用于文本编辑,但是 vim 更适用于写代码。注意事项: 如果不在正常模式,就按 Esc 即可回到正常模式。

那我们来练习一下,在 Liunx 终端输入 vi ,然后就进入到了 vi 模式:


在 Liunx 终端输入 vim ,然后也可以进入到了 vim 模式:


vim 命令汇总

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# 正常模式下可进行的操作
## 光标移动操作 上下左右键盘也可以移动光标,但是如果是字符终端对文本进行控制,那么可能产生乱码
小写 h # 光标向左移动
小写 j # 光标向下移动
小写 k # 光标向上移动
小写 l # 光标向右移动

## 文本复制、剪切、粘贴、撤回、恢复等操作
yy # 复制光标所在位置的一整行,此处复制产生换行
y$ # 复制光标所在位置到行末,此处复制不产生换行
n yy # 复制 n 行,n 是数字,起始位置为光标所在位置算作第一行
n y$ # 复制 n 行,n 是数字,起始位置为光标所在位置到行末算作第一行
dd # 剪切光标所在一整行,包括换行符
d$ # 剪切光标所在一整行,不包括换行符
p P # 粘贴操作,直接按 p 即可把复制的内容粘贴到光标位置
小写 u # 撤回操作
ctrl + r R # 恢复操作
x # 删除单个字符,即光标所在字符会被删除
r + 需替换字符 # 替换单个字符,即光标所在字符会被替换成其他字符
:set nu # 显示行号
n shift + g # 跳转到指定行,n 代表行数,此操作类似于 Windows 中的 ctrl + g
gg # 直接跳转到第一行
大写 G # 跳转到最后一行
^ # 来到光标所在行开头
$ # 来到光标所在行结尾

## 模式进入操作
小写 i # 进入到插入模式
大写 I # 进入到插入模式
小写 o # 进入到插入模式
大写 O # 进入到插入模式
小写 a # 进入到插入模式
大写 A # 进入到插入模式
小写 s # 进入到插入模式
大写 S # 进入到插入模式

冒号 : # 进入到命令模式
esc键 # 回到正常模式

小写 v # 进入到可视模式,选中光标所在的字符,上下左右移动的单位是字符
大写 V # 进入到可视模式,选中光标所在的行,上下移动的单位是行
ctrl + v # 可视块,以列为单位,相当于 Windows 中的 alt 键的块,然后插入需要的值,按 esc 即可看到效果


# 命令模式可进行的操作
## 保存和退出操作
:w # 保存已有文件名的文件
:wq # 保存已有文件名的文件并退出
:x # 保存已有文件名的文件并退出
:w /a.txt # 保存没有文件名的文件,并保存到根目录下的 a.txt
:q # 表示退出
:qa! # 强制退出且不保存
:q! # 表示不保存
!+linux命令 # 临时执行一条 Linux 命令,例如:!ifconfig,表示临时查看 ip 地址

## 查找和替换命令
/+查找内容 # 文本查找,正斜杠后面不要空格,除非你需要查询空格,按小写 n 查找下一个匹配项, 大写 N 查找上一个匹配项
:s/x/B # 单个字符替换,把光标所在位置的 x 替换成 B
:%s/x/B # 全文替换,把整篇文本每行的第一个 x 替换成 B,如果一行存在多个 x,只会替换第一个
:%s/x/B/g # 全文替换,把全文的 x 替换成 B,如果一行存在多个 x,那么全部都会被替换成 B
3,5/x/B # 指定范围替换单个匹配字符,每行被找到的第一个 x 会被替换成 B,范围在第 3 行到第 5 行
3,5/x/B/g # 指定范围全局替换,第三行到第五行所有匹配字符 x 都会被替换成 B

## 对 vim 的设置
:set nu # 显示行号,单次生效
:set nonu # 不显示行号,单次生效
:set hlsearch # 高亮显示,单次生效
:set nohlsearch # 去除高亮显示,单次生效

## 修改 vim 配置文件,使设置永久生效
vim /etc/vimrc # 编辑 vim 配置文件
:set nu # 然后到最后一行添加此代码,表示每次使用 vim 编辑文本都会显示行号

正常模式

正常模式下的各种命令操作汇总:

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 光标移动操作  上下左右键盘也可以移动光标,但是如果是字符终端对文本进行控制,那么可能产生乱码   
小写 h # 光标向左移动
小写 j # 光标向下移动
小写 k # 光标向上移动
小写 l # 光标向右移动



# 文本复制、剪切、粘贴、撤回、恢复等操作
yy # 复制光标所在位置的一整行,此处复制产生换行
y$ # 复制光标所在位置到行末,此处复制不产生换行
n yy # 复制 n 行,n 是数字,起始位置为光标所在位置算作第一行
n y$ # 复制 n 行,n 是数字,起始位置为光标所在位置到行末算作第一行
dd # 剪切光标所在一整行,包括换行符
d$ # 剪切光标所在一整行,不包括换行符
p P # 粘贴操作,直接按 p 即可把复制的内容粘贴到光标位置
小写 u # 撤回操作
ctrl + r R # 恢复操作
x # 删除单个字符,即光标所在字符会被删除
r + 需替换字符 # 替换单个字符,即光标所在字符会被替换成其他字符
:set nu # 显示行号
n shift + g # 跳转到指定行,n 代表行数,此操作类似于 Windows 中的 ctrl + g
gg # 直接跳转到第一行
大写 G # 跳转到最后一行
^ # 来到光标所在行开头
$ # 来到光标所在行结尾



# 模式进入操作
小写 i # 进入到插入模式
大写 I # 进入到插入模式
小写 o # 进入到插入模式
大写 O # 进入到插入模式
小写 a # 进入到插入模式
大写 A # 进入到插入模式
小写 s # 进入到插入模式
大写 S # 进入到插入模式

冒号 : # 进入到命令模式
esc键 # 回到正常模式

小写 v # 进入到可视模式,选中光标所在的字符,上下左右移动的单位是字符
大写 V # 进入到可视模式,选中光标所在的行,上下移动的单位是行
ctrl + v # 可视块,以列为单位,相当于 Windows 中的 alt 键的块,然后插入需要的值,按 esc 即可看到效果


插入模式

命令模式

命令模式也叫做末行模式,即在文件最后一行进行操作,如下图:


命令模式相关的命令汇总:

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
# 保存和退出操作
:w # 保存已有文件名的文件
:wq # 保存已有文件名的文件并退出
:w /a.txt # 保存没有文件名的文件,并保存到根目录下的 a.txt
:q # 表示退出
:qa! # 强制退出且不保存
:q! # 表示不保存
!+linux命令 # 临时执行一条 Linux 命令,例如:!ifconfig,表示临时查看 ip 地址


## 查找和替换命令
/+查找内容 # 文本查找,正斜杠后面不要空格,除非你需要查询空格,按小写 n 查找下一个匹配项, 大写 N 查找上一个匹配项
:s/x/B # 单个字符替换,把光标所在位置的 x 替换成 B
:%s/x/B # 全文替换,把整篇文本每行的第一个 x 替换成 B,如果一行存在多个 x,只会替换第一个
:%s/x/B/g # 全文替换,把全文的 x 替换成 B,如果一行存在多个 x,那么全部都会被替换成 B
3,5/x/B # 指定范围替换单个匹配字符,每行被找到的第一个 x 会被替换成 B,范围在第 3 行到第 5 行
3,5/x/B/g # 指定范围全局替换,第三行到第五行所有匹配字符 x 都会被替换成 B


# 对 vim 的设置
:set nu # 显示行号,单次生效
:set nonu # 不显示行号,单次生效
:set hlsearch # 高亮显示,单次生效
:set nohlsearch # 去除高亮显示,单次生效


# 修改 vim 配置文件,使设置永久生效
vim /etc/vimrc # 编辑 vim 配置文件
:set nu # 然后到最后一行添加此代码,表示每次使用 vim 编辑文本都会显示行号

修改 vim 配置文件,使设置永久生效,操作如下图:

可视模式




服务管理

用户和用户组管理

在 Windows 系统中,一般情况下是一个用户使用当前操作系统。但是在 Liunx 系统中,它是多用户操作系统,所以会有多个用户使用同一个操作系统。这时,我们就要对这些用户进行相应管理了。在 Liunx 系统中,用户分为 root 用户普通用户 。root 用户可以操作系统的一切,而普通用户只能使用被分配的权限,不能进行危害系统的操作。

用户与用户组相关命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
useradd Tom             # 新建 Tom 用户
id Tom # 判断系统是否有这个用户

passwd Tom # 为 Tom 用户设置密码
passwd root # 修改 root 用户密码

userdel Tom # 删除 Tom 用户,这样删除的话,用户的家目录会被保存,不会被删除。这样子可以防止删除用户的同时不会把数据给删了
userdel -r Tom # 彻底删除 Tom 用户,家目录也会被删除

usermod -d /home/a2 a1 # -d 表示修改用户家目录位置。这条命令就是把原来 a1 位置移到了 a2 位置,相当于此用户搬了一次家
chage # 对用户的生命周期进行设置

groupadd group01 # 新建 group01 用户组
usermod -g group01 Tom # 把 Tom 的用户组改为 group01
useradd -g group01 Tom # 新建 Tom 用户并加入到 group01 用户组

新建用户

新建一个用户之后,Linux 系统会做哪些事情呢?首先: 会给用户分配一个家目录,位置在 /home/用户名第二: 用户还会被记录到 etc/passwd 文件当中,如下图。只要包含 Tom 这一行,就说明有这个用户存在。第三: 用户还会被记录到 /etc/shadow 文件当中,这是与用户密码相关的文件。图片如下:

温馨小提示:
1、如果创建用户时没有指定组,那么系统就会创建和用户同名的组。
2、root 用户才有权限创建用户,普通用户没有此权限。

删除用户

1
2
3
userdel Tom              # 删除用户,但是保留了家目录和邮箱命令
userdel -r Tom # 彻底删除用户,清空用户数据
userdel -f Tom # 强制删除用户,但是保留了家目录和邮箱命令

若使用 userdel Tom 命令删除该用户时,并不能删除该用户的所有信息,只是删除了 /etc/passwd、/etc/shadow、/etc/group/、/etc/gshadow 四个文件里的该账户和组的信息。默认情况下。我们创建了一个用户账号,同时也会创建一个家目录和一个用户邮箱,位置在 /var/spool/mail 目录以用户名命名。

修改用户

使用 usermod 命令chage 命令 用户信息和用户的生命周期修改以及用户密码相关操作等等进行修改。如下图:

1
2
usermod         # 可用来修改用户帐户的各项设定
chage # 修改帐号和密码的有效期限!

tips: 详情参考他人博客

新建用户组

如果有三个用户,他们需要相同的权限,或者是希望操作相同的文件时,然而我们并不想对每一个用户单独设置,那该怎么办?我们就把他们加入到一个用户组,这样他们就有了相同的权限,也方便我们对一类用户进行管理。

1
2
3
groupadd group02          # 新建 group02 用户组
usermod -g group02 user1 # 把 user1 的用户组改为 group02
useradd -g group02 Lisa # 新建 Lisa 用户并加入到 group02 用户组

用户切换 su 和 sudo

有的时候我们需要临时将用户身份变一下,该怎么办呢?举个例子:我们想测试一下普通用户对某一个目录是否具有权限,当前用户是 root 用户,那该怎么办?当然,我们可以退出 root 用户,然后登陆该普通用户,但是这样很麻烦。有没有更简单的方法呢?当然有,如下:

1
2
su - user1        # - 的作用就是切换用户的同时,并把当前运行环境变更为 user1 的环境
su user1 # 不带减号,不完全切换,环境带不过去,还在 root 目录下

温馨小提示:

1、root 用户到普通用户,不需要输入密码。
2、普通用户切换到普通用户,要输入密码。
3、普通用户到 root 用户,要输入密码。

有时候,普通用户想使用命令行关机,但是权限不足,需要切换到 root 用户。这样的话,root 用户的密码就暴露了,普通用户可以拿着密码 干点坏事 。那么如何让普通用户关机且不给 root 密码呢?这么做,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# root 用户模式下新建用户
useradd user03
shutdown -h 30 # 30 分钟关机

# 切换到普通用户模式
su - user03
shutdown -c # 停止关机操作,此时是 user03 普通用户,会提示权限不足

# 如果我一定要 user03 执行这条命令呢,该怎么办?
# 1、把 root 用户密码告知 user03 ,但是这样做不安全,万一它拿着密码干坏事呢?
# 2、使用 sudo 命令,给 user03 设置密码,然后给他分配 停止关机操作的权限,接下来就操作一下吧

# 给 user03 设置密码,此时在 root 用户模式下,只有root 模式才可以对用户进行相关操作
passwd user03 # 输入自己密码即可,密码是看不到的
visudo

# 如果不知道要授予权限的命令位置在哪里,就是用 :!which 相关命令
:!which shutdown

# 注意:字符终端使用 localhost , 图形终端使用 ALL

用户和用户组配置

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
# /etc/passwd 用户的配置文件,分为七个字段
# 第一个字段: 用户名称 如:root
# 第二个字段: 是否需要密码 如 X 代表要,删除即不需要,就算是登陆的时候以及其他操作不需要密码
# 第三个字段: 用户 uid ,Linux 系统中,不是靠 用户名称识别用户,而是靠用户的 uid 识别。 如果 uid 是 0 的话,那就具有 root 权限了。
# 第四个字段: 用户 gid ,用户组相关
# 第五个字段: 这个字段是注释,为空,啥都没有
# 第六个字段: 用户家目录所在位置
# 第七个字段: 用户命令解释器。就是当这个用户登陆之后,使用哪个解释器来解释相关命令。一般都是:/bin/bash ,如果是 /sbin/nologin ,则代表此用户无法登陆
vim /etc/passwd

# 我们不使用 useradd 新建用户了,来点高级的,如下
user04:x:1005:1005::/home/user04:/bin/bash

# 接下来使用 user04 登陆系统
su - user04 # 发现提示没有家目录,然后命令提示符为:-bash



# /etc/shadow 保存用户和用户密码相关的文件
# 第一个字段:用户名称,如:root
# 第二个字段:加密过的密码, 如 $sfdklasjfkjjf$,随便写的,自己可以编辑 shadow 文件看一下就知道了。即使用户密码相同,显示的也是不同的字符串
vim /etc/shadow



# /etc/group 用户组相关配置文件
# 第一个字段:组的名称
# 第二个字段:是否需要密码
# 第三个字段:组的 gid ,很重要
# 第四个字段:其他组设置,一般很少用,如:mail 组下的 postfix 用户。如果 A 用户 属于 A 组,他也想属于 B 组,那就在 B 组的第四个字段 写上 A,即写用户名称。这样 A 用户就同时属于 A 主和 B 组了。
vim /etc/group

vim /etc/passwd 的内容如下:

vim /etc/shadow 的内容如下:

vim /etc/group 的内容如下:

文件与目录权限

文件与目录权限介绍




1
2
3
4
5
6
7
8
9
10
11
12
13
drwxr-xr-x. 2 root root    6 4  22 10:37 桌面
-rw-------. 1 root root 1486 4 22 17:56 anaconda-ks.cfg
-rw-r--r--. 1 root root 1641 4 22 17:59 initial-setup-ks.cfg

# 分析上面三行前 10 个字符的含义
# 第一个字符:如果是 d ,则代表这个一个目录,如第一行的,桌面就是一个目录。如果是 - , 则代表是文件,如第二三行
# 第 2~4 个字符: 代表创建这个文件的用户所具有的操作权限
# 第 5~7 个字符: 代表创建这个文件的用户所在的用户组所具有的操作权限
# 第 8~10 个字符: 代表其他用户所具有的操作权限
# 解释 r w x 是是什么意思:r 代表可读,w 代表可写,x 代表可执行

# 第一个 root 代表创建这个文件或者文件夹的用户
# 第二个 root 代表用户当时创建此文件或文件夹所属的用户组

文件权限修改

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
32
33
34
35
36
37
38
39
40
41
# 方便演示,新建一个目录
mkdir /test

# 查看 test 目录的权限。注意:这是 root 用户创建的目录
ls -ld /test

# 注意一下: 权限只是针对于非 root 用户,root 用户啥都能干,管你权限不权限


# 改变 test 目录的属主
chown user04 /test
ls -ld /test

# 使用 chown 命令改变 test 目录的属组
chown :group01 /test
ls -ld /test
# 使用 chgrp 命令改变 test 目录的属组
chgrp group02 /test
ls -ld /test



# 修改文件权限操作: chmod u g o a + - =
cd /test # 进入到 test 目录
ls # 查看是否有文件。我们还没创建呢,哪来文件,哈哈哈
touch afile # 在 test 目录下创建 afile 文件
ls -l afile # 查看 afile 的相关权限

chmod u+x afile # 给属主增加执行权限【就是第 2~4 个字符】,u 代表属主,+ 代表增加,- 代表减少,x 代表执行【前面有介绍】
chmod g-r afile # 给属组减少读的权限【就是第 5~7 个字符】,g 代表属组
chmod o=rwx afile # 给其他用户设置 rwx 权限【就是第 8~10 个字符】,o 代表其他用户
ls -l afile # 查看设置过后的权限,进行对比一下
chomd a+r afile # 给所有用户及用户组添加 r 权限,a 代表所有

chmod 446 afile # 数字设置权限的方式,代表 属主只读-属组只读-其他用户可读写 权限。 r=4 w=2 x=1
ls -l afile # 结果:-r--r--rw-. 1 root root 0 5月 15 01:40 afile


touch bfile # 创建 bfile 文件
ls # 查看它的默认权限 666 - umask = 666 - 022 = 644
umask # 默认权限本来是 666 ,但是要减去 umask 的值,所以是 644 。umask 的值是 0022

TIPS: 使用 CTRL + R 可以查找使用过的命令,非常使用哦!

各个权限的功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 还是以上面的 /test 作为例子
chmod 777 /test # 给所有用户及用户组所有权限。
ls -ld /test # 此刻发现,test 目录有背景颜色,什么情况我也不知道,哈哈哈

touch cfile
ls -l cfile
chown user1:group01 cfile # 同时修改 cfile 文件的属主和属组
ls -l cfile
chmod 400 cfile # 只给属主只读权限【为了方便测试,设置为 400 ,减少干扰】

echo 123 > cfile # 把 123 显示到 cfile 中。这个操作是先把 cfile 里面的内容先清空,然后写入 123 。所有操心系统文件是这个命令慎用!!!

# 此时切换到用户 user1 测试权限
su - user1
cat /test/cfile # 可以读出内容为 123
echo > 456 /test/cfile # 报错了,权限不足,无法写入 456。因为 user1 用户对这个文件只有读权限,没有写权限
exit # 退出当前用户,如果需要修改 cfile 其他权限,就要到 root 用户下修改,普通用户没有权限去操作

# 一个权限冲突问题
chmod 020 /test/cfile # 此时属主没有任何权限,属组具有写的权限,但是属主又在属组中,那么属主是否有写的权限呢?所以出现了权限冲突。提示:以属主权限设置为准,所以属主没有写的权限,属组中,除了属主之外的用户才有写的权限。


# 到此为止,文件权限就说完了,接下来的目录权限原理是一样的,就不演示了,参考上图 x rx wx 自己操作即可。wx 具有删除文件的功能。

特殊权限

特别提示: root 用户 有特权,即使没有权限也可以查看。就是这么拽,哈哈哈!!!

如何增加特殊权限呢?看下图:

Liunx 全屏问题

以后再弄 以后再弄 以后再弄

如何设置 VMware 中 Linux 命令行环境全屏

在VMware安装Linux后默认屏幕为640×480,如需修改,则请参考以下步骤。

工具原料

  • VMware Workstation
  • CentOS 6.6

##第一步:进入命令行

登录账户后,输入 ls /dev 命令并按回车。注意:输入此命令只是为比较显示结果。如下图:

第二步:设置 GRUB

输入 vi /etc/default/grub.conf 并按回车键确定。然后查询到以“kernel”开头行。
按“i”键进入编辑状态,并在“rhgb”前添加“vga=791”(下图蓝色框内部分),确认无误后按ESC到命令模式,并输入“:x”保存退出。 注意:此处“791”为十进制数字。

输入“reboot”重新启动。

重启登录后再次输入“ls /dev”,对比显示结果。

常用参数列表。

vga=769 (640x480x256)

 vga=771 (800x600x256)

 vga=788 (800x600x645536)

 vga=773 (1024x768x256) 

 vga=791 (1024x768x65536)

在 /boot/grub/menu.lst 的内核命令后加上 vga=nnn (nnn为整数)参数可以使用高分辨率的命令行界面。其值如下。

640x480    800x600    1024x768    1280x1024

8bit 769 771 773 775
15bit 784 787 790 793
16bit 785 788 791 794
24bit 786 789 792 795

  

📚 本站推荐文章
  👉 从 0 开始搭建 Hexo 博客
  👉 计算机网络入门教程
  👉 数据结构入门
  👉 算法入门
  👉 IDEA 入门教程

可在评论区留言哦

一言句子获取中...

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×