目录
考试题型:
单选/多选/判断/填空/简答
简答题40分 其余共60题一题一分。
命令语句:
基本命令
- 查看完整主机名:hostname
- 修改主机名:hostnamectl set-hostname 主机名
- 查看当前目录的完整路径:pwd
- 显示当前系统时间和日期:date
- 显示日历:cal
- 查看磁盘驱动器当前可用空间:df
- 查看可用内存:free
- 查看当前工作目录:pwd
- 显示CPU使用率:top
- 打开网络管理器:nmtui
ls命令 (查看文件信息)
- ls -l 列出当前目录下的详细文件信息
- ls -lh 列出当前目录下的详细文件信息(大小大于1kb时带单位)
- ls -ld 查看指定目录本身的信息
- ls -a 查看当前目录下文件,包括隐藏文件(隐藏文件以.开头)
cd命令(切换目录)
- cd ~ 返回当前用户的家目录
[root@localhost ~]# cd /etc [root@localhost etc]# cd ~ [root@localhost ~]#
- cd .. 返回上级目录
[root@localhost ~]# cd A [root@localhost A]# ll 总用量 4 -rw-r--r--. 1 root root 697 3月 3 11:42 11.txt -rw-r--r--. 1 root root 0 3月 1 10:40 2.txt -rw-r--r--. 1 root root 0 3月 1 10:44 444.txt -rw-r--r--. 1 root root 0 3月 1 10:42 5.txt drwxr-xr-x. 2 root root 6 3月 1 10:48 B [root@localhost A]# cd B [root@localhost B]# cd .. [root@localhost A]#
- cd . 返回当前目录(无意义)
- cd - 返回上级目录
mkdir命令(创建目录)
- mkdir 目录名 在当前目录下创建目录
- mkdir -p 父目录/子目录 在当前目录创建多级目录
Linux第一次课程&随堂练习内容
touch命令(创建文件)
- touch 文件名 在当前目录下创建文件
- touch (路径)/文件名 在路径下创建文件
rm命令 (删除文件)
- rm (路径) 文件名 删除文件
- rm -f (路径) 文件名 强制删除文件
- rm -rf (路径) 目录 强制删除目录
- rm -rf 指定目录/*
- rm -rf /* 删除所有文件
mv命令(移动(/重命名)文件)
- mv 移动目标文件 移动文件目的目录 将文件移动到目的目录
- mv 移动目标文件 移动文件目的目录/新文件名 将文件移动到新的目录并重命名
- mv 移动目标文件 新文件名 重命名
cp命令(复制文件)
- cp 源文件 目的目录 复制文件到指定目录
- cp 源文件 目的目录/新文件名 复制并重命名
- cp -r 源目录 目的目录 复制目录
tar命令(打包压缩)
- tar -cvf 包的名字 被打包目录 对目录进行打包
- tar -tvf (路径) 包的名字 查看包的内容
- tar -xvf (路径) 包的名字 解压压缩包
- tar -xvf (路径) 包的名字 -C 指定解压后包的路径 解压压缩包
- tar -czvf 包的名字 被打包的目录 以gzip方式打包
例:对E目录进行打包压缩 格式为bzip2 tar -cjvf f.bz2 F 或者 tar -czvf e.gzip E
- file 文件名 查看文件属性
c:创建 v:显示过程 f:指定包的名字 t:查看包的内容 x:解压包 指定算法打包: 加算法参数打包: 加算法参数 例如gzip 使用-z参数
查看命令
- cat (路径)文件名 查看文件,一次性输出
- tac (路径)文件名 查看文件(反序输出),一次性输出
- more (路径)文件名 查看文件,分页输出
- less (路径)文件名 查看文件,分页输出
- head (路径)文件名 查看文件的开头部分,默认是10行
- head -n 行数(路径)文件名 查看文件的开头前n行部分
- tail (路径)文件名 查看文件的末尾部分,默认是10行
- tail -n 行数(路径)文件名 查看文件的末尾第n行部分
- tail -f (路径)文件名 动态监测文件内容的变化,一般用于日志的实时查看
- :/n 查找所有的n
Linux第二次课程&随堂练习内容
find命令(查找文件)
- find 查找范围 -name "文件名"
- find 查找范围 -iname "文件名" (忽略大小写查找文件)(均可用*实现模糊查询)
- find 查找范围 -size 文件大小范围
find / -size +100M -size -300M -iname "*rpm*"
- find 查找范围 -type 类型 根据文件类型查找文件
F:普通文件 d:目录 b:设备 c:字符文件
- find 查找范围 -user 用户名 根据文件所有者查找
- find 查找范围 -选项 -exec 命令 \;
查找/etc目录下passwd文件,然后复制到当前用户家目录下 find /etc -iname "passwd" -exec cp {} ~ \; 查找当前用户家目录下的passwd文件,并删除 find /root -name "passwd" -exec rm -rf {} \; 查找文件所有者为普通用户test的文件,并复制保存到/root/student目录中 find / -user test -exec cp {} /root/student \;
grep命令(文本过滤)
- grep "关键字" 过滤文本路径
- grep -i "关键字" 过滤文本路径(忽略大小写)
- grep -n "关键字" 过滤文本路径(显示第几行)
- grep -v "关键字" 过滤文本路径(反选)
-i 忽略大小写 -n 显示行号 -v 反选(关键字以外内容) 从/etc/passwd 文件中过滤含有root字段的行 grep "root" /etc/passwd 忽略大小写过滤 grep -i "root" /etc/passwd
管道符命令 |
命令A | 命令B
查找含有root的行 cat /etc/passwd | grep "root" 查找/etc/passwd中同时含有root和bash的文件 grep "bash" /etc/passwd | grep "root"
重定向符 < << > >>
- 输入重定向:将原本从键盘输入的内容,改为从文本或者脚本中读取,输入重定向的符号为”<”(</>覆盖源文件 <</>>添加到末尾)
- 输出重定向:将原本输出到终端上的内容,重新定向到其他地方(例如本地磁盘文件),输出重定向的符号为”>”或”>>”
查找/etc目录下含有conf的文件名,将用户名保存在当前用户家目录下的1.txt中 ls /etc | grep "conf" > /root/1.txt
Linux第三次课程&随堂练习内容
vim文本编辑器(命令模式,编辑模式,底行命令模式)
- 命令模式(打开文件后默认进入命令模式)
ndd 从光标处删除n行(dd默认删除当前行) u 撤销操作 ctrl r 反撤销(后退) nyy 从光标处复制n行 p 粘贴
- 编辑模式(命令模式按i/o/a/s)任意键进入
i 从光标处进入编辑模式 o 从光标处另起一行进入编辑模式 a 从光标处的后一个字符开始进入编辑模式 s 删除光标处的字符进入编辑模式
- 执行命令模式
:w 保存 :q 退出 :wq 保存退出 :wq! 彻底保存退出
- 底行命令模式特殊应用
: /关键字 查找关键字(n向下查找 N向上查找 高亮显示关键字) : %s/替换字段/替换后字段/g (%s替换范围,如果为1,4表示第一行-第四行 %表示第一行-最后一行 /g替换) : set number 显示行号 : set nonumber 取消行号 : set list 显示特殊字符 : set nolist 取消显示特殊字符 : set paste 纯纯拷贝粘贴
ln命令(创建链接)
- ln 目标文件 链接文件(硬链接)
- ln -s 目标文件 链接文件(软链接)
- ls -il 查看文件索引
对2.txt创建指向1.txt的软链接(创建新文件) ln -s 1.txt 2.txt 软链接删除被指向文件后变红但仍然可以查看 重新创建后恢复正常 软链接删除源文件,链接失效;硬链接删除源文件,链接有效,而且能时时备份;
Linux第四次课程&随堂练习内容
用户管理(相关信息存在于/etc/passwd)
- 格式
root:X:0:0:root:/root:/bin/bash 0: uid 用户唯一标识符 0: gid 组id 如果是/sbin/nologin 一般用于系统用户,即无法以交互形式登录终端
- cat /etc/passwd 查看用户
- id 用户名 查看用户(另一种方法)
- useradd [选项] 用户名
- useradd 用户名 -u 指定uid 创建指定uid的用户
- useradd 用户名 -g 指定gid 创建指定gid的用户
- useradd 用户名 -c 指定解释说明
- useradd 用户名 -d 指定用户的家目录
- useradd 用户名 -s 指定用户shell类型 /sbin/nologin
创建student1指定uid为6666 创建student2指定gid为6666 useradd student1 -u 6666 useradd student2 -g 6666
- passwd 用户名 设置密码(root用户不受限制)
- echo "密码" | passwd -- stdin 用户名
- usermod [选项] 用户名 修改用户
- usermod 用户名 -u 指定uid 修改用户uid
- usermod 用户名 -g 指定gid 修改用户gid
- usermod 用户名 -c 指定解释说明
- usermod 用户名 -d 修改用户家目录
- usermod 用户名 -s 修改用户shell类型 /sbin/nologin
修改用户student2使其无法登录终端 usermod student2 -s /sbin/nologin (原本是/bin/bash)
- userdel -r 用户(如果不加上-r只是单纯删除用户信息,不删除家目录和邮箱目录)
如果没有加-r删除 删除的两种方法有: 1.创建一个和原用户uid名字都相同的用户然后删除 useradd student1 -u 6666 -g 6666 find命令根据uid查找然后删除 find / -uid 6778 -exec rm -rf {} \;
组管理
- cat /etc/group 查看组
- id 组名 查看组
- groupadd [选项] 组名
- groupadd 组名 -g 指定gid 创建组
创建组使其具有管理员权限、 vim /etc/group 编辑管理员权限的gid 方法一: groupadd teachers -g 6789 将管理员gid赋值给teachers usermod teachers -aG 10 方法二: 编辑 在wheel:x:10:后加入teachers
- groupmod [选项] 组名
- groupmod 组名 -g 指定gid 修改组号
- groupmod 组名 -n 指定组名 修改组名
- usermod 用户名 -aG 组名(-G表示附加组 -a表示追加)
- groupdel 组名(主组不能直接删除,如果要删除需要把用户也一起删除)
练习:创建用户teacher1 uid为1666 密码为2 附加组teachers useradd teacher1 -u 1666 echo "2" | passwd -- stdin teacher1 usermod teacher1 -aG teachers
Linux第五次课程&随堂练习内容
用户的提权
- su - 用户名 切换用户
- sudo 要提权的命令
使用sudo方法创建用户tt sudo useradd tt 使用sudo方法删除用户tt sudo userdel -r tt
- visudo 更改权限 在root ALL=(ALL) ALL下面加上一行一模一样的
- vim /etc/group 加入管理员组
用户的提权-权限管理
- r 可读 w 修改 x 执行
- ls -l 查看目录下的文件信息(包括权限)
- ls -d 查看目录本身的信息(包括权限)
drwxr-xr-x. 2 root root 6 Oct 23 9:26 dirA d: 代表文件的类型,例如 d 代表目录, - 代表普通文件, l 代表软链接,b 代表块设别 (磁盘), c 代表字符设备(键盘、鼠标) rwxr-xr-x 分别代表了文件所有者 文件所属组 其他用户三组的权限 rwx:可读可写可执行 r-x:可读可执行 r-x:可读可执行 .代表是否启用了acl权限(访问控制列表) .代表未启用 +代表启用 2 代表包括隐藏目录有几个目录/如果是文件 代表硬链接数 6 代表文件大小 Oct 23 9:26 最后一次修改时间
Linux第六次课程&随堂练习内容
修改权限(符号法)
- chmod whowhatwhich 文件路径(有时候前面也加上sudo)
who(修改用户):u_文件所有者 g_文件所属组 o_其他用户 a_所有用户 what(要进行的操作):+_赋予权限 _ 减去权限 = 精确赋予权限 which(要操作的权限):rwx
- chmod -R a-x 文件路径
- chmod -R a+X 文件路径
- touch {1..5}.txt 批量创建文件
- mkdir {A..D} 批量创建目录
Linux第七次课程&随堂练习内容
修改权限(数值法)
- chmod ### 文件路径
r=4 w=2 x=1 无权限为0 计算所有者 所属组和其他用户的权限数值 例如 chmod 664 1.txt 使1.txt具有r-w r-w f权限
修改文件所有者和所属组
- chown 文件所有者 文件路径
- chown :文件所属组 文件路径
- chown 文件所有者:文件所属组 文件路径
chown :qq 123 chown root:tt 123
特殊权限
- suid(u+s)以文件所有者身份来运行 文件所有者执行权限为s 大写S即没有执行权限
- sgid(g+s)以文件所属组身份来运行 文件所属组执行权限为s 大写S即没有执行权限
- sticky(o+t)无效果
- chmod 7777 文件路径(前一个为特殊权限 后三个为基本权限)
suid=4 sgid=2 sticky=1
chmod u-s passwd 修改suid权限 chmod u+s passwd 增加suid权限
练习:使用数值法先修改文件123.txt拥有所有权限 再修改权限为文件所有组权限为rw,其他人为wx chmod 7777 123.txt chmod g-x,o-r 123.txt 或者 chmod 4763 123.txt
Linux第八次课程&随堂练习内容
默认权限
- umask 权限数值(设置默认权限)
umask 023(重启就没有了) ———————————————————————————— 永久生效则将umask权限数值写入/etc/bashrc 针对用户则将umask数值写入/home/用户名/.bashrc
访问控制列表
- getfacl 文件路径 查看用户acl权限
- setfacl -m u:用户名:权限 文件路径 设置acl权限
- setfacl -x u:用户名 文件路径 删除用户acl权限
- setfacl -b 文件路径 删除文件上所有acl权限的设置
查看root目录现有权限 getfacl /root 增加qq用户关于root的权限 setfacl -m u:qq:rwx /root 删除文件上所有acl权限的设置 setfacl -b /root 设置acl权限为r-x setfacl -m m:r-x /root 删除用户qq的acl权限 setfacl -x u:qq /root ___________________________ 创建文件目录dirA,要求文件所属组为student1 子目录自动继承文件所属组 dirA文件所有者权限为rwx,文件所属组权限为rx,其他用户没有权限,但student2具有rwx的权限。 mkdir dirA chown :student1 dirA chmod 2750 dirA useradd student2 setfacl -m u:student2:rwx dirA
精确匹配权限
- find 路径 -perm 权限数值 精确匹配权限
- find 路径 -perm -权限数值 匹配设置了数值的项
find /root -perm 755
Linux第九次课程&随堂练习内容
网络管理(nmtui)
- ping 网络地址 / ifconfig / ip addr 查看网络连通性
- nmcli device 查看网络设备
- nmcli connection (show) 查看网络连接
- route -n 查看网关
配置ip地址(linux)
- 进入终端,输入vi /etc/sysconfig/network-scripts/ifcfg-eth0
- service network restart 或者/etc/init.d/network restart 重启网络服务
Linux第十次课程&随堂练习内容
实验&作业练习题
1.创建用户student2,uid为6666,密码为2,删除时忘记使用-r 要求找出残留的文件并删除
useradd student2 -u 6666 echo "2" | passwd -- stdin student2 userdel student2 find / -u 6666 -exec rm -rf {} \;
2.创建用户teacher3,该用户无法以交互的方式登录终端。
然后尝试使用su - 命令切换到词用户,如果失败则改为可登录的方式,密码为1,切换到teacher3用户。要求在此用户下创建用户teacher4。
useradd teacher3 -s /sbin/nologin echo "1" | passwd -- stdin teacher3 usermod teacher3 -s /bin/bash usermod -aG 10 useradd teacher4
3.查找/etc/passwd中含有root字段的行,保存到/root/目录的root.txt中
grep "root" /etc/passwd > /root/root.txt
Linux H1
1.创建用户user01,user02并设置密码均为YnJKD@123,用户user01的主组是root,附加组是sshd,用户user02无法以交互方式登录
useradd user01 -g root -aG sshd useradd user02 -s /sbin/nologin echo "YnJKD@123" | passwd -- stdin user01 echo "YnJKD@123" | passwd -- stdin user02
2.创建一个名为/root/backup.tar.bz2的tar存档,其应包含/usr/share/doc的内容,该tar存档必须使用bzip2进行压缩
tar -cjvf /root/backup.tar.bz2 /usr/share/doc
3.查找属于user01的所有文件并将其副本放入.root.findfiles目录中
mkdir /root/findfiles find / -user user01 -exec cp {} /root/findfiles \;
4.创建名为strong的文件,用于定位/usr下的文件
- 文件strong应定位到/usr下所有小于10M的文件
- 将文件strong放置在/usr/local/bin下
- 所有用户对文件strong的都有可执行权限
touch /usr/local/bin/strong find /usr -size -10M > /usr/local/bin/strong chmod a+x /usr/local/bin/strong
Linux H2
1.修改用户的用户名为Workstation
hostname Workstation
2.在/目录下查找以s结尾的文件(不区分大小写)并放到1.html中
find / -iname "*s" >1.html
3.创建协作目录/home/managers,修改目录所属组权限为sgid
mkdir /home/managers chmod g+s /home/managers
4.将文件/etc/fstab复制到/tmp/fstab,配置 /tmp/fstab的权限满足一下条件
- 文件/tmp/fstab应不能被任何人执行
- user01用户能够读取和写入/tmp/fstab
- user02用户无法读取和写入/tmp/fstab
- 所有用户(当前或者未来能够更改/tmp/fstab)
cp /etc/fstab /tmp/fstab setfacl -m u:user01:rw- fstab setfacl -m u:user02:--- fstab chmod a+x fstab
Linux H3
1.在当前路径下创建目录dirA,然后切换到dirA目录,在dirA中,创建文本1.txt
mkdir dirA cd dirA touch 1.txt
2.在当前目录下创建文件2.txt和目录A将当前路径下的2.txt移动到A目录中,并且重命名为1.txt
touch 2.txt mkdir A mv 2.txt A/1.txt
3.在当前用户家目录下,创建多级目录dirB/dirC,然后在当前路径下创建文件3.txt,将3.txt移动到dirC目录下,并且重命名为4.txt,然后从普通用户的家目录下复制文件.bashrc(要求保留文件原属性)到dirB目录下。
复制完成后,查看最终效果,确定满足题目要求后,清空dirB目录下的所有内容,并保留dirB目录本身。
mkdir -p dirB/dirC touch 3.txt mv 3.txt dirB/dirC/4.txt cp -p .bashrc dirB rm -rf !(dirB)
4.用less命令查看/etc/passwd,然后查看指定字段root,完成后退出
less /etc/passwd /root :wq
5.在root用户的家目录下,创建普通文件1.txt 2.txt 3.txt和目录dir_txt然后使用find命令在root用户下查找以txt结尾的文件(指明为普通文件)
找到后复制到dir_txt目录下。
touch {1,2,3}.txt mkdir dir_txt find /root -name "*txt" -type f -exec cp {} dir_txt \;
6.查看/etc目录下的文件名,并将含有conf字段的文件名保留到dir_txt目录下,文件命名为conf_file。
查看一下文件末尾5行的内容(grep命令,ls,管道符)
ls /etc | grep "conf" >dir_txt/conf_file tail -n 5 conf_file
7.将/etc/passwd复制到当前用户家目录下,并重命名为passwd_test,然后创建目录dir_pass,将passwd_test移动到dir_pass目录中。
然后在当前用户的家目录创建了软链接文件passln对源文件dir_pass进行连接,在完成之后,对dir_pass目录进行打包压缩,要求压缩算法为bzip2,其中打包后的包名为dir_pass.tar.bzip2
cp /etc/passwd ~/passwd_test mkdir dir_pass mv passwd_test dir_pass ln -s dir_pass passln tar -czvf dir_pass.tar.bzip2 dir_pass
8.将2.txt中的hello里的h换成大写的H
:%s/h/H/g
实验一
1.创建用户teacher01,teacher02,teacher03 密码为2 要求teacher01的uid为6666,teacher03不可以登录终端。
useradd teacher01 -u 6666 useradd teacher03 -s /sbin/nologin useradd teacher02 echo "2" | passwd --stdin teacher01 echo "2" | passwd --stdin teacher02 echo "2" | passwd --stdin teacher03
2.创建组teachers,gid为7777
3.将用户teacher01,teacher02和teacher03都加入teacher组中(teachers组作为123的附加组)
groupadd teachers -g 7777 usermod teacher01 -aG teachers usermod teacher02 -aG teachers usermod teacher03 -aG teachers
4.删除teachers组和teacher01,teacher02,teacher03三个用户
userdel -r teacher01 userdel -r teacher02 userdel -r teacher03 groupdel teachers
5.创建普通用户student01,密码为2
useradd student01 echo "2" | passwd -- stdin student01
在student01用户下进行操作,在student01的家目录中创建目录A
要求文件所有者有rwx权限,其他用户没有任何权限
然后在A目录下创建普通文本文件1.txt,同样其他用户没有任何权限
su - student01 mkdir A chmod 770 A touch A/1.txt chmod 770 1.txt
再创建一个普通用户student02,通过修改student01家目录,A,1.txt文件的权限,使得student02可以在1.txt中写入hello并保存退出
useradd student02 setfacl -m u:student02:rwx /home/student01 setfacl -m u:student02:rwx /home/student01/A setfacl -m u:student02:rwx /home/student01/A/1.txt su - student02 vim /home/student01/A/1.txt
6.在student01的家目录中创建目录B,要求除了student用户可以访问读取B目录,其他用户都不可以访问,设置完成后将文件所有者改为teacher01
mkdir B setfacl -m g:student:rwx B chmod o-rx B chown teacher01 /home/student01/B
实验二
我是みか,祝你开心。