练习题答案请点击链接查看:Linux基础语法练习题,配有答案,题目内容如下:一、创建文件相关练习题二、文件管理相关练习题三、vim编辑器的练习四、用户管理相关操作-CSDN博客
一、常用命令
1
、
linux
命令特点
1.
在
Linux
系统中,命令
区分大小写
。
2.
在命令行中,可以使用
“Tab”
键来自动
补齐命令
。
3.
利用
向上或向下的光标键
,可以翻查曾经执行过的
历史命令
,并可以再次执行。
4.
如果要在一个命令行上输入和执行多条命令,可以使用
分号来分隔命令
,如
“cd /;ls”
5.
断开一个长命令行,可以使用
反斜杠
“\”
,可以将一个较长的命令分成多行表达。
2
、文件夹类常用命令
1
)
pwd
:用于显示用户当前所处的目录
2
)
cd
:用于在不同的目录中进行切换
用户在登录系统后,会处于用户的家目录(
$HOME
)中,该目录一般以
/home
开始,后跟用户名。
如果用户想切换到其他的目录中,就可以使用
cd
命令,后跟想要切换的目录名
例:
在
Linux
系统中,用
“.”
代表当前目录;用
“..”
代表当前目录的父目录;用
“~”
代表用户的个人家目录(主目
录)。例如,
root
用户的个人主目录是
/root
,则不带任何参数的
“cd”
命令相当于
“cd ~”
,即将目录切换
到用户的家目录
注意:
cd tmp
与
cd /tmp
的作用不同,
cd tmp
是进入当前目录下的
tmp
目录,
cd /tmp
是进行根目录下的
tmp
目录
3
)
ls
:用于列出文件或目录信息
语法:
ls [
选项
] [
目录或文件
]
ls
命令的常用选项如下
-a
:显示所有文件,包括以
“.”
开头的隐藏文件。
-c
:按文件的修改时间排序。
-l
:以长格形式显示文件的详细信息。
-u
以文件上次被访问的时间排序
例:查看
/etc
目录下所有文件,并列出详细信息
[root@localhost ~]# cd dir1 //
改变目录位置至当前目录下的
dir1
子目录下
[root@localhost dir1]# cd ~ //
改变目录位置至用户登录时的工作目录
[root@localhost ~]# cd .. //
改变目录位置至当前目录的父目录
[root@localhost /]# cd //
改变目录位置至用户登录时的工作目录
[root@localhost ~]# cd /dir1/subdir1 //
利用绝对路径表示改变目录到
/dir1/subdir1
下
4
)
ll
:是
ls -l
的别名
5
)
mkdir
:用于创建一个目录
语法:
mkdir [
选项
]
目录名
mkdir
命令的常用选项如下。
-p
:在创建目录时,如果父目录不存在,则同时创建该目录及该目录的父目录
例:在
/tmp
目录下创建
student
文件夹
在根目录下创建多级文件夹
6
)
cp
:用于文件或目录的复制
语法:
cp [
选项
]
源文件 目标文件
cp
命令的常用选项选项如下。
-a
:尽可能将文件状态、权限等属性照原状予以复制。
-i
:如果目标文件或目录存在,提示是否覆盖已有的文件。
-R/-r
:递归复制目录,即包含目录下的各级子目录。
例:将
/etc/profile
文件复制到
/tmp
目录下
将
/export
整个目录及子目录复制到
/tmp
目录下
复制
/etc/hosts
文件到当前目录下并重命名
练习:
1
、进入根目录,列出当前目录的详细信息
2
、在根目录下创建
export
目录
ls -l /etc
mkdir /tmp/student
mkdir -p /export/data
cp /etc/profile /tmp
cp -r /export /tmp
cp /etc/hosts ./hosts2
3
、进入
export
目录,创建
data
目录
4
、复制
data
目录为
servers
目录,再复制一次为
software
目录
结构如下:
/export/data/
/export/servers/
/export/software/
5
、进入
/export/servers/
目录,查看所处目录。然后进入上一级目录,查看所处目录
3
、文件类常用命令
1
)
cat
:用于滚屏显示文件内容或是将多个文件合并成一个文件
语法:
cat [
选项
]
文件名
cat
命令的常用选项如下。
-b
:对输出内容中的非空行标注行号。
-n
:对输出内容中的所有行标注行号。
通常使用
cat
命令查看文件内容,但是
cat
命令的输出内容不能够分页显示,要查看超过一屏的文件内
容,需要使用
more
或
less
等其他命令
2
)
tail
:用于显示文件的末尾部分,默认情况下,只显示文件的末尾
10
行内容
语法:
tail [
选项
]
文件名
常用选项如下:
-n num
:显示指定文件的末尾
num
行。
+num
:从第
num
行开始显示指定文件的内容
3
)
mv
:用于文件或目录的移动或改名。该命令的语法为
mv [
选项
]
源文件或目录
目标文件或目录
mv
命令的常用选项如下。
-i
:如果目标文件或目录存在,则提示是否覆盖目标文件或目录。
-f
:无论目标文件或目录是否存在,直接覆盖目标文件或目录,不提示
移动功能和改名功能:
mv
的目标目录是已存在,还是新名称。如果目录是已存在,则是移动功能 ,如
果目录或文件名不存在,则是改名功能。
4) rm
:用于文件或目录的删除。该命令的语法为
rm [
选项
]
文件名或目录名
rm
命令的常用参数选项如下。
-i
:删除文件或目录时提示用户。
-f
:删除文件或目录时不提示用户。
-R/-r
:递归删除目录,即包含目录下的文件和各级子目录。
5
)
find
:用于文件查找
语法:
find [
路径
] [
匹配表达式
]
find
命令的匹配表达式主要有以下几种类型。
-name filename
:查找指定名称的文件。
-user username
:查找属于指定用户的文件。
-group groupname
:查找属于指定组的文件
6
)
grep
:用于查找文件中包含有指定字符串的行
语法:
grep [
选项
]
要查找的字符串
文件名
grep
命令的常用选项如下。
-c
:对匹配的行计数。
-l
:只显示包含匹配模式的文件名。
-i
:对匹配模式不区分大小写。
-n
:显示查找到的内容在文件中的行号
说明:在
grep
命令中,字符
“^”
表示行的开始,字符
“$”
表示行的结尾。如果要查找的字符串中带有空
格,可以用单引号或双引号括起来
练习:
1.
进入
/etc
目录下,查找
profile
文件;
2.
使用
cp
命令将
profile
文件复制一份到
/export/data
下;
3.
使用
mv
命令将复制的
profile
重命名为
myprofile1
;
4.
使用
cat
命令查看
myprofile1
文件内容;
5.
使用
tail
命令查看
myprofile1
的末尾
5
行;
6.
使用
grep
查找
myprofile1
中包含有
’file’
的内容。
7.
删除
/export/data
目录
二、
VIM
编辑器
1
、
vim
简介
1
)
vim
简介
vi
是
visual interface
的简称,它可以执行输出、删除、查找、替换、块操作等众多文本操作。
Vim
是从
vi
发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰
富,在程序员中被广泛使用。
vim
不是一个排版程序,它只是一个文本编辑程序。
vim
是全屏幕文本编辑器,没有菜单,只有命
令
2
)进入
vim
编辑器
在系统提示符后输入
vim
和想要编辑(或建立)的文件名,便可进入
vim
只输入
vim
,而不带文件名,也可以进入
vim
初次进入
vim
不做任何操作是命令模式,键入
:q
(注意
:
号)就会退出
vim
。
2
、
Vim
工作模式
vim
有
3
种基本工作模式:命令模式、
编辑模式
和末行模式
1
)命令模式:
进入
vim
后默认是命令模式
2
)编辑模式
在命令模式下按下相应的键可以进入编辑模式:插入命令
i
、附加命令
a
、打开命令
o
、修改命令
c
、
取代命令
r
、替换命令
s
、
在编辑模式下,用户编辑的任何字符都被
vim
当作文件内容保存起来,并将其显示在屏幕上。在文
本输入过程中(编辑模式下),若想回到命令模式下,按
“Esc”
键即可。
3
)末行模式
在命令模式下,用户按
“
:
”
键即可进入末行模式。
若在末行模式下输入命令的过程中改变了主意,可在用退格键将输入的命令全部删除之后,再按一
下退格键,即可使
vim
回到命令模式。
4
)模式切换
移动光标的命令
说明
Ctrl + f
屏幕向下移动一页,相当于
“Page Down”
键
Ctrl + b
屏幕向上移动一页,相当于
“Page Up”
键
G
移动到文件的最后一行
gg
移动到文件的第一行,相当于
1G
n
n
为数字。光标向下移动
n
行
查找命令
说明
/word
向下寻找名称为
word
的字符串
?word
向上寻找名称为
word
的字符串
n
这个
n
是英文按键。代表重复前一个查找的动作。
N
这个
N
是英文按键。与
n
刚好相反,为反向进行前一个查找动作
替换
:n1,n2s/word1/word2/gc
n1,n2
为数字,从
n1~n2
行寻找
word1
字符串,并将该字符串取代为
word2
。且在取代前显示提示字符给用户确认(
confirm
)是否需要
取代
删除、复制与粘贴命
令
说明
dd
删除光标所在的那一整行
ndd
n
为数字。删除光标所在的向下
n
行,例如,
5dd
是删除
5
行
yy
复制光标所在的那一行
nyy
n
为数字。复制光标处向下
n
行,例如
20yy
是复制
20
行
p, P
p
为将已复制的数据在光标下一行粘贴上,
P
则为粘贴在光标上一行)
u
撤消前一个动作
Ctrl+r
重做上一个动作
.
重复前一个动作。如果想要重复删除、重复粘贴等动作,按下小数点就
可以
3
、
vim
常用命令
1
)命令模式命令说明
2
)末行模式命令说明
常用命令
说明
:w
将命令的数据写入硬盘文件中(常用)
:w!
若文件属性为只读时,强制写入该档案。
:q
退出
vim
:q!
若曾修改过文件,又不想储存,则使用
“!”
强制退出而不储存文件。
:wq
储存后离开,若为
“:wq!”
,则为强制储存后离开
:w [filename]
将命令的数据储存成另一个文件(类似另存为新文件)
:set nu
显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu
与
:set nu
相反,为取消行号
练习:
1.
将
/etc/hosts
网络配置文件复制到
/tmp/mydir
下;
2.
使用
vim
编辑器打开
hosts
文件,按
i
进入编辑模式,将本机
IP
地址和主机名
(client1)
映射。
3.
按下
esc
键回到命令模式,再按下
:wq
进入末行模式,保存并退出
4.
使用
vim
编辑器打开复制到
/tmp/mydir
的
myprofile
文件;
5.
使用
:set nu
调出行号;
6.
查找
profile
中包含
path
字样的内容;
7.
跳转到
53
行,使用
yy
复制当前行
;
8.
移动光标到文件的最后一行;
9.
使用
p
在光标的下一行粘贴
;
10.
使用
dd
删除光标所在行;
11.
编辑完后按下
esc
,使用
:wq
进行保存并退出(不保存仅退出使用
:q!
)
三、用户管理
1
、配置文件
一个安全的系统,系统登陆密码是必要的。在登陆的时候,系统会验证用户名和密码,验证合格才能登
陆,这样既起到了身份识别的作用,更能在一定程度上避免系统受到意外攻击。
1
)用户账号文件
——passwd
文件
“/etc/passwd”
以行为单位,每行以冒号分隔为
7
个数据域,保存用户的账号信息。
由于所有用户都对
passwd
有读权限,所以该文件中只定义用户账号,而不保存口令
文件格式如下:
字 段
说 明
用户名
用户账号名称,用户登录时所使用的用户名
加密口
令
用户口令,考虑系统的安全性,现在已经不使用该字段保存口令,而用字母
“x”
来填充
该字段,真正的密码保存在
shadow
文件中
UID
用户号,唯一表示某用户的数字标识
GID
用户所属的私有组号,该数字对应
group
文件中的
GID
用户描
述信息
可选的关于用户全名、用户电话等描述性信息
主目录
用户的宿主目录,用户成功登录后的默认目录
命令解
释器
用户所使用的
shell
,默认为
“/bin/bash”
说明:
文件中的每一行代表一个用户账户的资料,可以看到第一个用户是
root
。然后是一些标准账户,此类账
户的
shell
为
/sbin/nologin
,代表无本地登录权限。最后一行是由系统管理员创建的普通账户:
user1
passwd
文件的每一行用
“
:
”
分隔为
7
个域,各域的内容如下:
用户名
:
加密口令
:UID:GID:
用户的描述信息
:
主目录
:
命令解释器(登录
shell
)
2
)用户密码文件
——shadow
由于所有用户对
/etc/passwd
文件均有读取权限,为了增强系统的安全性,用户经过加密之后的口令都
存放在
/etc/shadow
文件中。
/etc/shadow
文件只对
root
用户可读,因而大大提高了系统的安全性
shadow
文件的内容形式如下(
cat /etc/shadow
):
每个用户的信息在
shadow
文件中占用一行,并且用
“:”
分隔为
9
个域,各域含义如表:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
user1:x:1002:1002::/home/user1:/bin/bash
root:$6$PQxz7W3s$Ra7Akw53/n7rntDgjPNWdCG66/5RZgjhoe1zT2F00ouf2iDM.AVvRIYoez10hGG
7kBHEaah.oH5U1t6OQj2Rf.:17654:0:99999:7:::
bin:*:16925:0:99999:7:::
daemon:*:16925:0:99999:7:::
bobby:!!:17656:0:99999:7:::
user1:!!:17656:0:99999:7:::
字 段
说 明
1
用户登录名
2
加密后的用户口令,
*
表示非登录用户,!!表示没设置密码
3
从
1970
年
1
月
1
日起,到用户最近一次口令被修改的天数
4
从
1970
年
1
月
1
日起,到用户可以更改密码的天数,即最短口令存活期
5
从
1970
年
1
月
1
日起,到用户必须更改密码的天数,即最长口令存活期
6
口令过期前几天提醒用户更改口令
7
口令过期后几天账户被禁用
8
口令被禁用的具体日期(相对日期,从
1970
年
1
月
1
日至禁用时的天数)
9
保留域,用于功能扩展
2
、用户管理
1
)增加用户
语法
:
useradd [
选项
]
用户名
功能:
(
1
)在
/etc/passwd
文件中增添了一行记录;
(
2
)在
/home
目录下创建新用户的主目录。
常用选项
:
-g
组名
说明:用于添加用户账号时指定该用户的私有组。如不指定
“-g”
参数,
useradd
命令将自动建立与用户
账号同名的组作为该账号的私有组。
-p passwd
说明:为用户账号指定默认密码
-u uid
说明:为账户指定一个唯一的
UID
-r
说明:创建系统账户
注意
:
新建的用户暂时还无法登录,因为还没有为该用户设置口令,需要再用
passwd
命令为其设置口令后,
才能登录。
例:增加一个用户
“student2”
,然后查看其相关信息
2
)修改用户属性
语法
:
usermod [
选项
]
用户帐号
功能:
修改用户帐号的各种属性。
常用选项
:
-l <
新帐号名
>
修改用户帐号的名称
-L
锁定帐户
-U
解锁帐户
-g <
群组
>
修改用户所属的群组
-d<
登入目录
>
修改用户登入时的目录。
例:修改用户账号名称,锁定
/
解锁账号
3
)删除用户
语法
:
userdel [-r] [
用户账号
]
功能:删除指定的用户账号
说明
:
-r
选项可删除与用户账号相关的文件。
若不加选项,则仅删除用户账号,而不删除相关文件。
例:删除用户同时删除其工作主目录
4
)用户口令管理
#useradd student2 //
建立用户账号
#tail /etc/passwd //
查看
password
文件中添加的用户账号信息
#tail /etc/shadow
#ll /home //
查看所建立账号的主目录
# usermod –l std2 student2 //
将账号名
'student2'
改为
'std2'
# usermod –L std2 //
锁定
“std2”
用户,使其不能登录
# usermod –U std2 //
解锁
“std2”
用户账号,使其可以登录
# tail /etc/passwd //
查看用户账号
std2
是否存在
# userdel std2 //
删除
std2
账号
# tail /etc/passwd //
再次查看用户账号
std2
是否存在
# ll –d /home //
查看用户
std2
的主目录是否存在
# userdel –r std2 //
删除用户同时删除其工作主目录
语法
:
passwd [
选项
] [
用户名
]
常用选项
:
选项:
-l
:锁定账号的口令。
-u
:解除锁定账号的口令。
-d
:删除指定账号的口令
-S
:查询指定用户账号的状态。
说明
:
只有超级用户可以使用
“passwd [
用户名
] ”
修改其他用户的口令;
只有超级用户可以使用选项;
普通用户只能用不带参数的
passwd
命令修改自己的口令。
5
)显示用户
ID
语法
:
id [
选项
] [
用户名称
]
功能:
显示用户当前的
UID
,
gid
以及所属群组的组列表
常用选项
:
-g
:显示用户所属群组的
ID
。
-G
:显示用户所属附加群组的
ID
。
-n
:显示用户所属群组或附加群组的名称。
-r
:显示实际
ID
。
-u
:显示用户
ID
。
6
)显示登录用户名
语法
:
whoami
说明:
whoami
命令用于显示登录者自身的用户名称,本指令相当于执行
“id –un”
指令
练习:
1.
创建一个新用户
user01
2.
查看
/etc/passwd
文件的最后一行,看看是如何记录的。
3.
查看文件
/etc/shadow
文件的最后一行,看看是如何记录的。
4.
给用户
user01
设置密码
5.
再次查看文件
/etc/shadow
文件的最后一行,看看有什么变化。
6.
使用
user01
用户登录系统,看能否登录成功。
# su - user01
7.
再次使用
root
账号登录系统
8.
锁定用户
user01: #usermod -L user01
9.
查看文件
/etc/shadow
文件的最后一行,看看有什么变化。
10.
解除对用户
user01
的锁定
:#usermod -U user01
11.
更改用户
user01
的账户名为
user02:#usermod -l user02 user01
12.
查看
/etc/passwd
文件的最后一行,看看有什么变化。
13.
删除用户
user02
四、用户组管理
用户组是用户的集合。通常将用户进行分类归组,便于进行访问控制。
用户与用户组属于多对多的关系,一个用户可以同时属于多个用户组,一个用户组可以包含多个不
同的用户。
每个用户都有一个唯一的归属组(私有组)。
1
、用户组配置
1
)组账号文件
——group
用户组是逻辑地组织用户账号集合的方便途径,它允许用户在组内共享文件。系统上的每一个文件都有
一个用户和一个组的属主。对于系统上的每个组,在
/etc/group
文件中都有一行记录,记录的格式为:
groupname : passwd : GID : userlist
groupname
:组的名字
passwd
:组的加密口令
GID
:系统区分不同组的
ID
userlist
:用,分隔的组成员
2
)组口令文件
——gshadow
gshadow
文件用于定义用户组口令、组管理员等信息,该文件只有
root
用户可以读取。
Gshadow
文件
中每行定义一个用户组信息,行中各字段间用
“
:
”
分隔,每行记录的格式为:
groupname : Encrypted password : Group administrators : Group members
groupname
:组名
Encrypted password
:组加密口令
Group administrators
:组管理员账号
Group members
:用,分开的组成员
2
、组管理
1
)新建组
语法:
groupadd [-r]
群组名称
功能:
以指定群组名称来建立新的群组账号。
说明:
"-r"
参数是用来建立系统账号
2
)修改组账号
语法:
groupmod [
选项
] [
群组名称
]
功能:
更改群组识别码或名称。
选项:
-g <
群组识别码
>
设置欲使用的组识别码。
-n <
新群组名称
>
设置欲使用的组名称。
3
)删除组账号
语法:
groupdel [
群组名称
]
功能:
删除指定的组账号
说明:
被删除的群组不能为某个仍存在用户的私有组
4
)组中成员维护
(
1
)添加用户到组:
gpasswd –a
用户账号名 组账号名
(
2
)从组中删除用户:
gpasswd – d
用户账号名 组账号名
(
3
)设置用户为组管理员:
gpasswd -A
用户账号名列表 组账号名
练习
1.
使用
cat vi vim
等命令查看用户组账号文件
/etc/group
;
2.
使用
cat vi vim
等命令查看用户组口令文件
/etc/gshadow
;
3.
添加新组
mygroup
4.
将新用户
user01
添加到
mygroup
组
5.
先删除
user01
用户后,删除
mygroup
组