一、基础
1.1 什么是绝对路径,什么是相对路径
- 绝对路径:从根开始的路径就是绝对路径
- 相对路径:从当前目录开始的路径就是相对路径
1.2 简述命令执行的流程
- 判断命令是否是绝对路径
- 判断命令是否有别名
- 判断命令是内置命令还是外置命令
- bash的内部命令直接执行,外部命令检查是否有缓存
- 通过$PATH变量查找命令,有命令执行,没有命令报错'
1.3 简述软连接与硬连接的区别
- ln 命令创建硬链接;ln -s 创建软链接
- 目录不能创建硬链接,硬链接不能跨越分区
- 目录软链接特别常用,软链接支持跨分区
- 硬链接文件与源文件inode相同,软链接文件与源文件inode不同
- 删除软链接对源文件及硬链接文件无影响
- 删除硬链接对源文件及链接文件无影响
- 删除源文件,对硬链接无影响,会导致软链接失效
- 删除源文件及其所有硬链接,文件会被真正删除
1.4 创建目录/old/boy/
- mkdir -p /old/boy
1.5 使用一条命令在/old/boy/目录下创建 bgx1.txt、 bgx2.txt、bgx3.txt 三个文件
- touch /old/boy/bgx{1..3}.txt
1.6 将/old/boy/目录下所有内容复制到/root/目录下
- cp -a /old/boy/* /root/
1.7 删除/root 下所有 a 开头的文件及目录
- rm -fr /root/a*
1.8 在/tmp/目录下面创建一个 etc 的软连接 etc-test
- ln -s /etc /tmp/etc-test
1.9 写出 20 个学过的命令及含义
-
awk---取列,取行
grep---筛选,匹配
sed---替换,取行mkdir---创建目录
touch---创建文件
ln---创建硬链接ls---查看文件
stat---查看文件的详细属性信息
cat---查看文件内容
less---查看大文件内容
more---查看大文件内容,显示百分比
head---查看文件前几行,默认十行
tail---查看文件后几行,默认十行
file---查看文件类型
tree---以树形结构显示目录和文件mv---移动
cp---拷贝
rm---删除mv---移动
sort---排序
uniq---去重,与sort组合使用
wc---统计
xargs---将多行排列,分组cut ---取字符串
cd---切换目录
Pwd---显示当前路径
chmod---修改文件权限
chattr---改变文件权限
lsattr---查看文件是否加锁
chown --设置属主属组
chgrp --设置属组useradd---新建用户
usermod---修改用户信息userdel---删除用户
groupadd --添加用户组
groupmod --修改用户组
groupdel --删除用户组
gpasswd --用户组设置密码
passwd---修改密码
mkpasswd --生成随机密码
id---查看用户是否存在
su---切换用户
chage---修改密码属性
1.10 以下目录的作用
-
/bin: 二进制可执行文件的保存目录,普通用户命令保存目录(软链接,指向/usr/bin)
/sbin: 管理员可用的系统相关命令存储目录(软链接,指向/usr/sbin)
/lib: 系统启动与运行时所需的库文件(软链接,指向/usr/lib)
/lib64:系统启动与运行时所需的64库库文件(软链接,指向/usr/lib64)
/usr: 系统文件目录(第二层次目录)
/boot: 存放系统启动的相关文件
/dev: 设备文件的保存目录,比如硬盘分区 光驱等
/etc: 配置文件的保存目录
/home: 普通用户的家目录
/media: 可移动媒体的挂载点
/mnt: 临时挂载点
/opt: 第三方软件程序存储目录
/srv: 存储为用户提供服务的数据
/proc: 存放系统正在运行的程序 进程信息
/root : 管理员家目录
/run: 正在运行的程序的pid和锁文件存储目录
/sys: 虚拟的文件系统,存放进程和内核信息
/tmp: 临时文件存储目录
/var: 存放系统执行过程中经常变化的文件,如日志和邮件等
二、awk
2.1 显示 1.txt 文件第 3 到第 10 行的内容?
- awk 'NR==3,NR==10' 1.txt
2.2 取出 IP 地址
- ifconfig eth0 | awk 'NR==2 {print $2}'
**2.3 写一个文件,文件内容如下 **
cat >>test.txt<<EOF
server {
lisTEN 80;
server_nAme docs.xuliangwei.com;
root /code/dOcs
index INDEX.html;
}
EOF
2.3.1 过滤 docs.xuliangwei.com 这段关键字
- grep 'docs' test.txt
2.3.2 同时过滤出 root 和 index 的行,不区分大小写
- grep -Ei 'root|index' test.txt
2.3.3 过滤 index,区分大小写
- grep -i 'index' test.txt
2.3.4 过滤出带"O"的行,不区分大小写
- grep -i 'o' test.txt
2.3.5 过滤出不带";"的行
- grep -v ';' test.txt
**2.4 将"web3_access.log"上传至你的 linux 服务器 **
2.4.1 统计出该文件 IP 地址(第一列)出现的次 数,并按正序对其进行排序
- awk '{print $1}' access.log | sort | uniq -c | sort -n
2.4.2 统计该文件内 HTTP 状态返回码出现的次数 (例如 200,404,403,在第九列),并按照倒序进行排 序
- awk '{print $9}' access.log | sort | uniq -c | sort -rn
2.4.3 过滤出所有状态返回码是 200 的行,并将这些 返回码为 200 行的全部替换成 300
- awk '{print $9}' access.log | grep '200' | sed 's#200#300#g'
**2.5 使用 hostnamectl 查看当前系统信息 **
[root@test-200 /home]# hostnamectl
Static hostname: test-200
Icon name: computer-vm
Chassis: vm
Machine ID: 955d9cf9777d49748690808a0b38096b
Boot ID: 9565d1bd772543beb49d178479e7c94f
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
PE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-957.el7.x86_64
Architecture: x86-64
2.5.1 取出 kernel 内核版本信息
- hostnamectl | grep 'Kernel' | awk '{print $3}'
2.5.2 取出系统名称
- hostnamectl | grep 'Operating' | awk '{print 4}'
2.5.3 取出系统版本信息,只显示"linux 7"
- hostnamectl | grep 'Operating' | awk '{print 5}'
三、用户与权限
3.1 在 Linux 系统中,哪个文件保存着用户信息 B
A:/etc/Profile B:/etc/passwd C:/usr/bin/env D:/boot
3.2 一个用户想要修改 dir 目录下的 file 文件,他需 要对 dir 目录以及 file 文件有什么权限 A
A:file 的写权限和 dir 目录(以及一直向上到/目 录)的执行权限
B:只需要 file 的写权限 C:只需 file 的读和写权限
D:file 的写权限和 dir 目录(以及一直向上到/目 录)的写权限
3.3 默认情况下管理员创建了一个用户就会在 ()目录下创建一个用户主目录 B A:/usr B:/home C:/root D:/etc
3.4 为脚本程序指定执行权限的命令参数是 A
A:chmod +x filename.sh B:chown +x filename.sh
C:chmod +w filename.sh D:chown +r filename.sh
3.5 如果执行命令 # chmod 746 file.txt , 那么该文件 的权限是? A
A:rwxr--rw- B:rw-r--r-- C:–xr—rwx D:jrwxr—r—
**3.6 某文件的权限为:drw--r--r--,用数值形式表示 该权限,则该八进制数为(),该文件属性是() **
3.7 某个服务器有 a.sh 脚本,用户权限为 644,需 要执行什么命令,才可以执行./a.sh 命令
- chmod a+x a.sh
3.8 唯一标识每一个用户的是用户的_UID和_GID
3.9 将以下权限翻译成数字,将数字权限用字母表 示
rw-r-xr-- (654) rw-r--r--(644) rwx--x--x(711) rw------- (611) rwxr--r--(744) rw-rw-r--(664)
751(rwx r-x --x) 771(rwx rwx --x) 632(rw- -wx -w-) 644(rw- r-- r--)
551(r-x r-x --x) 622(rw- -w- -w-) 746(rwx r-- rw-) 755(rwx r-x r-x)
3.10 设置/home/user1/test 文件权限为所有者可读可 写可执行,所有组可读可写,其他所有账户可读, 并将该文件的所有者和所有组都修改为 root
- chown root.root /home/user1/test
- chmod 764 /home/user1/test
3.11 当用户 zabbix 对/testdir 目录有写和执行权限 时,该目录下的只读文件 file1 是否可修改和删 除?
- 可改可删
3.12 把 jacky 的密码设置为 123
- echo '123' | passwd --stdin jacky
3.13 使用"ls -l /"以长格式查看根目录,写出引号内 容所代表的详细含义
“dr-xr-xr-x.” 5 “root root” 4096 May 16 01:36 boot
- 文件类型信息
- 文件权限信息
- 文件硬链接数
- 文件所属用户
- 文件所属组用户(属组)
- 文件容量大小
- 文件修改的时间信息
- 文件名称信息
3.14 当用户 mysql 对/data/DB 目录无读权限,但是 拥有写和执行权限,意味着能做哪些操作,无法做 哪些操作?
- 不能查看目录
- 可以进入目录,可以创建文件,可以修改删除目录下文件
四、进阶
*4.1 如果某一天你误操作了"rm -rf ",会发生哪些 情况
- 会删除当前目录下的所有文件
**4.2 用命令行更改 config.txt 文件,把里面所有的 "name"更改为"address" **
- sed 's#name#address#g' config.txt
4.3 用 awk 获取文件中第三行的倒数第二列字段
- awk 'NR==2 {print $(NF-1)}'
4.4 删除 file.txt 文件中的空行
- grep -v '^$' file.txt > file1.txt
4.5 删除/tmp 目录下所有 a 开头的文件
- rm -f /tmp/a*
五、翻译
5.1 [root@test-200 ~]# cd /rot
-bash: cd: /rot: No such file or directory
没有这个文件或目录
5.2 [root@test-200 ~]# mdkir a
-bash: mdkir: command not found
命令未找到
5.3 [root@test-200 ~]# mkdir a
mkdir: cannot create directory ‘a’: File exists
无法创建目录a,文件已存在
5.4 [root@test-200 ~]# rm a
rm: cannot remove ‘a’: Is a directory
不能删除a文件,这是一个目录
5.5 [root@test-200 ~]# rm a.txt
rm: remove regular empty file ‘a.txt’?
是否要删除普通空文件a.txt
5.6 [root@test-200 ~]# cp /tmp/a.txt /root/a.txt
cp: overwrite ‘/root/a.txt’?
是否要覆盖/root/a.txt
5.7 [root@test-200 ~]# id www
id: www: no such user
没有www这个用户
5.8 [test@test-200 /]$ cd /root
bash: cd: /root: Permission denied
权限拒绝
5.9 [root@test-200 /tmp]# cp -q a.txt c.txt
cp: invalid option -- 'q'
无效选项
5.10 [root@test-200 /home]# useradd test
useradd: user 'test' already exists
用户test已存在