-
一个完整计算系统的简要介绍。
硬件系统和软件系统共同构成了一个完整的计算机系统
-
学会进制的转换,并简单举例完成转换。
十进制转二进制:除以2,反向取余数,直到商为0终止 十进制转十六进制:除以16,反向取余数,直到商为0终止
-
制作一个教程,说明vmware软件如何下载安装。
-
说明GPL和MIT开源协议的区别。
GPL-强制开源-linux GPL(GNU General Public License):GNU通用公共许可协议。 GPL协议的目的就是强制代码开源和免费使用。 其最大的特点就是“开源的传染性”。也就是说,假设某公司使用了具有GPL协议的代码库,那么他理论上也必须把自己的代码库开源。 MIT-受公司欢迎的宽松协议-vue MIT(The Massachusetts Institute of TechnologyLicense,麻省理工学院许可协议)是众多协议条款中,被广泛使用的其中一种。与其他常见的软件许可协议相比,MIT是相对宽松的软件许可协议。 MIT协议允许你任意的使用、复制、修改原MIT代码库,随便你卖钱还是开源,唯一需要遵循的原则就是在你的软件中声明你也使用的是MIT协议就行了。
-
制作2个安装教程,安装rocky 8.5, ubuntu 22.04,并结合xshell说明如何通过虚拟IP登入系统。
-
说明tab键补全命令以及补全路径的原理。
command 2Tab 所有子命令或文件补全 string2Tab 以string开头命令 /2Tab 显示所有根目录下一级目录,包括隐藏目录 ./2Tab 当前目录下子目录,包括隐藏目录 *2Tab 当前目录下子目录,不包括隐藏目录 ~2Tab 所有用户目录 $2Tab 所有变量 @2Tab /etc/hosts记录(centos7不支持) =2Tab 相当于ls -A(centos7不支持) 路径补全: 把用户给出的字符串当作路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名 如果唯一:则直接补全 否则:再次tab给出列表
-
说明内部命令和外部命令的区别,以及他们如何获取帮助的?
内部命令:由shell自带的,用户登录后自动加载并常驻内存中 外部命令:在文件系统路径下有对应的可执行程序文件,当执行命令时才从磁盘加载至内存中,执行完毕后从内存中删除 whatis 命令使用数据库来显示命令的简短描述 man 命令提供命令帮助的文件 whereis 命令查看指定命令相关文件、man帮助文件路径
-
说明命令行快捷键如何完成,1)快速跳转到行首?2)快速跳转到行尾?3)快速删除当前光标到行尾,4)快速删除光标到行首,5)如何快速取消执行命令。
1)快速跳转到行首 ctrl+a 2)快速跳转到行尾 ctrl+e 3)快速删除当前光标到行尾 ctrl+u 4)快速删除光标到行首 ctrl+k 5)如何快速取消执行命令 ctrl+c
-
总结Linux目录结构说明每个目录主要的用途。
/boot:系统启动引导文件存放目录 /bin:所有用户使用的基本命令 软连接;真实路径为/usr/bin /sbin:管理类的基本命令序 软连接;真实路径为/usr/sbin /lib:启动时程序依赖库文件 软连接;真实路径为/usr/lib /etc:配置文件目录 /home/USERNAME:普通用户家目录 /root:管理员的家目录 /mnt:临时文件系统挂载点 /dev:设备文件及特殊文件存储位置 /opt:第三方应用程序的安装位置 /tmp:临时文件存储位置 /usr: 第三方软件和系统软件安装位置 /var: 存放会变化的数据,例如日志、网页 /proc: 用于输出内核与进程信息相关的虚拟文件系统 /sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
-
总结文件通配 *, ?, [a-z], [0-9], ~,{a..z},
[:alnum:] [:alpha:] [:blank:]
[:digit:] [:graph:] [:lower:]
[:punct:] [:space:] [:upper:]等常用通配符。* #匹配零个或多个字符,但不匹配 "." 开头的文件,即隐藏文件 ? #匹配任何单个字符,一个汉字也算一个字符 [a-z] #一个字母 [0-9] #匹配数字范围 ~ #当前用户的家目录 {a..z} #匹配字母a-z [:alnum:] #任意数字或字母 [:alpha:] #任意大小写字母 [:blank:] #水平空白字符 [:digit:] #任意数字,相当于0-9 [:graph:] #除空格符(空格键与[TAB]键)之外的所有按键 [:lower:] #任意小写字母,表示 a-z [:space:] #垂直或水平空白字符 [:punct:] #标点符号 [:upper:] #任意大写字母,表示 A-Z
-
说明文件系统如何根据用户输入的路径查找到磁盘上的文件的过程。
输入命令后回车,shell程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给内核分配硬件资源将其运行起来
-
总结硬链接和软件链接原理,并举例说明如何使用。
硬链接“链接起来的文件”其实是一个文件系统内的同一个文件/存储位置,只是占用多个目录条目而已,条目指向同一个地址。 而软连接和其目标文件是两个完全不同的文件,软连接文件本身就是一个文件,其文件内容就是一个路径名,路径名写着目标文件的路径。 硬(hard)链接 格式: ln filename [linkname ] 符号 symbolic (或软 soft)链接 格式: ln -s filename [linkname]
-
说明linux命令管理工作流程,结合管道功能,自行设计几个题目。
将命令1的STDOUT发送给命令2的STDIN,命令2的STDOUT发送到命令3的STDIN 所有命令会在当前shell进程的子shell进程中执行 STDERR默认不能通过管道转发
-
说明标准输入,标准输出,标准错误输出的区别,及举例说明其功能。
Linux给程序提供三种 I/O 设备 - 标准输入(STDIN) -0 默认接受来自终端窗口的输入 - 标准输出(STDOUT)-1 默认输出到终端窗口 - 标准错误(STDERR) -2 默认输出到终端窗口
-
总结学过的用户,组,权限相关的命令及选项,示例
## 3. 1 用户管理 ### 3.1.1 用户创建 useradd **useradd 命令:**创建新的Linux用户 **格式:** ```http useradd [options] LOGIN ``` **常见选项:** ``` -u UID -g GID #指明用户所属基本组,可为组名,也可以GID -c "COMMENT" #用户的注释信息 -d HOME_DIR #以指定的路径(不存在)为家目录 -s SHELL #指明用户的默认shell程序,可用列表在/etc/shells文件中 -G GROUP1[,GROUP2,...] #为用户指明附加组,组须事先存在 -r #创建系统用户 CentOS 6之前: ID<500,CentOS7 以后: ID<1000 -m #自动建立用户的登入目录 -M #不要自动建立用户的登入目录 ``` **useradd 命令默认值设定由/etc/default/useradd定义** ``` [root@centos8 ~]#cat /etc/default/useradd # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 #对应/etc/shadow文件第7列,即用户密码过期的宽限期 EXPIRE= #对应/etc/shadow文件第8列,即用户帐号的有效期 SHELL=/bin/bash SKEL=/etc/skel #新用户家目录下的默认文件 CREATE_MAIL_SPOOL=yes ``` ### 3.1.2 用户属性修改 usermod **usermod 命令:**可以修改用户属性 **格式:** ``` usermod [OPTION] login ``` **常见选项:** ``` -u UID: 新UID -g GID: 新主组 -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使 用-a选项 -s SHELL:新的默认SHELL -c 'COMMENT':新的注释信息 -d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项 -l login_name: 新的名字 -L: 锁定指定用户,在/etc/shadow 密码栏的增加 ! -U: 解锁指定用户,将 /etc/shadow 密码栏的 ! 拿掉 ``` ### 3.1.3 删除用户 userdel **userdel命令:** 可删除Linux 用户 **格式:** ``` userdel [OPTION]... Login ``` **常见选项:** ``` -f, --force 强制,删除正在登录的用户失败时使用 -r, --remove 删除用户家目录和邮箱 ``` ### 3.1.5 设置密码 passwd **passwd 命令:** 修改用户密码 **格式:** ``` passwd [OPTIONS] UserName ``` **常用选项:** ``` -d:删除指定用户密码 -l:锁定指定用户 -u:解锁指定用户 -e:强制用户下次登录修改密码 --stdin:从标准输入接收用户密码,Ubuntu无此选项 -n mindays:指定最短使用期限 -x maxdays:最大使用期限 ``` **范例:非交互式修改用户密码** ``` [root@centos8 ~]#echo -e '123456\n123456' | passwd mage ``` **范例:批量修改用户口令** ``` echo username:passwd | chpasswd ``` ## **3.2 组管理** ### 3.2.1 创建组 groupadd **groupadd命令:**实现创建组 **格式:** ``` groupadd [OPTION]... group_name ``` **常见选项:** ``` -g GID #指明GID号;[GID_MIN, GID_MAX] -r #创建系统组,CentOS 6之前: ID<500,CentOS 7以后: ID<1000 ``` **范例:** ``` groupadd -g 48 -r apache ``` ### 3.2.2 修改组属性 groupmod **groupmod命令:** 组属性修改 **格式:** ``` groupmod [OPTION]... group ``` **常见选项:** ``` -n group_name: 新名字 -g GID: 新的GID ``` ### 3.2.3 组删除 groupdel **groupdel 命令:** 可以删除组 **格式:** ``` groupdel [options] GROUP ``` **常见选项:** ``` -f, --force 强制删除,即使是用户的主组也强制删除组,但会导致无主组的用户不可用无法登录 ``` ### 4.1.1 设置文件的所有者 chown **chown 命令:**修改文件的属主或属组 **格式:** ``` chown [OPTION]... [OWNER][:[GROUP]] FILE... ``` **用法说明:** ``` OWNER:GROUP或OWNER.GROUP #同时修改所有者和属组,不修改的为空即可 ``` **范例:** ``` [root@centos8 data]#chown root.bin f1.txt [root@centos8 data]#ll total 4 -rw-r--r-- 1 root bin 709 Dec 18 10:13 f1.txt [root@centos8 data]#chown wang:admins f1.txt [root@centos8 data]#ll total 4 -rw-r--r-- 1 wang admins 709 Dec 18 10:13 f1.txt ``` ### 4.2.2 修改文件权限 chmod **chmod 命令:**修改指定文件权限 **格式:** ``` chmod [OPTION]... MODE[,MODE]... FILE... ``` **说明: 模式法格式** ``` MODE:who opt permission who:u,g,o,a opt:+,-,= permission:r,w,x 修改指定一类用户的所有权限 u= g= o= ug= a= u=,g= 修改指定一类用户某个或某个权限 u+ u- g+ g- o+ o- a+ a- + - -R: 递归修改权限 ``` ### 4.3 新建文件和目录的默认权限 umask 的值可以用来保留在创建文件权限 **实现方式:** ``` 新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变,文件执行权限危险,没有x即使root也无法执行 新建目录的默认权限: 777-umask 非特权用户umask默认是 002 root的umask 默认是 022 ``` **查看umask** ``` umask #模式方式显示 umask –S ``` **修改umask** ``` umask # ``` **持久保存umask** ``` 全局设置: /etc/bashrc 用户设置:~/.bashrc ``` ## 4.4 Linux文件系统上的特殊权限 ### 4.4.1 特殊权限SUID ``` 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限 启动为进程之后,其进程的属主为原程序文件的属主 SUID只对二进制可执行程序有效 SUID设置在目录上无意义 ``` **范例:SUID权限设定:** ``` chmod u+s FILE... chmod 4xxx FILE chmod u-s FILE... ``` ### 4.4.2 特殊权限SGID **范例:SGID权限设定:** ``` chmod g+s FILE... chmod 2xxx FILE chmod g-s FILE... ``` ### 4.4.3 特殊权限 Sticky 位 ``` 具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权 在目录设置Sticky位,只有文件的所有者或root可以删除该文件 sticky设置在文件上无意义 ``` **范例:Sticky权限设定:** ``` chmod o+t DIR... chmod 1xxx DIR chmod o-t DIR... ``` ### 4.4.4 权限位映射 ``` SUID: user,占据属主的执行权限位 s:属主拥有x权限 S:属主没有x权限 SGID: group,占据属组的执行权限位 s: group拥有x权限 S:group没有x权限 Sticky: other,占据other的执行权限位 t:other拥有x权限 T:other没有x权限 ``` ## 4.5 设定文件隐藏权限 设置文件的隐藏权限,可以访问 root 用户误操作删除或修改文件 **chattr 命令:**设置隐藏权限 ``` +a file #只能追加内容,不能删除,改名 +i file #不能删除,改名,更改 ``` **lsattr 命令:**显示隐藏权限 **范例:** ``` [root@centos8 data]#chattr +i dir [root@centos8 data]#lsattr dir ------------------ dir/fstab ------------------ dir/f1.txt [root@centos8 data]#lsattr * ------------------ dir/fstab ------------------ dir/f1.txt ------------------ f11.txt ------------------ f22.txt [root@centos8 data]#ll total 8 drwxr-xr-x 2 root root 33 Dec 18 14:32 dir -rw-r--r-- 1 root root 719 Dec 18 14:30 f11.txt -rw-r--r-- 1 root root 6 Dec 18 14:30 f22.txt [root@centos8 data]#rm -rf dir rm: cannot remove 'dir/fstab': Operation not permitted rm: cannot remove 'dir/f1.txt': Operation not permitted [root@centos8 data]#lsattr ------------------ ./f11.txt ------------------ ./f22.txt ----i------------- ./dir [root@centos8 data]#chattr -i dir [root@centos8 data]#lsattr ------------------ ./f11.txt ------------------ ./f22.txt ------------------ ./dir ```