1.查找文件的路径
whereis 可以搜索系统命令的可执行文件路径和说明文档 基于$path查找
which which 是搜索系统命令的可执行文件 基于$path查找
locate 按照数据库搜索,搜索速度快,消耗资源小。可以使用updatedb 命令强制更新数据库。 全局搜素
find 可按照文件名、大小、时间、权限、类型、所属者、所属组来搜索文件 全局搜素
-name 匹配名称
-size 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
-mtime -n +n 匹配修改内容的时间(-4指小于等于4天内的文件名;+4,大于等于5天前的文件名;4指前4~5那一天的文件)
-atime -n +n 匹配访问文件的时间
-ctime -n +n 匹配修改文件权限的时间
-newer f1 !f2 匹配比文件f1新但比f2旧的文件
-perm 匹配权限(mode为完全匹配,-mode为包含即可)
-user 匹配所有者
-group 匹配所有组
-nouser 匹配无所有者的文件
-nogroup 匹配无所属组的文件
-type b/d/c/p/l/f 匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
-prune 忽略某个目录
-exec …… {}\; 后面可跟用于进一步处理搜索结果的命令2.压缩和解压缩
zip和unzip命令
zip: 可以压缩文件和目录。
语法: zip FILE
语法: unzip FILE将当前目录dir1连同目录下文件一起压缩
[root@localhost test]# zip -r dir1.zip dir1/
向压缩文件中test1.zip中添加test2. txt文件
[root@localhost test]# zip -m test1.zip test2.txt
删除压缩文件中的文件
[root@localhost test]# zip -d test1.zip test2.txtgzip和gunzip命令
注:查看压缩过的文本文件内容: zcat、zless 。 zcat 文件名.gzbzip2、bunzip2命令
注:查看压缩过的文件内容: bzcat、bzless 。 bzcat 文件名.bz2xz、unxz命令
注:查看压缩过的文件内容: xzcat、xzless 。 xzcat 文件名.xz3.tar归档命令
格式: tar [选项] [args]……
选项:任选其一
-c 创建.tar格式的包文件
-x 释放.tar格式的包文件
-t 查看包中的文件列表
必选项:
-f 用于指定打包文件名。
当与-c选项一起使用时,创建的tar包文件使用该选项指定的文件名
当与-x选项一起使用时,则释放该选项指定的tar包文件
辅助选项:
-v 表示在命令执行时显示详细的提示信息
-p 打包时保留文件及目录的权限
z 调用gzip程序,以gzip格式压缩或解压缩文件(.tar.gz)
-j 调用bzip2程序,以bzip2格式压缩或解压缩文件(.tar.bz2)
-J 使用xz压缩或解压缩文件(.tar.xz),xz的压缩率通常比bzip2更高
-C (大写字母C) 和-x选项一起使用,表示释放包时指定释放的目标路径创建(非压缩的)打包文件,将指定的一个或多个文件或目录备份生成为一个指定的包文件
tar cvf/cfv/-cvf 文件名.tar 要打包的目录或文件名列表……4.文件上传下载
sftp是一个交互式文件传输命令
# sftp [email protected]
scp具有和ssh一样的验证机制,从而可以实现2台机器安全的远程拷贝文件
scp可以概括为: scp -P 端口 文件路径 用户名@主机地址:远程目录
scp具有和ssh一样的验证机制,从而可以实现2台机器安全的远程拷贝文件
scp可以概括为: scp -P 端口 文件路径 用户名@主机地址:远程目录
rz命令与sz命令
命令格式: rz [选项] [filelist]5.命令解释器-shell
type 命令查看命令是file、alias还是builtin
type -a 列出当前命令可以如何执行
type -t 仅列出命令按照哪种方式执行(1)、普通变量
设置变量:
变量命名的规则:只能使用数字、字母和下划线,且不能用数字开头
变量名和变量值用“=”连接
等号两边不能有空格符
(2)、环境变量
(3)、显示与取消变量
用 unset 消除本地变量和环境变量
[root@www ~]$ unset +变量名6.Linux 中的特殊符号
; 可使用分号分隔多条命令
* 匹配任意零个或者多个字符 不能用于创建文件
? 匹配任意单个字符 不能用于创建文件
[ ] 匹配方括号中的任意一个字符,表示范围可以用"-” 不能用于创建文件
[^]或者[!] 匹配方括号中的任意一个字符或数字后进行取反 用于查找和删除文件, 不用于创建文件
{string,string} 匹配括号中的任意一个字符串,表示一个范围时,字符串之间个".." 可用于创建、查看、删除文件\ 使\后面的特殊字符失效
` 反引号,一般用于引用命令,执行的时候反引号里面的命令会被执行,与$()作用相同 '
'' 单引号,将单引号内的所有内容都原样输出
" 双引号,除了几个特殊字符外,将双引号内的几乎所有内容都原样输出 ”$“和“\”以及“ ` ”在双引号里面仍然保留自己的特殊含义7.命令别名
语法: alias 别名=’原命令 [选项]…… [参数]……’
#删除别名: [root@node13 ~]#unalias 别名
提供alias永久化的方法(所有用户):
vim /etc/bashrc写入
source /etc/bachrc读取8.命令历史
history 命令可以查阅命令历史记录 ,也可在命令行利用向上或向下光标键来进行查询。
语法: history [选项] [参数]
-c:清空当前历史命令
-a [file]:后面没跟文件时,默认将缓冲区中历史命令写入~/.bash_history中 -r [file]:将历史命令文件中的命令读入当前历史命令缓冲区中
-w:将当前历史命令缓冲区命令写入历史命令文件中;
cat /etc/profile | grep HIST
9.AAA认证AAA:分别为Authentication、Authorization、Accounting
认证(Authentication):验证用户的身份与可使用的网络服务;
授权(Authorization):依据认证结果开放网络服务给用户;
计帐(Accounting):记录用户对各种网络服务的用量,并提供给计费系统。
10.用户类别管理员:uid=0
普通用户:1-65535
系统用户:1-999
一般用户:1000-60000
useradd==adduser
11.组管理组:gid=0
普通组:1-65535
主组 基本组 附加组
12.添加新用户命令格式: useradd [选项]
-u 设置账号的UID
-g 设置基本组
-G 指定附加组
-d 更新家目录
-c 注释信息
-s shell名
-r 添加系统用户1-999
13.修改用户信息——usermod命令命令格式: usermod [选项] username
-l 更改账户的名称
-L 锁定(暂停)用户账户
-U 解锁用户账户
-g
-G 同添加
-c
-d
-s
14.删除用户账号——userdel命令命令格式: userdel [-r] 账户名
-r 在删除该账户的同时,一并删除该账户对应的主目录15.cat users | chpasswd users 批量修改
一、文件查找
(1)在$HOME目录及其子目录中,查找2天前被更改过的文件
(2)在/etc/目录下寻找以host开头的文件
(3)在/test/下面查找目录文件
(4)在/test目录及子目录中,查找超过2KB的文件
二、打包压缩
(1)将/test目录下的所有文件和文件夹全部压缩成myfile.zip文件
(2)把myfile.zip文件解压到 /opt
(3)将/opt目录下的文件全部打包并用gzip压缩成/test/newfile.tar.gz
(4)查看/test/newfile.tar.gz文件中有哪些文件?
(5)在/test目录内,备份/etc下的所有文件并保留其权限
三、别名
1.当前用户永久生效的命令别名
(1)写一个命令命为hello,实现的功能为每输入一次hello命令,就有hello,everyone写入文件/file.txt中。
(2)写一个命令别名为shuaxin,实现的功能为每输入一次该命令,file.txt文件的所有时间就更新为当前时间。
2.所有用户生效的命令别名
写一个所有用户都生效的命令别名为hh,每一个用户输入这个命令之后可以在该用户家录下创建一个file1文件。
四、用户管理
1、新建一个名为sarah的用户,不属于adminuser组,并将其shell设置为不可登陆shell
2 、创建alex用户,使alex用户满足以下要求:用户id为3456,描述名为alian,密码glegung2
(1)在$HOME目录及其子目录中,查找2天前被更改过的文件
find $HOME -atime -2
(2)在/etc/目录下寻找以host开头的文件
[root@localhost ~]# find /etc -name 'host*' -print
/etc/host.conf
/etc/hosts
/etc/avahi/hosts
/etc/hostname
/etc/nvme/hostnqn
/etc/nvme/hostid
(3)在/test/下面查找目录文件
[root@localhost ~]# find /test/ -type d -print
/test/
/test/mulu1
/test/mulu2
/test/mulu3
(4)在/test目录及子目录中,查找超过2KB的文件
[root@localhost ~]# find /test/ -size +2k
/test/
(1)将/test目录下的所有文件和文件夹全部压缩成myfile.zip文件
[root@localhost ~]# zip -r myfile.zip . -i test.zip
adding: test (stored 0%)
adding: test/fstab (deflated 44%)
[root@localhost ~]# ls myfile.zip
myfile.zip
(2)把myfile.zip文件解压到 /opt
[root@localhost ~]# unzip myfile.zip -d /opt
Archive: myfile.zip
extracting: /opt/test.zip
[root@localhost ~]# ll /opt
total 4
-rw-r--r--. 1 root root 192 Aug 2 20:30 test.zip
(3)将/opt目录下的文件全部打包并用gzip压缩成/test/newfile.tar.gz
gzip -r /opt > /test/newfile.tar.gz
查看结果:
[root@localhost ~]# ll /test/
total 4
-rw-r--r--. 1 root root 19 Aug 2 10:40 file1
-rw-r--r--. 2 root root 0 Aug 1 14:13 filenk
-rw-r--r--. 1 root root 0 Aug 2 10:23 file.txt
-rw-r--r--. 1 root root 0 Aug 2 20:42 newfile.tar.gz
(4)查看/test/newfile.tar.gz文件中有哪些文件?
[root@localhost ~]# zcat /test/newfile.tar.gz
(5)在/test目录内,备份/etc下的所有文件并保留其权限
[root@localhost ~]# tar cfp /BeiFen.tar /etc
1.当前用户永久生效的命令别名
(1)写一个命令命为hello,实现的功能为每输入一次hello命令,就有hello,everyone写入文件/file.txt中。
[root@localhost ~]# vim ~/.bashrc
#进入vim编辑模式书写如下指令
alias hello='echo hello,everyone'
#调用
[root@localhost ~]# source ~/.bashrc
[root@localhost ~]# hello
hello,everyone
(2)写一个命令别名为shuaxin,实现的功能为每输入一次该命令,file.txt文件的所有时间就更新为当前时间。
[root@localhost ~]# vim ~/.bashrc
#进入vim编辑模式书写如下指令:
alias shuaxin='touch file.txt'
#调用
[root@localhost ~]# source ~/.bashrc
#测试
[root@localhost ~]# shuaxin
[root@localhost ~]# stat file.txt
File: file.txt
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 35311917 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2022-08-03 05:25:06.667032449 +0800
Modify: 2022-08-03 05:25:06.667032449 +0800
Change: 2022-08-03 05:25:06.667032449 +0800
Birth: 2022-08-03 05:25:06.667032449 +0800
2.所有用户生效的命令别名
写一个所有用户都生效的命令别名为hh,每一个用户输入这个命令之后可以在该用户家录下创建一个file1文件。
[root@localhost ~]# vim /etc/bashrc
#进入vim编辑模式书写如下指令:
alias hh='touch /file1'
#调用
[root@localhost ~]# source /etc/bashrc
#测试
[root@localhost ~]# shuaxin
[root@localhost ~]# stat file.txt
File: file.txt
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 35311917 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2022-08-03 05:25:06.667032449 +0800
Modify: 2022-08-03 05:25:06.667032449 +0800
Change: 2022-08-03 05:25:06.667032449 +0800
Birth: 2022-08-03 05:25:06.667032449 +0800
1、新建一个名为sarah的用户,不属于adminuser组,并将其shell设置为不可登陆shell
[root@localhost ~]# useradd sarah -s /sbin/nologin
[root@localhost ~]# id sarah
uid=1001(sarah) gid=1001(sarah) groups=1001(sarah)
2 、创建alex用户,使alex用户满足以下要求:用户id为3456,描述名为alian,密码glegung2
[root@localhost ~]# useradd -u 3456 -c alian -p glegung2 alex
[root@localhost ~]# su alex
[alex@localhost root]$ su ouqiao
Password:
[alex@localhost root]$