第一章 文件相关命令
1、文件的创建
// $ touch + 文件名
touch 123.txt
2、查看文件
(1)cat命令
使用cat命令时,如果文件内容过多,则只会显示最后一屏的内容;
// $ cat+文件名
cat 123.txt
(2) more指令
—— 分页显示文件内容
more指令会以一页一页的形式显示文件内容,按空白键(space)显示下一页内容,按Enter键会显示下一行内容,按 b 键就会往回(back)一页显示,其基本用法如下:
more file1 | 查看文件file1的文件内容 |
more -num file2 | 查看文件file2的内容,一次显示num行 |
more +num file3 | 查看文件file3的内容,从第num行开始显示 |
(3) less命令
less指令查看文件内容时可以向前或向后随意查看内容
// $ less file1 查看文件file1的内容;
// $ less -m file2 查看文件file2的内容,并在屏幕底部显示已显示内容的百分比;
3、给文件输入内容
echo命令
当内容只有一行时
// $ echo "[内容]" > 文件名
echo "abc" > 123.txt
当内容有多行时
// $ echo "[第二行内容]" >> 文件名
echo "def" >> 文件名
echo "ghi" >> 文件名
注:如果有多行内容时只写了一个 ">" ,最终文件内只会出现最后一次 输入内容,之前输入的均会被覆盖掉,所以我们在给文件输入内容时一定要仔细
4、文件搜索
(1) grep命令
grep命令的功能是在指定文件中搜索特定的内容,并将这些内容输出到终端
// $ grep [选项] 格式 [文件及路径]
grep 'a' 123.txt
-r | 表示递归,遍历这个目录中所有文件 |
---|---|
-i | 不区分大小写(只使用于单字符) |
-c | 统计包含匹配的行数 |
-n | 显示匹配行及行号 |
-v | 显示不包含匹配文本的所有行(反向匹配) |
-l | 查询多文件时只输出包含匹配字符的wen |
(2)find命令
find命令的功能为在指定的目录中搜索文件
//$ find [路径] [选项] [描述]
-name | 按照名字查找,支持通配符“ * ”和“ ?” |
---|---|
-iname | 按照名字查找,不区分大小写 |
-user | 按照所属用户查找 |
-type | 搜索其他类型的文件 |
find -iname "123.*"
find ./ -type f -name "123.*"
//$find / -name videos(会遍历/下所有的文件,然后打印出寻找结果)
5、文件链接
文件链接在Linux操作系统中是十分普遍且重要的做法,连接操作实际上是给文件系统中的某个文件,指定另外一个可用于访问它的名称。对这个新的文件名称,用户可指定其访问权限,以控制文件信息的共享和安全。
linux操作系统中有两种类型的链接:硬链接与软连接(符号链接)
(1)硬链接
// ln 源文件 链接文件
ln 123.txt abc.text
(2)软连接
//ln -s 源文件 链接文件
ln -s 123.txt abc.text
6、文件所属用户
linux操作系统是一个多用户的操作系统,操作系统对用户的管理采用分组的形式,即多个用户分为一组。
(1)chown命令与chgrp命令
chown命令用修改文件所属用户,chgrp命令用于修改文件所属用户组
// $ chown/chgrp [选项] [所属用户/组] [文件]
chown root 123.txt
chgrp root 123.txt
(2)文件存储权限
r 可读权限
w 可写权限
x 可执行权限
- 表示不具备该权限
例:drwxrwxr-x
开头的符号“d”表示为directory,每3个字符为一组,此3组表示为
文件所属用户对文件的访问权限,与所属用户同组的其他用户对文件的访问权限,非同组的其他用户对文件的访问权限
(3)文件权限的修改
chmod命令
文件所属用户(u),同组其他用户(g),系统其他用户(o),所有用户(a)
// $ chmod [选项] 符号权限 文件
此外可用八进制指定的语法格式
// $ chmod [选项] 八进制数 文件
(将123.txt文件的所有权限为rwxrwxrwx)
chmod u+x,g+w,o+r 123.txt
chmod 777 123.txt
7、文件压缩打包
(1)文件压缩
gzip命令、bzip2命令
实现对文件运行压缩或解压
// $ gzip [选项] 文件
gzip 123.txt
-c | 输出文件信息,并保留原有文件 |
---|---|
-d | 对压缩文件进行解压缩 |
-t | 测试检查压缩文件是否完整 |
-r | 查找指定目录,压缩或解压缩其中所有的文件 |
-l | 显示压缩文件的大小、为压缩文件的大小、压缩比、为压缩文件的名字 |
(2)文件解压
gunzip命令、gzip -d命令
// $ gunzip 压缩文件名
// $ gzip -d 压缩文件名
gunzip 123.txt.gz
gzip -d 123.txt.gz
需特别注意的是,gzip只能压缩或解压缩单个文件,不能压缩目录,操作目录需要使用tar命令
(3)查看压缩文件
zcat命令
// $ zat 压缩文件
zcat 123.txt.gz
(4)文件目录的打包与解包
打包是指将一些文件或目录整合成一个单文件
tar命令
-c | 创建新的归档文件(打包) |
-x | 从归档文件中提取文件(解包) |
-f | 指定归档(打包)文件名,否则使用默认名称 |
-v | 显示操作的详细信息 |
-z | 通过gzip压缩归档文件,与“-x”一同使用调用gzip完成解压缩 |
-j | 通过bzip2压缩归档文件,与“-x”一同使用调用gzip2完成解压缩 |
-u | 更新打包文件 |
//将text1、text2、text3三个文件打包成demo.tar
tar -cvf demo.tar text1 text2 text3
//将demo.tar解包
tar -xvf demo.tar
8、系统常用功能命令
(1)Tap补齐
如果多个命令或文件有相同的前缀,Shell将会将具有该前缀的所有命令或文件,帮助用户完成需要的输入。命令补齐需要连续按两次Tab键,文件名补齐需要按一次Tab键。
(2)查询历史命令
用户需要产看曾经执行过的操作时,按“⬆”(上一条命令)键或“⬇”(下一条命令)键,即可翻看命令历史。
Bash Shell同时提供了history命令,该命令将命令历史以列表的形式从记录号1开始一次性显示出来,默认情况下只能记录500条命令。
// $ echo $HISTSIZE
(3)修改历史容器
(临时修改)
// $ HISTSUZE=500
(4)通配符的使用
星号(*) | 匹配任意长度的字符串 |
---|---|
问好(?) | 匹配一个字符 |
方括号[...] | 匹配指定的字符 |
方括号[ - ] | 匹配指定的范围 |
方括号[^...] | 除了指定的字符,均可匹配 |
第二章linux用户管理
1、用户与组
linux操作系统对用户的管理采用组的形式,用户组是相同特性的用户的集合体
口令就是登入账户的密码
用户标识符(UID)是账号的提示符,他与用户名是一一对应的
UID为0是系统管理员账号
UID为1-499是系统保留账号,不可登录
UID为600-65636时刻登入账户
用户与用户组的对应关系一般为:
一对一:某一个用户是某个组的唯一成员
多对一:多个用户是某个唯一的组的成员,成员不归属其他用户组
一对多:某个用户可以是多个用户组的成员
多对多:多个用户对应多个用户组
2、与用户相关的配置文件
(1) /etc/passwd
记录了用户基本信息
文件中有一个对应的记录行,记录了这个用户的基本属性,当用户登入时,系统会查询这个文件,确认用户的UID并验证用户口令
$ tail /etc/passwd
$ cat /etc/passwd
WJK:x:1007:1004::/home/WJK:/bin/sh
//登入名:12345678:加密口令:GID:个人信息:主目录:登入shell
(2) /etc/shadow
存储了用户名和加密口令
根据“/etc/passwd” 中的数据自动产生,因此一一对应
$ sudo cat /etc/shadow
WJK:123456:19866:0:99999:7: : :
登入名:加密口令:1970年元旦到最后一次修改密码的天数:两次修改密码最小时间间隔:最大时间间隔:系统警告到密码失效的时间
(3) /etc/group
用户组的所有信息
//查看所添加的用户组
#cat /etc/group
//查看最后10个用户组
#tail /etc/group
//cdrom:x:24:vanilla
组名:口令:组标识号(GID):组内用户列表
3、用户管理命令
(1)添加用户
useradd命令、adduser命令
// # useradd [选项] 用户名
-m指定新建用户到用户主目录
$ sudo useradd -m username
(2)用户口令
指定和修改用户口令的Shell命令是passwd
// # passwd [选项] 用户名
-f | 强制用户下次登录时修改口令 |
-d | 不适用口令 |
-u | 口令解锁 |
-l | 锁定口令,禁用账户 |
$ sudo passwd username
//输入新的username密码:
//重新输入username密码:
//passwd:已成功更新密码
(3)属性修改
usermod命令
// # usermod [选项] 用户名
-a 添加
-G 指定组名
$ sudo usermod -aG groupname username
(4)删除用户
userdel命令
// # userdel [选项] 用户名
-r 将用户主目录一并删除
$ sudo userdel -r username
如果出现未删除用户,就要用到kill命令
// # sudo kill -SIGKILL 用户GID
4、用户组管理
(1)用户组的添加
groupadd命令
// # groupadd [选项] 用户组
-g 指定用户组标识号(GID)
-o 与-g同时使用,表示新指定的GID可以与系统中已存在的GID相同
$ sudo groupadd -g 111 groupname
(2)用户组的删除
groupdel命令
// # groupdel 用户组
$ sudo groupdel groupname
(3)用户组的修改
groupmod命令
// # groupmod [选项] 用户组
-g | 制定新的组标识号(GID) |
-o | 与-g同时使用,表示新指定的GID可以与系统中已存在的GID相同 |
-n | 将用户组的名字改为新名字 |
用于组名字的修改
// # groupmod -n 修改后 修改前
用户组UID 的修改
// # groupmod -g num 用户组名
$ sudo groupmod -n groupname name
$ sudo groupmod -g 12345 name
如果一个用户同时属于多个用户组,那么该用户可以在用户组之间切换,以获得其他用户组的权限。用户登录后,使用newgrp命令切换到其他用户组。
(4)用户组成员的添加与删除
$ gpasswd [选项] 用户名 组名
// -a 把用户添加到组
// -d 把用户从族中删除
$ su root
# tail /etc/group (查看组文件)
# tail /etc/passwd (查看用户)
# gpasswd -a 用户名 组名
# grep ‘用户组名’ /etc/group
# gpasswd -d 用户名 组名
# grep ‘用户组名’ /etc/group