diff --git "a/\345\255\231\347\245\245/\344\275\234\344\270\232/20240616.md" "b/\345\255\231\347\245\245/\344\275\234\344\270\232/20240616.md" new file mode 100644 index 0000000000000000000000000000000000000000..8a16f9858a925aa50e32ee4689debbf1d3e75338 --- /dev/null +++ "b/\345\255\231\347\245\245/\344\275\234\344\270\232/20240616.md" @@ -0,0 +1,532 @@ +1. Linux 查看哪个服务程序占用了 8089 端口用什么命令? +答:netstat –anpt | grep 8089 +2. 杀死 PID 为 4728 的进程用什么命令? +答:kill -9 4728 +3. 找出当前目录以及子目录下文件名以 en 为首字母的文件用什么命令? +答:find . -name "en* " +4. Linux 下,为 filename.sh 脚本赋予可执行权限? +答:chmod +x filename.sh +5. 解压 gz 包、zip 包分别用什么命令和参数? +答:tar -xf .gz -C /usr/local +6. unzip .zip +支持 rpm 包的 linux 环境,查询是否安装过 smile 包用何命令? 如安装过,卸载此包用何命令? +答:rpm -q smile ;rpm -e smile +7. 写出 linux 下设置 jdk 环境变量的方法 +vi /etc/profile添加内容 JAVA_HOME=/usr/local/java/jdk1.8.0_221 PATH=JAVAHOME/bin:PATH CLASSPATH=.:JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar export JAVA_HOME export PATH export CLASSPATH +8. systemctl disable firewalld 此命令的含义是, systemctl stop firewalld 此命令的含义是 +答:永久关闭Firewalld防火墙;后面命令是临时关闭 +9. 查看 docker 运行状态命令 构建一个镜像,镜像名为 swub,标签 v1 从 swub 镜像启动一个容器 swubsa,要求将容器的 8080 和 9527 端口分别映射到宿主机的 8080 和 9527 端口,主机文件夹 /home/lan/volume 容器卷/swdata +答: 构建镜像:docker build 增加镜像标签docker tag swub:v1 +10. docker run -itd --name swubsa -p 8080:8080 -p 9527:9527 -v /home/lan/volume:/swdata swub:v1 +11. nginx 如需设置两个服务地址的负载,要操作的配置文件名字是什么 ?启动 nginx 命令 关闭 nginx 命令 +答:/etc/nginx/nginx.conf;systemctl start nginx;systemctl stop nginx +12. SELECT id, name FROM table1 WHERE id = ( SELECT id FROM table2 WHERE name = “李四”); 一句话描述上面查询语句,此查询的目的是什么? +答:查询table1表id字段等于table2表name字段是李四的信息 + +二、填空题形式: +1. 在Linux系统中,以 文件 方式访问设备 . +2. Linux内核引导时,从文件/etc/fstab 中读取要加载的文件系统. +3. Linux文件系统中每个文件用 i节点来标识. +4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节点表块 和数据存储块. +5. 链接分为: 硬链接 和 符号链接 . +6. 超级块包含了i节点表 和 空闲块表等重要的文件系统信息. +7. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限,则该八进制数为: 644 ,该文件属性是 目录 . +8. 前台起动的进程使用 Ctrl+c 终止. +9. 静态路由设定后,若网络拓扑结构发生变化,需由系统管理员修改路由的设置. +10. 网络管理的重要任务是: 控制 和 监控 . +11. 安装Linux系统对硬盘分区时,有两种分区类型: 文件系统分区 和 交换分区 . +12. 编写的Shell程序运行前赋予该脚本文件 执行 权限. +13. 系统管理的任务之一是能够在 分布式 环境中实现对程序和数据的安全保护、备份、恢复和更新. +14. 系统交换分区是作为系统虚拟存储器 的一块区域. +15. 内核分为 进程管理系统 、 内存管理系统 、 I/O管理系统 和文件管理系统 等四个子系统. +16. 内核配置是系统管理员在改变系统配置 硬件 时要进行的重要操作. +17. 在安装Linux系统中,使用netconfig程序对网络进行配置,该安装程序会一步步提示用户输入主机名、域名、域名服务器、IP地址、 网关地址 和 子网掩码 等必要信息. +18. 唯一标识每一个用户的是用户 ID 和用户名. +19. 在Linux系统中所有内容都被表示为文件,组织文件的各种方法称为 文件系统 . +20. DHCP可以实现动态 IP 地址分配. +21. 系统网络管理员的管理对象是服务器、 用户 和服务器的进程 以及系统的各种资源. +22. 网络管理通常由监测、传输和管理三部分组成,其中管理部分是整个网络管理的中心. +23. 当想删除本系统用不上的 设备驱动程序 时编译内核,当内核不支持系统上的 设备驱动程序 时,对内核 升级 . +24. Ping命令可以测试网络中本机系统是否能到达 一台远程主机 ,常常用于测试网络的 连通性 . +25. vi编辑器具有两种工作模式: 命令模式 和 输入模式 . +26. 可以用ls –al命令来观察文件的权限,每个文件的权限都用10位表示,并分为四段,其中第一段占 1 位,表示 文件类型 ,第二段占3位,表示 文件所有者 对该文件的权限. +27. 进程与程序的区别在于其动态性,动态的产生和终止,从产生到终止进程可以具有的基本状态为: 运行态 、 就绪态 和 等待态(阻塞态) . +28. DNS实际上是分布在internet上的主机信息的数据库,其作用是实现 IP地址和主机名 之间的转换. +29. Apache是实现WWW服务器功能的应用程序,即通常所说的"浏览web服务器",在服务器端 为用户提供浏览 web服务 的就是apache应用程序. +30. 在Linux系统上做备份可以有两种类型:系统备份 和 用户备份 .其中前者是指对 操作系统 的备份,后者是指对 应用程序和用户文件的备份. +31. CD-ROM标准的文件系统类型是 iso9660 . +32. 当lilo.conf配置完毕后,使之生效,应运行的命令及参数是 lilo . +33. 在使用ls命令时,用八进制形式显示非打印字符应使用参数 -b . +34. Linux使用支持Windows 9.x/2000长文件名的文件系统的类型是 vfat . +35. 设定限制用户使用磁盘空间的命令是 quota . +36. 在Linux系统中,用来存放系统所需要的配置文件和子目录的目录是 /etc . +37. 硬连接只能建立对 文件 链接.符号链接可以跨不同文件系统创建. +38. 套接字文件的属性位是 s . +39. 结束后台进程的命令是 kill . +40. 进程的运行有两种方式,即 独立运行和使用父进程运行 . +41. Links分为 硬链接和符号链接 . +42. 在超级用户下显示Linux系统中正在运行的全部进程,应使用的命令及参数是 ps -aux . +43. 管道文件的属性位是 p . +44. 将前一个命令的标准输出作为后一个命令的标准输入,称之为 管道 . +45. 为脚本程序指定执行权的命令及参数是 chmod a x filename . +46. 进行远程登录的命令是 telnet . +47. 欲发送10个分组报文测试与主机abc.tuu.edu.cn的连通性,应使用的命令和参数是:ping abc.tuu.edu.cn –c 10 . +48. DNS服务器的进程命名为named,当其启动时,自动装载 /etc目录下的 named.conf 文件中定义的DNS分区数据库文件. +49. Apache服务器进程配置文件是 httpd.conf . +50. 在 Linux系统中,压缩文件后生成后缀为.gz文件的命令是 gzip . +51. 在用vi编辑文件时,将文件内容存入test.txt文件中,应在命令模式下键入:w test.txt . +52. 可以在标准输出上显示整年日历的命令及参数是 cal -y . +53. 在shell编程时,使用方括号表示测试条件的规则是:方括号两边有 空格 . +54. 检查已安装的文件系统/dev/had5是否正常,若检查有错,则自动修复,其命令及参数是 fsck –a /dev/had5 . +55. 在Windows9.x环境下共享Unix/Linux中的用户目录的一个工具是 Samba服务器 . +56. 系统管理员的职责是进行系统资源管理、系统性能管理、设备管理、安全管理和 系统性能监测 . +57. 在Linux系统中,测试DNS服务器是否能够正确解析域名的的客户端命令,使用命令 nslookup . +58. 在Linux系统下,第二个IDE通道的硬盘(从盘)被标识为 hdb . +59. 当系统管理员需升级内核版本和改变系统硬件配置时,应 重新编译内核 . +60. 如果只是要修改系统的IP地址,应修改 /etc/rc.d/rc.inet1 配置文件. +61. 当LAN内没有条件建立DNS服务器,但又想让局域网内的用户可以使用计算机名互相访问时,应配置 /etc/hosts 文件. +62. 在vi编辑环境下,使用 Esc键 进行模式转换. +63. Slackware Linux 9.0通常使用 ext3 文件系统,系统的全部磁盘块由 四 部分组成. +64. 将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此文件保存到/home目录下,实现此任务的tar命令格式 tar zcvf /home/wang.tar.gz /home/stud1/wang . +65. 管道就是将前一个命令的 标准输出 作为后一个命令的 标准输入 . +66. 在使用手工的方法配置网络时,可通过修改 /etc/HOSTNAME 文件来改变主机名,若要配置该计算机的域名解析客户端,需配置 /etc/resolv.conf 文件. +67. 启动进程有手动启动和调度启动两种方法,其中调度启动常用的命令为 at 、 batch 和 crontab . +68. test.bns.com.cn的域名是 bns.com.cn ,如果要配置一域名服务器,应在 named.conf 文件中定义DNS数据库的工作目录. +69. Sendmail邮件系统使用的两个主要协议是: SMTP 和 POP ,前者用来发送邮件,后者用来接收邮件. +70. DHCP是动态主机配置协议的简称,其作用是:为网络中的主机分配IP地址 . +71. 目前代理服务器使用的软件包有很多种,教材中使用的是 squid . +72. rm命令可删除文件或目录,其主要差别就是是否使用递归开关 -r或-R . +73. mv 命令可以移动文件和目录,还可以为文件和目录重新命名. +74. 路由选择协议(RIP)的跳数表示到达目的地之前通过的 网关 数,RIP接受的最长距离是 15跳 . +75. ping命令用于测试网络的连通性,ping命令通过ICMP 协议(internet控制信息协议)来实现. +76. nfs 协议用于实现Unix(/linux)主机之间的文件系统共享. +77. 在Linux操作系统中,设备都是通过特殊的 文件 来访问. +78. shell不仅是 用户命令的解释器 ,它同时也是一种功能强大的编程语言. bash是Linux的缺省shell. +79. 用 >>符号将输出重定向内容附加在原文的后面. +80. 增加一个用户的命令是:adduser 或useradd . +81. 进行字符串查找,使用grep命令. +82. 使用 * 每次匹配若干个字符. +83. /sbin 目录用来存放系统管理员使用的管理程序. + + + +四.简答题形式: +1. 简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程. +参考答案 : Linux通过i节点表将文件的逻辑结构和物理结构进行转换. i 节点是一个64字节长的表,表中包含了文件的相关信息,其中有文件的大小、文件所有者、文件的存取许可方式以及文件的类型等重要信息.在i节点表中最重要 的内容是磁盘地址表.在磁盘地址表中有13个块号,文件将以块号在磁盘地址表中出现的顺序依次读取相应的块.Linux文件系统通过把i节点和文件名进行 连接,当需要读取该文件时,文件系统在当前目录表中查找该文件名对应的项,由此得到该文件相对应的i节点号,通过该i节点的磁盘地址表把分散存放的文件物 理块连接成文件的逻辑结构. + +2. 简述进程的启动、终止的方式以及如何进行进程的查看. +参考答 案: 在Linux中启动一个进程有手工启动和调度启动两种方式: +(1)手工启动 用户在输入端发出命令,直接启动一个进程的启动方式.可以分为:①前台启动:直接在SHELL中输入命令进行启动. ②后台启动:启动一个目前并不紧急的进程,如打印进程. +(2)调度启动 系统管理员根据系统资源和进程占用资源的情况,事先进行调度安排,指定任务运行的时间和场合,到时候系统会自动完成该任务. 经常使用的进程调度命令为:at、batch、crontab. +3. 简述DNS进行域名解析的过程. +参考答案: 客户端发出DNS请求翻译IP地址或主机名.DNS服务器在收到客户机的请求后: +(1)检查DNS服务器的缓存,若查到请求的地址或名字,即向客户机发出应答信息; +(2)若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户机发出应答信息; +(3)若没有查到,则将请求发给根域DNS服务器,并依序从根域查找顶级域,由顶级查找二级域,二级域查找三级,直至找到要解析的地址或名字,即向客户机所在网络的DNS服务器发出应答信息,DNS服务器收到应答后现在缓存中存储,然后,将解析结果发给客户机. +(4)若没有找到,则返回错误信息. +4. 系统管理员的职责包括那些?管理的对象是什么? + 参考答案: 系统管理员的职责是进行系统资源管理、设备管理、系统性能管理、安全管理和系统性能监测.管理的对象是服务器、用户、服务器的进程及系统的各种资源等. +5. 简述安装Slackware Linux系统的过程. +参考答案: (1)对硬盘重新分区. +(2)启动Linux系统(用光盘、软盘等). +(3)建立Linux主分区和交换分区. +(4)用setup命令安装Linux系统. +(5)格式化Linux主分区和交换分区 +(6)安装Linux软件包 +(7)安装完毕,建立从硬盘启动Linux系统的LILO启动程序,或者制作一张启动Linux系统的软盘.重新启动Linux系统. +6. 什么是静态路由,其特点是什么?什么是动态路由,其特点是什么? +参考答案: 静态路由是由系统管理员设计与构建的路由表规定的路由.适用于网关数量有限的场合,且网络拓朴结构不经常变化的网络.其缺点是不能动态地适用网络状况的变化,当网络状况变化后由网络管理员修改路由表. 动态路由是由路由选择协议而动态构建的,路由协议之间通过交换各自所拥有的路由信息实时更新路由表的内容.动态路由可以自动学习网络的拓朴结构,并更新路由表.其缺点是路由广播更新信息将占据大量的网络带宽. +7. 进程的查看和调度分别使用什么命令? +参考答案: 进程查看的命令是ps和top. 进程调度的命令有at,crontab,batch,kill. +8. 当文件系统受到破坏时,如何检查和修复系统? + 参考答案: 成功修复文件系统的前提是要有两个以上的主文件系统,并保证在修复之前卸载将被修复的文件系统. 使用命令fsck对受到破坏的文件系统进行修复.fsck检查文件系统分为5步,每一步检查系统不同部分的连接特性并对上一步进行验证和修改.在执行 fsck命令时,检查从超级块开始,然后是分配的磁盘块、路径名、目录的连接性、链接数目以及空闲块链表、i-node. +9. 解释i节点在文件系统中的作用. +参考答案: 在linux文件系统中,是以块为单位存储信息的,为了找到某一个文件在存储空间中存放的位置,用i节点对一个文件进行索引.I节点包含了描述一个文件所的全部信息.i节点是文件系统管理的一个数据结构. +10. 什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么? +参考答案: 链接分硬链接和符号链接. 符号链接可以建立对于文件和目录的链接.符号链接可以跨文件系统,即可以跨磁盘分区.符号链接的文件类型位是l,链接文件具有新的i节点. 硬链接不可以跨文件系统.它只能建立对文件的链接,硬链接的文件类型位是-,且硬链接文件的i节点同被链接文件的i节点相同. +11. 在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则. +参考答案: 磁盘簇(或i节点密度)是文件系统调度文件的基本单元.磁盘簇的大小,直接影响系统调度磁盘空间效率.当磁盘分区较大时,磁盘簇也应选得大些;当分区较小时,磁盘簇应选得小些.通常使用经验值. +12. 简述网络文件系统NFS,并说明其作用. +参考答案: 网络文件系统是应用层的一种应用服务,它主要应用于Linux和Linux系统、Linux和Unix系统之间的文件或目录的共享.对于用户而言可以通过 NFS方便的访问远地的文件系统,使之成为本地文件系统的一部分.采用NFS之后省去了登录的过程,方便了用户访问系统资源. +13. 某/etc /fstab文件中的某行如下: +/dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 +请解释其含义. +参考答案: (1)第一列:将被加载的文件系统名; +(2)第二列:该文件系统的安装点; +(3)第三列:文件系统的类型; +(4)第四列:设置参数; +(5)第五列:供备份程序确定上次备份距现在的天数; +(6)第六列:在系统引导时检测文件系统的顺序. +14. Apache服务器的配置文件httpd.conf中有很多内容,请解释如下配置项: +(1)MaxKeepAliveRequests 200 +(2)UserDir public_html + (3)DefaultType text/plain +(4)AddLanguare en.en +(5)DocumentRoot"/usr/local/httpd/htdocs" +(6)AddType application/x-httpd-php.php.php.php4 +参考答案: (1)允许每次连接的最大请求数目,此为200; +(2)设定用户放置网页的目录; +(3)设置服务器对于不认识的文件类型的预设格式; +(4)设置可传送语言的文件给浏览器; +(5)该目录为Apache放置网页的地方; +(6)服务器选择使用php4. +15. 某Linux主机的/etc/rc.d/rc.inet1文件中有如下语句,请修正错误,并解释其内容. /etc/rc.d/rc.inet1: …… ROUTE add –net default gw 192.168.0.101 netmask 255.255.0.0 metric 1 ROUTE add –net 192.168.1.0 gw 192.168.0.250 netmask 255.255.0.0 metric 1 +参考答案: 修正错误: (1)ROUTE应改为小写:route; +(2)netmask 255.255.0.0应改为:netmask 255.255.255.0; +(3)缺省路由的子网掩码应改为:netmask 0.0.0.0; +(4)缺省路由在设定,否则其后的路由将无效. 解释内容: (1)route:建立静态路由表的命令;(2)add:增加一条新路由; (3)-net 192.168.1.0:到达一个目标网络的网络地址; (4)default:建立一条缺省路由; +(5)gw 192.168.0.101:网关地址; +(6)metric 1:到达目标网络经过的路由器数(跳数). +16. 试解释apache服务器以下配置的含义: +(1)port 1080 +(2)UserDir userdoc +(3)DocumentRoot "/home/htdocs" +(4)〈Directory /home/htdocs/inside〉; Options Indexes FollowSymLinks AllowOverride None Order deny,allow deny from all allow from 192.168.1.5 〈/Directory〉; +(5)Server Type Standlone +Apache服务器配置行含义如下: +(1)将apache服务器的端口号设定为1080; +(2)设定用户网页目录为userdoc; +(3)设定apache服务器的网页根目录:/home/htdocs; +(4)在此apache服务器上设定一个目录/home/htdocs/inside,且此目录只允许IP地址为192.168.1.5的主机访问; +(5)定义apache服务器以独立进程的方式运行. +17. 简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么? +参考答案: +(1)ftp有两种登录方式:匿名登录和授权登录.使用匿名登录时,用户名为:anonymous,密码为:任何合法email地址;使用授权登录时,用户名为用户在远程系统中的用户帐号,密码为用户在远程系统中的用户密码. 区别:使用匿名登录只能访问ftp目录下的资源,默认配置下只能下载;而授权登录访问的权限大于匿名登录,且上载、下载均可. +(2)ftp文件传输有两种文件传输模式:ASCII模式和binary模式.ASCII模式用来传输文本文件,其他文件的传输使用binary模式. +(3)常用的ftp文件传输命令为:bin、asc、put、get、mput、mget、prompt、bye + + + + + +三.单项选择题形式: +1. 下面的网络协议中,面向连接的的协议是: A . +输控制协议 B 用户数据报协议 C 网际协议 D 网际控制报文协议 +2. 在/etc/fstab文件中指定的文件系统加载参数中, D 参数一般用于CD-ROM等移动设备. +A defaults B sw C rw和ro D noauto +3. Linux文件权限一共10位长度,分成四段,第三段表示的内容是 C . +A 文件类型 B 文件所有者的权限 C 文件所有者所在组的权限 D 其他用户的权限 +4. 终止一个前台进程可能用到的命令和操作 B . + A kill + B 〈CTRL〉; C + C shut down + D halt +5. 在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是 D . +A -m B -d C -f D -p +6. 下面关于i节点描述错误的是 A .(inode是一种数据结构,vfs中描述文件的相关参数??) + A i节点和文件是一一对应的 + B i节点能描述文件占用的块数 + C i节点描述了文件大小和指向数据块的指针 + D 通过i节点实现文件的逻辑结构和物理结构的转换 +7. 一个文件名字为rr.Z,可以用来解压缩的命令是: D . +A tar B gzip C compress D uncompress +8. 具有很多C语言的功能,又称过滤器的是 C . +A csh B tcsh C awk(awk详解) D sed +9. 一台主机要实现通过局域网与另一个局域网通信,需要做的工作是 C . +A 配置域名服务器 +B 定义一条本机指向所在网络的路由 +C 定义一条本机指向所在网络网关的路由 +D 定义一条本机指向目标网络网关的路由 +10. 建立动态路由需要用到的文件有 D . + A /etc/hosts + B /etc/HOSTNAME + C /etc/resolv.conf + D /etc/gateways +11. 局域网的网络地址192.168.1.0/24,局域网络连接其它网络的网关地址是192.168.1.1.主机192.168.1.20访问172.16.1.0/24网络时,其路由设置正确的是 B . +A route add –net 192.168.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1 +B route add –net 172.16.1.0 gw 192.168.1.1 netmask 255.255.255.255 metric 1 +C route add –net 172.16.1.0 gw 172.16.1.1 netmask 255.255.255.0 metric 1 +D route add default 192.168.1.0 netmask 172.168.1.1 metric 1 +12. 下列提法中,不属于ifconfig命令作用范围的是 D . +A 配置本地回环地址 B 配置网卡的IP地址 C 激活网络适配器 D 加载网卡到内核中 +13. 下列关于链接描述,错误的是 B . +A 硬链接就是让链接文件的i节点号指向被链接文件的i节点 +B 硬链接和符号连接都是产生一个新的i节点 +C 链接分为硬链接和符号链接 +D 硬连接不能链接目录文件 +14. 14. 在局域网络内的某台主机用ping命令测试网络连接时发现网络内部的主机都可以连同,而不能与公网连通,问题可能是 C. +A 主机IP设置有误 +B 没有设置连接局域网的网关 +C 局域网的网关或主机的网关设置有误 +D 局域网DNS服务器设置有误 +15. 下列文件中,包含了主机名到IP地址的映射关系的文件是: B . +A /etc/HOSTNAME B /etc/hosts C /etc/resolv.conf D /etc/networks +16. 16. 不需要编译内核的情况是 D . +A 删除系统不用的设备驱动程序时 B 升级内核时 C 添加新硬件时 D 将网卡激活 +17. 17. 在shell中变量的赋值有四种方法,其中,采用name=12的方法称 A . +A 直接赋值 B使用read命令 C 使用命令行参数 D使用命令的输出 +18. D 命令可以从文本文件的每一行中截取指定内容的数据. +A cp B dd C fmt D cut +19. 19. 下列不是Linux系统进程类型的是 D . +A 交互进程 B 批处理进程 C 守护进程 D 就绪进程(进程状态) +20. 20.配置Apache 1.3.19服务器需要修改的配置文件为 A +A httpd.conf B access.conf C srm.conf D named.conf +21. 内核不包括的子系统是 D . +A 进程管理系统 B 内存管理系统 C I/O管理系统 D硬件管理系统 +22. 在日常管理中,通常CPU会影响系统性能的情况是: A . +A CPU已满负荷地运转 B CPU的运行效率为30% C CPU的运行效率为50% D CPU的运行效率为80% +23. 若一台计算机的内存为128MB,则交换分区的大小通常是 C . +A 64MB B 128MB C 256MB D 512MB +24. 在安装Linux的过程中的第五步是让用户选择安装方式,如果用户希望安装部分组件(软件程序),并在选择好后让系统自动安装,应该选择的选项是 D . +A full B expert C newbie D menu +25. Linux有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用 C 命令. +A cat B more C less D menu +26. 下列信息是某系统用ps –ef命令列出的正在运行的进程, D 进程是运行Internet超级服务器,它负责监听Internet sockets上的连接,并调用合适的服务器来处理接收的信息. +A root 1 4.0 0.0 344 204? S 17:09 0:00 init +B root 2 0.0 0.1 2916 1520? S 17:09 0:00 /sbin/getty +C root 3 0.0 0.2 1364 632? S 17:09 0:00 /usr/sbin/syslogd +D root 4 0.0 1344 1204? S 17:09 0:10 /usr/sbin/inetd +27. 在TCP/IP模型中,应用层包含了所有的高层协议,在下列的一些应用协议中, B是能够实现本地与远程主机之间的文件传输工作. +A telnet B FTP C SNMP D NFS +28. 当我们与某远程网络连接不上时,就需要跟踪路由查看,以便了解在网络的什么位置出现了问题,满足该目的的命令是 C . +A ping B ifconfig C traceroute D netstat +29. 对名为fido的文件用chmod 551 fido 进行了修改,则它的许可权是 D . +A -rwxr-xr-x B -rwxr--r-- C -r--r--r-- D -r-xr-x-x +30. 在i节点表中的磁盘地址表中,若一个文件的长度是从磁盘地址表的第1块到第11块,则该文件共占有 B 块号. +A 256 B 266 C 11 D 256×10 (??) +31. 用ls –al 命令列出下面的文件列表, D 文件是符号连接文件. +A -rw-rw-rw- 2 hel-s users 56 Sep 09 11:05 hello +B -rwxrwxrwx 2 hel-s users 56 Sep 09 11:05 goodbey +C drwxr--r-- 1 hel users 1024 Sep 10 08:10 zhang +D lrwxr--r-- 1 hel users 2024 Sep 12 08:12 cheng +32. DNS域名系统主要负责主机名和 A 之间的解析. +A IP地址 B MAC地址 C 网络地址 D 主机别名 +33. WWW服务器是在Internet上使用最为广泛,它采用的是 B 结构. +A 服务器/工作站 B B/S C 集中式 D 分布式 +34. Linux系统通过 C 命令给其他用户发消息. +A less +B mesg y +C write +D echo to +[ 注:mesg [y|n] 所有使用者 决定是否允许其他人传讯息到自己的终端机介面 ] +35. NFS是 C 系统. +A 文件 B 磁盘 C 网络文件 D 操作 +36. B 命令可以在Linux的安全系统中完成文件向磁带备份的工作. +A cp +B tr +C dir +D cpio +[注:如果用 echo PATH或者echoPATH或者echoLD_LIBRARY_PATH 等类似的命令来显示路径信息的话,我们看到的将会是一大堆用冒号连接在一起的路径, tr 命令可以把这些冒号转换为回车,这样,这些路径就具有很好的可读性了: echo $PATH | tr ":" "\n"] +37. Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件,一般应将其放在 C 目录中. +A /bin B /etc C /dev D /lib +38. 在重新启动Linux系统的同时把内存中的信息写入硬盘,应使用 D 命令实现. +A # reboot B # halt C # reboot D # shutdown –r now +39. 网络管理具备以下几大功能:配置管理、 A 、性能管理、安全管理和计费管理等. +A 故障管理 B 日常备份管理 C 升级管理 D 发送邮件 +40. 关于代理服务器的论述,正确的是 A . +A 使用internet上已有的公开代理服务器,只需配置客户端. +B 代理服务器只能代理客户端http的请求. +C 设置好的代理服务器可以被网络上任何主机使用. +D 使用代理服务器的客户端没有自己的ip地址. +41. 关闭linux系统(不重新启动)可使用命令 B . +A Ctrl Alt Del B halt C shutdown -r now D reboot +42. 实现从IP地址到以太网MAC地址转换的命令为: C . +A ping B ifconfig C arp D traceroute +43. 在vi编辑器中的命令模式下,键入 B 可在光标当前所在行下添加一新行. +A 〈a〉; B 〈o〉; C 〈I〉; D A +44. 在vi编辑器中的命令模式下,删除当前光标处的字符使用 A 命令. +A 〈x〉; B 〈d〉;〈w〉; C 〈D〉; D 〈d〉;〈d〉; +45. 在vi编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用 C 命令. +A 上箭头 B 下箭头 C 〈.〉; D 〈*〉; +46. 用命令ls -al显示出文件ff的描述如下所示,由此可知文件ff的类型为 A . -rwxr-xr-- 1 root root 599 Cec 10 17:12 ff +A 普通文件 B 硬链接 C 目录 D 符号链接 +47. 删除文件命令为: D . +A mkdir B rmdir C mv D rm +48. 在下列的名称中,不属于DNS服务器类型的是:C +A Primary Master Server +B Secondary Master Server +C samba +D Cache_only Server +49. 网络管理员对WWW服务器进行访问、控制存取和运行等控制,这些控制可在 A 文件中体现. +A httpd.conf B lilo.conf C inetd.conf D resolv.conf +50. 邮件转发代理也称邮件转发服务器,它可以使用SMTP协议,也可以使用 C 协议. +A FTP B TCP C UUCP D POP +51. 启动samba服务器进程,可以有两种方式:独立启动方式和父进程启动方式,其中前者是在 C 文件中以独立进程方式启动. +A /usr/sbin/smbd B /usr/sbin/nmbd C rc.samba D /etc/inetd.conf +52. DHCP是动态主机配置协议的简称,其作用是可以使网络管理员通过一台服务器来管理一个网络系统,自动地为一个网络中的主机分配 D 地址. +A 网络 B MAC C TCP D IP +53. 为了保证在启动服务器时自动启动DHCP进程,应将 A文件中的dhcpd=no改为dhcpd=yes. +A rc.inet1 +B lilo.conf +C inetd.conf +D httpd.conf[注: 英文原义:RC中文释义:含有程序(应用程序甚至操作系统)启动指令的脚本文件注解:这一文件在操作系统启动时会自动执行,它含有要运行的指令(命令或其它脚本)列表.] +54. 对文件进行归档的命令为 D . +A dd B cpio C gzip D tar +55. 改变文件所有者的命令为 C . +A chmod B touch C chown D cat +56. 在给定文件中查找与设定条件相符字符串的命令为: A + A grep B gzip C find D sort +57. 建立一个新文件可以使用的命令为 D . +A chmod B more C cp D touch(指令改变档案的时间记录.) +58. 在下列命令中,不能显示文本文件内容的命令是: D . +A more B less C tail D join +59. 在使用匿名登录ftp时,用户名为 B . +A users B anonymous C root D guest +60. 在实际操作中,想了解命令logname 的用法,可以键入 D 得到帮助. +A logname --man B logname/? C help logname D logname --help +61. 如果LILO被安装在MBR,使用 A 命令即可卸载LILO. +A lilo –u B lilo –c C lilo –v D lilo -V +62. 当用命令ls –al查看文件和目录时,欲观看卷过屏幕的内容,应使用组合键 D . +A Shift Home B Ctrl PgUp C Alt PgDn D Shift PgUp +63. mc是UNIX风格操作系统的 C . +A 文件编辑器/程序编译器 B 配置网络的窗口工具 C 目录浏览器/文件管理器 D Samba服务器管理工具 +64. i节点是一个 D 长的表,表中包含了文件的相关信息. +A 8字节 B 16字节 C 32字节 D 64字节 +65. 文件权限读、写、执行的三种标志符号依次是 A . +A rwx B xrw C rdx D srw +66. Linux 文件名的长度不得超过 C 个字符. +A 64 B 128 C 256 D 512 +67. 进程有三种状态: C . +A 准备态、执行态和退出态 +B 精确态、模糊态和随机态 +C 运行态、就绪态和等待态 +D 手工态、自动态和自由态 +68. 从后台启动进程,应在命令的结尾加上符号 A . +A & B @ C # D $ +69. B 不是邮件系统的组成部分. +A 用户代理 B 代理服务器 C 传输代理 D 投递代理 +70. 在Shell脚本中,用来读取文件内各个域的内容并将其赋值给Shell变量的命令是 D . +A fold B join C tr D read +71. crontab文件由六个域组成,每个域之间用空格分割,其排列如下: B . +A MIN HOUR DAY MONTH YEAR COMMAND +B MIN HOUR DAY MONTH DAYOFWEEK COMMAND +C COMMAND HOUR DAY MONTH DAYOFWEEK +D COMMAND YEAR MONTH DAY HOUR MIN +72. 用ftp进行文件传输时,有两种模式: C . +A Word和binary +B .txt和Word Document +C ASCII和binary +D ASCII和Rich Text Format +73. 某文件的组外成员的权限为只读;所有者有全部权限;组内的权限为读与写,则该文件的权限为 D . +A 467 B 674 C 476 D 764 +74. 在DNS系统测试时,设named进程号是53,命令 D 通知进程重读配置文件. +A kill –USR2 53 +B kill –USR1 53 +C kill -INT 63 +D kill –HUP 53 +75. Apache服务器默认的接听连接端口号是 C . +A 1024 B 800 C 80 (http)D 8 +76. PHP和MySQL的联合使用解决了 C . +A 在Proxy上处理数据库的访问问题 +B 在WWW服务器上处理黑客的非法访问问题 +C 在WWW服务器上处理数据库的访问问题 +D 在Sendmail邮件系统上处理数据库的访问问题 +77. OpenSSL是一个 A . +A 加密软件 B 邮件系统 C 数据库管理系统 D 嵌入式脚本编程语言 +78. Samba服务器的配置文件是 D . +A httpd.conf B inetd.conf C rc.samba D smb.conf +79. 关于DNS服务器,叙述正确的是 D . +A DNS服务器配置不需要配置客户端 +B 建立某个分区的DNS服务器时只需要建立一个主DNS服务器 +C 主DNS服务器需要启动named进程,而辅DNS服务器不需要 +D DNS服务器的root.cache文件包含了根名字服务器的有关信息 +80. 退出交互模式的shell,应键入 C . +A 〈Esc〉; B ^q C exit D quit +81. 将Windows C:盘(hda1)安装在Linux文件系统的/winsys目录下,命令是 B . +A root@l04.edu.cn:#mount dev/had1 /winsys +B root@l04.edu.cn:#mount /dev/had1 /winsys +C root@l04.edu.cn:#mount /dev/had1 winsys +D root@l04.edu.cn:#mount dev/had1 winsys +82. 设超级用户root当前所在目录为:/usr/local,键入cd命令后,用户当前所在目录为 B . +A /home B /root C /home/root D /usr/local +83. 字符设备文件类型的标志是 B . +A p B c C s D l +84. 将光盘CD-ROM(hdc)安装到文件系统的/mnt/cdrom目录下的命令是 C . +A mount /mnt/cdrom +B mount /mnt/cdrom /dev/hdc +C mount /dev/hdc /mnt/cdrom +D mount /dev/hdc +85. 将光盘/dev/hdc卸载的命令是 C . +A umount /dev/hdc +B unmount /dev/hdc +C umount /mnt/cdrom /dev/hdc +D unmount /mnt/cdrom /dev/hdc +86. 在/home/stud1/wang目录下有一文件file,使用 D 可实现在后台执行命令,此命令将file文件中的内容输出到file.copy文件中. +A cat file 〉;file.copy +B cat 〉;file.copy +C cat file file.copy & +D cat file 〉;file.copy & +87. 在DNS配置文件中,用于表示某主机别名的是: B . +A NS B CNAME C NAME D CN +88. 可以完成主机名与IP地址的正向解析和反向解析任务的命令是: A . +A nslookup B arp C ifconfig D dnslook +89. 下列变量名中有效的shell变量名是: C . +A -2-time B _2$3 C trust_no_1 D 2004file +90. qmail是 B . +A 收取邮件的协议 B 邮件服务器的一种 C 发送邮件的协议 D 邮件队列 +91. 已知某用户stud1,其用户目录为/home/stud1.分页显示当前目录下的所有文件的文件或目录名、用户组、用户、文件大小、文件或目录权限、文件创建时间等信息的命令是 D . +A more ls –al B more –al ls C more 〈 ls –al D ls –al | more +92. 关于进程调度命令, B 是不正确的.at--定期执行程序的调度命令 +A 当日晚11点执行clear命令,使用at命令:at 23:00 today clear +B 每年1月1日早上6点执行date命令,使用at命令:at 6am Jan 1 date +C 每日晚11点执行date命令,crontab文件中应为:0 23 * * * date +D 每小时执行一次clear命令,crontab文件中应为:0 */1 * * * clear +93. 系统中有用户user1和user2,同属于users组.在user1用户目录下有一文件file1,它拥有644的权限,如果user2用户想修改user1用户目录下的file1文件,应拥有 B 权限. +A 744 B 664 C 646 D 746 +94. 如果想配置一台匿名ftp服务器,应修改 C 文件. +A /etc/gateway B /etc/ftpservers C /etc/ftpusers D /etc/inetd.conf +95. Samba服务器的进程由B 两部分组成 . +A named和sendmail B smbd和nmbd C bootp和dhcpd D httpd和squid +96. 要配置NFS服务器,在服务器端主要配置 C 文件. +A /etc/rc.d/rc.inet1 B /etc/rc.d/rc.M C /etc/exports D /etc/rc.d/rc.S +97. 为保证在启动服务器时自动启动DHCP进程,应对 B 文件进行编辑. +A /etc/rc.d/rc.inet2 B /etc/rc.d/rc.inet1 C /etc/dhcpd.conf D /etc/rc.d/rc.S +98. 在配置代理服务器时,若设置代理服务器的工作缓存为64MB,配置行应为 D . +A cache 64MB +B cache_dir ufs /usr/local/squid/cache 10000 16 256 +C cache_ mgr 64MB +D cache_ mem 64MB +99. 安全管理涉及的问题包括保证网络管理工作可靠进行的安全问题和保护网络用户及网络管理对象问题. C 属于安全管理的内容. +A 配置设备的工作参数 B 收集与网络性能有关的数据 C 控制和维护访问权限 D 监测故障 +100. 以下命令对中,正确的是: B . +A ls和sl +B cat和tac +C more和erom +D exit和tixecat是显示文件夹的命令,这个大家都知道,tac是cat的倒写,意思也和它是相反的.cat是从第一行显示到一行,而tac是从一行显示到第一行,而rev 则是从一个字符显示到第一个字符 +101. B 命令是在vi编辑器中执行存盘退出. +A :q B ZZ C :q! D :WQ +103. 下列关于/etc/fstab文件描述,正确的是 D . +A fstab文件只能描述属于linux的文件系统 +B CD_ROM和软盘是自动加载的 +C fstab文件中描述的文件系统不能被卸载 +D 启动时按fstab文件描述内容加载文件系统 +104. 通过文件名存取文件时,文件系统内部的操作过程是通过 C . +A 文件在目录中查找文件数据存取位置. +B 文件名直接找到文件的数据,进行存取操作. +C 文件名在目录中查找对应的I节点,通过I节点存取文件数据. +D 文件名在中查找对应的超级块,在超级块查找对应i节点,通过i节点存取文件数据 +105. Linux将存储设备和输入/输出设备均看做文件来操作, C 不是以文件的形式出现. +A 目录 B 软链接 C i节点表 D 网络适配器 +106. 关于i节点和超级块,下列论述不正确的是 B . +A i节点是一个长度固定的表 +B 超级块在文件系统的个数是唯一的 +C i节点包含了描述一个文件所必需的全部信息 +D 超级块记录了i节点表和空闲块表信息在磁盘中存放的位置 +107. D 设备是字符设备. +A hdc B fd0 C hda1 D tty1(A,B,C为块设备) +108. B 目录存放着Linux的源代码. +A /etc B /usr/src C /usr D /home +109. 关于文件系统的安装和卸载,下面描述正确的是 A . +A 如果光盘未经卸载,光驱是打不开的 +B 安装文件系统的安装点只能是/mnt下 +C 不管光驱中是否有光盘,系统都可以安装CD-ROM设备 +D mount /dev/fd0 /floppy 此命令中目录/floppy是自动生成的 +110. B 不是进程和程序的区别. +A 程序是一组有序的静态指令,进程是一次程序的执行过程 +B 程序只能在前台运行,而进程可以在前台或后台运行 +C 程序可以长期保存,进程是暂时的 +D 程序没有状态,而进程是有状态的 +111. 文件exer1的访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是 A . +A chmod a x g w exer1 B chmod 765 exer1 C chmod o x exer1 D chmod g w exer1 +112. 有关归档和压缩命令,下面描述正确的是 C . +A 用uncompress命令解压缩由compress命令生成的后缀为.zip的压缩文件 +B unzip命令和gzip命令可以解压缩相同类型的文件 +C tar归档且压缩的文件可以由gzip命令解压缩 +D tar命令归档后的文件也是一种压缩文件 +113. 不是shell具有的功能和特点的是 C . +A 管道 B 输入输出重定向 C 执行后台进程 D 处理程序命令 +114. 下列对shell变量FRUIT操作,正确的是: C . +A 为变量赋值:FRUIT=apple +B 显示变量的值:fruit=appleC显示变量的值:echoFRUIT=appleB显示变量的值:fruit=apple +C 显示变量的值:echoFRUIT +D 判断变量是否有值:[ -f "$FRUIT" ] \ No newline at end of file diff --git "a/\345\255\231\347\245\245/\347\254\224\350\256\260/20240513.md" "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240513.md" new file mode 100644 index 0000000000000000000000000000000000000000..15b0a67953a3d3b9714edc76f3e965c6decebe69 --- /dev/null +++ "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240513.md" @@ -0,0 +1,73 @@ +新建文件夹note + +2、右键通过vscode打开 + +3、PS D:> mkdir books //生成 books目录 + +4、PS D:> cd ./books //进入books目录 + +5、[https://vitepress.dev/zh/guide/getting-started](https://gitee.com/link?target=https%3A%2F%2Fvitepress.dev%2Fzh%2Fguide%2Fgetting-started) 利用vitepress工具,来构建 + +7、npm add -D vitepress // 利用node来安装vitepress + +8、npx vitepress init // 启用vitepress的设置向导 + +``` +1. Welcome to VitePress! + │ + ◇ Where should VitePress initialize the config? + │ ./docs + │ + ◇ Site title: + │ 我的笔记我作主 + │ + ◇ Site description: + │ 这是一个用markdown生成的笔记网站 + │ + ◇ Theme: + │ Default Theme + │ + ◇ Use TypeScript for config and theme files? + │ Yes + │ + ◇ Add VitePress npm scripts to package.json? + │ Yes + │ + └ Done! Now run npm run docs:dev and start writing. +``` + +9、npm run docs:dev // 本地预览生成的效果 + +1. 修改index.md可以修改首页的连接 + +2. 修改config可以修改右上角的导航,和左侧的导航 + +3. 将笔记的文档复制到docs目录下的对应子目录 + + 1、在docs文件夹下新建你需要放笔记的文件(把笔记丢进去) + + + +10、利用cmd的tree /F 命令得到所有笔记的文件名,再将 + +1. items: [ + + ``` + { text: 'Markdown Examples', link: '/markdown-examples' }, + { text: 'Runtime API Examples', link: '/api-examples' } + ] + ``` + +![alt text](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAAAAACIM/FCAAACh0lEQVR4Ae3ch5W0OgyG4dt/mQJ2xgQPzJoM1m3AbALrxzrf28FzsoP0HykJEEAAAUQTBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEkKK0789+GK/I2ezfQB522PnS1qc8pGgXvr4tE4aY0XOUWlGImThWgyCk6DleixzE7qwBkg/MGiDPlVVAyp1VQGrPKiACDhFI6VkF5LmzCki+sg7IwDoglnVAil0IMkeG9CyUiwsxLFUVFzJJOQaKCjFCDN9RXMjIX7W6ztZXZDKKCyn8sWJvH+nca7WHDN9lROlAliPH9iRKCPI4cswFJQWxB46toLQgQ9jhn5QYZA9DOkoMUoQde5YapAxDWkoNYsOQR3KQd9CxUnIQF4S49CB9ENKlBxmDEKsFUgMCCCCAAHIrSF61f6153Ajy8nyiPr8L5MXnmm4CyT2fzN4DUvHZ+ntA2tOQBRBAAAEEEEAAAQQQ7ZBaC6TwSiDUaYHQ2yuB0MN+ft+43whyrs4rgVCjBUKTFshLC6TUAjGA3AxSaYFYLZBOC2RUAsk8h5qTg9QcbEoOsoQhQ2qQhsO5xCD5dgB5JQaZ+KBKGtKecvR81Ic0ZDjByKdDx0rSEDZ/djQbH+bkIdvfJFm98BfV8hD2zprfVdlu9PxVeyYAkciREohRAplJCaRSAplJCcQogTjSAdlyHRBvSAekJR0QRzogA+mADJkOiCPSAPEtqYBshlRAXC43hxix2QiOuEZkVERykGyNo9idIZKE0HO7XrG6OiMShlDWjstVzdPgXtUH9v0CEidAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQP4HgjZxTpdEii0AAAAASUVORK5CYII=) + +``` + 这种要配置的格式扔给AI,让它整合文件名到这种格式 +``` + +11、如果你要将笔记放在一个统一的子目录中访问,用在配置文件config中加入一行 'base':'/books/', + +12、npm run docs:build // 将md文件生成html到\docs.vitepress\dist 目录 + +13、登录自己的服务器,使用SSH工具,将dist上传到自己网站的目录 ![alt text](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAAAAACIM/FCAAACh0lEQVR4Ae3ch5W0OgyG4dt/mQJ2xgQPzJoM1m3AbALrxzrf28FzsoP0HykJEEAAAUQTBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEkKK0789+GK/I2ezfQB522PnS1qc8pGgXvr4tE4aY0XOUWlGImThWgyCk6DleixzE7qwBkg/MGiDPlVVAyp1VQGrPKiACDhFI6VkF5LmzCki+sg7IwDoglnVAil0IMkeG9CyUiwsxLFUVFzJJOQaKCjFCDN9RXMjIX7W6ztZXZDKKCyn8sWJvH+nca7WHDN9lROlAliPH9iRKCPI4cswFJQWxB46toLQgQ9jhn5QYZA9DOkoMUoQde5YapAxDWkoNYsOQR3KQd9CxUnIQF4S49CB9ENKlBxmDEKsFUgMCCCCAAHIrSF61f6153Ajy8nyiPr8L5MXnmm4CyT2fzN4DUvHZ+ntA2tOQBRBAAAEEEEAAAQQQ7ZBaC6TwSiDUaYHQ2yuB0MN+ft+43whyrs4rgVCjBUKTFshLC6TUAjGA3AxSaYFYLZBOC2RUAsk8h5qTg9QcbEoOsoQhQ2qQhsO5xCD5dgB5JQaZ+KBKGtKecvR81Ic0ZDjByKdDx0rSEDZ/djQbH+bkIdvfJFm98BfV8hD2zprfVdlu9PxVeyYAkciREohRAplJCaRSAplJCcQogTjSAdlyHRBvSAekJR0QRzogA+mADJkOiCPSAPEtqYBshlRAXC43hxix2QiOuEZkVERykGyNo9idIZKE0HO7XrG6OiMShlDWjstVzdPgXtUH9v0CEidAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQP4HgjZxTpdEii0AAAAASUVORK5CYII=) + +14、mv dist books // 将dist改名为books \ No newline at end of file diff --git "a/\345\255\231\347\245\245/\347\254\224\350\256\260/20240520.md" "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240520.md" new file mode 100644 index 0000000000000000000000000000000000000000..d493fbd8e788a3118567e8953e602a4c9f8598a2 --- /dev/null +++ "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240520.md" @@ -0,0 +1,209 @@ +## 打包 + +### 1. 新建一个用户dabian2ban,密码设置666 + +1. Linuxt系统命令怎么创建用户: + 1. useradd 用户名 -m -s /bin/bash 需要自己写清每个选项 + 2. adduser 用户名 高级命令,可以对话形式给你完成主要设置 +2. 删除一个用户 + 1. userdel 用户名 + 2. deluser + +### 2. 以刚建的用户登录,操作以下 + +1. 重新打开个连接 +2. su 用户a :切换到用户a身份(exit,logout) + +### 3. 使用命令,在自己的家目录,以以下层次依次建立文件夹 + +1. 国家 + 1. 省份 + 1. 市 + 1. 县(区) + 1. 镇(街道) + 1. 村(小区) + 1. 姓名 +2. mkdir -p //-p的选项当相关目录不存在时,就创建,若已经存在就跳过创建而不报错 + +### 4. 在姓名文件夹,建立一个自己的学号姓名文件 + +1. touch 文件名 直接用touch创建一个空文件 +2. vim 文件名:使用vim编辑器创建文件,并编辑 + 1. 普通模式:默认 + 2. 编辑模式: + 1. 按i进入编辑模式 + 2. 按Esc退回普通模式 + 3. 命令模式(末行模式): + 1. shift+: + 2. 在这个可以输入对应的命令进行操作 :write写入(保存) quit(退出) 强制执行! + 1. w 只保存不退出 + 2. q 只退出不保存 + 3. !强制退出,不保存 + 4. 正常一般组合使用 + 1. wq! 保存并退出 + 2. q! 直接退出不保存 +3. vim 直接打开编辑器,书写内容后保存 :w 文件名 +4. nano编辑Debian默认编辑,vim +5. echo 文件名:使用echo命令 创建文件,并将echo的内容保存在这个文件 + +### 5. 在这个文件中,写一篇不少于400字的日记 + +### 6. 最后,将国家这个文件夹打包,同时练习怎么解压 + +1. 打包:tar -cvf 打包后的文件名.tar 被打包的目录或文件名 ,只有打包的效果,不压缩 +2. 解包:tar -xvf 包名 -C 指定解包在哪目录(前提这个目录存在) +3. && 依次执行多个命令 命令1 && 命令2 && 命令3 && 命令4 +4. gzip 只负责压缩,和解压缩,所以通常和tar一起使用,gzip作为tar一个-z参数存在 +5. tar -cvzf 打包后的文件名.tar 被打包的目录或文件名 ,打包且压缩 + +### 7. 使用命令将这个压缩包下载到本地电脑【不能用shell里自带的下载功能】 + +1. scp 源 目标 +2. sftp :get下载 ,put上传 +3. 以上两个命令都在客户端执行 + +### 8. 相关命令百度预习 + +### 9. 命令参考 [https://www.linuxcool.com/](https://gitee.com/link?target=https%3A%2F%2Fwww.linuxcool.com%2F) + +### 10. 相关过程,做成笔记vim + +1.普通模式:默认 + +2.编辑模式:按i进入编辑模式 + +3.命令(末行)模式:在这个模式输入对应的命令进行操作 + +write(保存)、quit(退出)、!(强制执行) + +mono //默认编辑器 + +### adduser 与 useradd 区别 + +adduser 高级命令,以对话的形式让你完成主要的设置 + +useradd是自己写清楚每个选项 + +### 打包/解包 + +打包:tar - cvf 打包的名称.tar 被打包的文件名 + +解包:tar -xvf 打包的名称.tar -C(大写) 目录名 + +(只有打包效果,没有解压功能) + +### gzip(压缩) + +-k //保留原始文件并压缩 + +-d //解压缩文件 + +-r //递归文件 + +### 传输 + +scp + +下载:scp 远程用户名@:ip/文件的位置 本地要放的地方 + +上传: scp 本地文件地址@IP:/远程用户名/目录/位置 + +sftp + +get:下载 + +lcd:本地操作 + +put:上传 + +### 综合练习题:大学生生活场景中的文件夹和文件管理 + +假设你是一名大学生,现在面临着整理学习资料和课程作业的任务。请按照以下要求完成相关的文件夹和文件管理操作: + +1. 在你的个人文档目录下创建一个名为`学习资料`的文件夹,并进入该文件夹。 + + ``` + mkdir 学习资料 + + cd 学习资料 + ``` + +2. 在`学习资料`文件夹中创建一个名为`计算机科学`的文件夹。 + + ``` + mkdir 计算机科学 + + cd 计算机科学 + ``` + +3. 在`计算机科学`文件夹中创建两个子文件夹,分别命名为`课程资料`和`编程项目`。 + + ``` + mkdir 课程资料 + + mkdir 编程项目 + ``` + +4. 将你最近的一门计算机科学课程的课件文件(假设文件名为`CS101_第一讲.pdf`)放入`课程资料`文件夹。 + + ``` + scp D:/路由器的基本配置.pdf wx@110.41.49.253:/home/wx/学习资料/计算机科学/课程资料 + ``` + +5. 在`编程项目`文件夹中创建一个名为`Java项目`的文件夹。 + + ``` + cd 编程项目 + + mkdir Java项目 + ``` + +6. 在`Java项目`文件夹中创建两个空文件,分别命名为`主程序.java`和`工具类.java`。 + + ``` + cd Java项目 + + touch 主程序.java + + touch 工具类.java + ``` + +7. 复制`主程序.java`并命名为`备份_主程序.java`。 + + ``` + cp 主程序.java 备份_主程序 + ``` + +8. 创建一个名为`Python项目`的文件夹,并将`工具类.java`移动到`Python项目`文件夹中。 + + ``` + mkdir Python项目 //退到计算机科学,然后创建一个python项目 + + cd 编程项目/Java项目 //然后进到Java项目 + + mv 工具类.java ../../Python项目 //将工具类移动到python项目文件中 + ``` + +9. 列出`计算机科学`文件夹中所有文件和文件夹的内容。 + + ``` + ls -R + ``` + +10. 删除`编程项目`文件夹及其包含的所有内容。 + + ``` + rm -r 编程项目 + ``` + +11. 重命名`Python项目`为`数据分析项目`。 + + ``` + mv Python项目 数据分析项目 + ``` + +12. 最后,列出当前所在目录的路径。 + + ``` + pwd + ``` \ No newline at end of file diff --git "a/\345\255\231\347\245\245/\347\254\224\350\256\260/20240527.md" "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240527.md" new file mode 100644 index 0000000000000000000000000000000000000000..65ca895ad76a8301b92b216582667112ffee1607 --- /dev/null +++ "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240527.md" @@ -0,0 +1,174 @@ +### find命令 + +``` +find [路径] [匹配条件] [动作] +``` + +参数说明 : + +路径 是要查找的目录路径,可以是一个目录或文件名,也可以是多个路径,多个路径之间用空格分隔,如果未指定路径,则默认为当前目录。 + +expression 是可选参数,用于指定查找的条件,可以是文件名、文件类型、文件大小等等。 + +###### 匹配条件 中可使用的选项有二三十个之多,以下列出最常用的部份: + +``` +-name pattern:按文件名查找,支持使用通配符 * 和 ?。 +-type type:按文件类型查找,可以是 f(普通文件)、d(目录)、l(符号链接)等。 +-size [+-]size[cwbkMG]:按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,单位可以是 c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或 G(GB)。 +-mtime days:按修改时间查找,支持使用 + 或 - 表示在指定天数前或后,days 是一个整数表示天数。 +-user username:按文件所有者查找。 +-group groupname:按文件所属组查找。 +``` + +###### find 命令中用于时间的参数如下: + +``` +-amin n:查找在 n 分钟内被访问过的文件。 +-atime n:查找在 n*24 小时内被访问过的文件。 +-cmin n:查找在 n 分钟内状态发生变化的文件(例如权限)。 +-ctime n:查找在 n*24 小时内状态发生变化的文件(例如权限)。 +-mmin n:查找在 n 分钟内被修改过的文件。 +-mtime n:查找在 n*24 小时内被修改过的文件。 +``` + +在这些参数中,n 可以是一个正数、负数或零。正数表示在指定的时间内修改或访问过的文件,负数表示在指定的时间之前修改或访问过的文件,零表示在当前时间点上修改或访问过的文件。 + +###### 正数应该表示时间之前,负数表示时间之内。 + +例如:-mtime 0 表示查找今天修改过的文件,-mtime -7 表示查找一周以前修改过的文件。 + +###### 关于时间 n 参数的说明: + +``` ++n:查找比 n 天前更早的文件或目录。 + +-n:查找在 n 天内更改过属性的文件或目录。 + +n:查找在 n 天前(指定那一天)更改过属性的文件或目录。 +``` + +在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区的。 + +#### 区别: + +``` +(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。 + +(2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。 + +(3)which 查看可执行文件的位置 ,只有设置了环境变量的程序才可以用 + +(4)whereis 寻找特定文件,只能用于查找二进制文件、源代码文件和man手册页 + +(5)locate 配合数据库查看文件位置 ,详情:locate -h查看帮助信息 +``` + +### 作业 + +### 操作题 + +1. **查找当前目录及其子目录中所有扩展名为 `.log` 的文件**: + + ``` + find . -type f -name "*.log" + ``` + +2. **在 `/var/logs` 目录及其子目录中查找所有包含关键字 `error` 的文件,并显示匹配的行**: + + ``` + grep -rnw '/var/logs' -e 'error' + ``` + +3. **在 `/home/user/docs` 目录中查找文件名包含 `report` 的所有文件**: + + ``` + find /home/user/docs -tpye f "*report*" + ``` + +4. **查找 `/etc` 目录中最近7天内修改过的文件**: + + ``` + find /etc -type f -mtime -7 + ``` + +5. **显示 `/usr/bin` 目录中名为 `python` 的可执行文件的路径**: + + ``` + which python + ``` + +6. **查找系统中名为 `ls` 的命令及其手册页位置**: + + ``` + which ls + man -w ls + ``` + +7. **查找当前目录中包含关键字 `TODO` 的所有文件,并显示匹配的行和文件名**: + + ``` + grep -rnw '.' -e 'YODO' --include=* + ``` + +8. **在 `/home/user/projects` 目录中查找所有包含关键字 `function` 的 `.js` 文件**: + + ``` + grep -rnw '/home/user/projects' -e 'function' --include=*.js + ``` + +9. **查找并显示当前目录及其子目录中所有空文件**: + + ``` + find . -type f -empty + ``` + +10. **在 `/var/www` 目录中查找包含关键字 `database` 的所有文件,并只显示文件名**: + + ``` + grep -rl 'database' /var/www + ``` + +### 综合操作题 + +**综合操作题:** + +假设你在一个名为 `/home/user/workspace` 的目录中工作。你需要完成以下任务: + +1. 查找该目录中所有扩展名为 `.conf` 的文件。 + +``` +find /home/user/workspace -type f -name "*.conf" +``` + +1. 在这些 `.conf` 文件中查找包含关键字 `server` 的行。 + +``` +grep -rnw '/home/user/workspace' -e 'server' --include=*.conf +``` + +1. 将包含关键字 `server` 的文件名和匹配的行保存到一个名为 `server_lines.txt` 的文件中。 + +``` +grep -rnw '/home/user/workspace' -e 'server' --include=*.conf > server_lines.txt +``` + +**预期命令步骤:** + +1. 查找所有扩展名为 `.conf` 的文件: + + ``` + find /home/user/workspace -type f -name "*.conf" + ``` + +2. 在这些 `.conf` 文件中查找包含关键字 `server` 的行: + + ``` + grep -rnw '/home/user/workspace' -e 'server' --include=*.conf + ``` + +3. 将结果保存到 `server_lines.txt` 文件中: + + ``` + grep -rnw '/home/user/workspace' -e 'server' --include=*.conf > server_lines.txt + ``` \ No newline at end of file diff --git "a/\345\255\231\347\245\245/\347\254\224\350\256\260/20240529.md" "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240529.md" new file mode 100644 index 0000000000000000000000000000000000000000..4c9686a3a33217b29d250d02a1e529fd57279366 --- /dev/null +++ "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240529.md" @@ -0,0 +1,74 @@ +### 查看文件内容: + +``` + - `cat`:显示文件内容。 + - `tac`:与`cat`相反,从文件尾部开始显示内容。 + - `more`:分页显示文件内容。 + - `less`:与`more`类似,但提供了更多的导航和搜索功能。 + - `head`:显示文件开头的内容(默认10行)。 + - `tail`:显示文件结尾的内容(默认10行)。 + - `nl`:显示文件内容,并添加行号。 + - `od`:以八进制、十进制、十六进制或其他格式转储文件内容。 +``` + +### `cat`**语法**: + +``` +cat [选项] 文件 ... +# 作用:显示文件内容,也可以将多个文件内容连接在一起输出。 +``` + +**常见用法**: + +- 显示文件内容:`cat file.txt` +- 连接多个文件内容:`cat file1.txt file2.txt` +- 使用`-n`选项显示行号:`cat -n file.txt` + +注意:cat会将文件内容一次性全部显示出来,大文件不推荐使用。 + +------ + +### `tac`**语法**: + +``` +tac 文件 ... +# 作用: 与`cat`相反,从文件尾部开始显示内容到文件开头。命令单词也是反过来的 +``` + +**常见用法**: + +- 从尾部开始,显示文件内容:`tac /var/log/dpkg.log` +- 从尾部开始,显示多个文件内容:`tac file1.txt file2.txt` + +------ + +### `more`**语法**: + +``` +more [选项] 文件 +# 作用:分页显示文件内容,每次显示一屏。即按页显示文件内容 +``` + +**常见用法**: + +- 分页显示文件内容:`more file.txt` +- 使用空格键向下翻页,回车键显示下一行,`q`键退出 + +常用于按页查看大文件,但会先一次性加载整个大文件,导致加载变慢 + +------ + +### `less` **语法**: + +- 当你要查看一个大文件时,通常用less命令一页一页加载 + + ``` + less [选项] 文件 + # 作用:与`more`类似,但提供了更多的导航和搜索功能,如上下滚动、搜索等。 + ``` + +**常见用法**: + +- 类似`more`的分页显示:`less file.txt +- 使用上下键、Page Up/Page Down键进行滚动,`/`搜索,`n`下一个匹配,`N`上一个匹配,`q`退出。 + diff --git "a/\345\255\231\347\245\245/\347\254\224\350\256\260/20240605.md" "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240605.md" new file mode 100644 index 0000000000000000000000000000000000000000..60b733bdfcaf971adb52579e12dc2146b01659a2 --- /dev/null +++ "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240605.md" @@ -0,0 +1,198 @@ +### 光标移动 + +#### 单位级 + +``` +h 向左移动一个单位 +j 向下移动一个单位 +k 向上移动一个单位 +l 向右衔动一个单位 +``` + +#### 单词级 + +``` +w 向右移动到下一单词开头 +e 向右移动到下一单词结尾 +b 向左移动到下一单词开头 +``` + +#### 块级 + +``` +gg 移动光标到文档第一行 +G 移动光标到文档最后一行 +0 移动光标所在行的第一列 +^ 移动光标到非空的第一个字符 +$ 移动光标到所在行的最后一列 +H 移动光标到屏幕顶端 +M 移动光标到屏幕中间 +L 移动光标到屏幕底部 +gg 或者: 移动光标到第n行 +k 或者:- 移动光标到向上n行 +j 或者:+ 移动光标到向下n行 +``` + +### Visual模式 + +``` +字符模式,在命令模式中按v键进入 +行模式,在命令模式中按V键进入 +块模式,在命令模式中按Ctrl+ v键进入 +``` + +### vim内打开文件 + +``` +:e <文件名称> 打开名为 filename 的文件,若文件不存在则创建之 +:Ex 在 Vim 中打开目录树,光标选中后回车打开对应文件(提示:- 进入上级目录 ) +``` + +### 内容查找 + +#### 文档内查找 + +``` +`*` 向后查找当前光标所在单词 +`#` 向前查找当前光标所在单词 +/ 向后查找指定字符串 +? 向前查找指定字符串 +n 继续查找下一个 +N 继续查找上一个 +``` + +#### 行内查找 + +``` +f 当前行内向行尾查找定位X字符 +t 当前行内向行尾查找定位X字符前一字符 +F 当前行内向行首查找定位X字符 +T 当前行内向行首查找定位X字符后一字符 +; 向当前方向查找下一个字符 +, 向当前反方向查找下一个字符 +``` + +### 文档修改与保存 + +#### 插入 + +``` +i 当前字符前插入 +I 当前行首插入 +a 当前字符后插入 +A 当前行尾插入 +o 在下一行插入 +O 在上一行插入 +``` + +#### 删除 + +``` +x 删除当前字符,相当于 insert 模式下的 Delete +X 删除前一个字符,相当于 insert 模式下的 Backspace +d 删除指定内容并保存到 Vim 剪贴板 +dd 删除当前行,并将删除的内容保存到 Vim 剪贴板 +cc 删除当前行并保存到 Vim 剪贴板,同时进入 INSERT 模式 +c 删除指定内容并保存到 Vim 剪贴板,同时进入 INSERT 模式 +``` + +#### 复制 + +``` +y 复制指定字符串到粘贴板 +yy 复制整行到粘贴板 +``` + +#### 粘贴 + +``` +p 在当前位置后粘贴 +P 在当前位置前粘贴 +``` + +#### 合并 + +``` +J 合并当前行和下一行 +``` + +#### 替换 + +``` +r 将当前字符替换为 X +gu将指定的文本转换为小写 +gU 将指定的文本转换为大写 +:%s/// 查找 search 内容并替换为 replace 内容(常用) +``` + +#### 缩进 + +``` +>> 向右缩进当前行 +<< 向左缩进当前行 +``` + +#### 撤销与重做 + +``` +u 撤销 +Ctrl-r 重做 +. 重复上一个动作,3.重复上次动作3次 +``` + +#### 保存修改 + +``` +:w 保存当前文件 +:wa 保存全部文件 +:wq or ZZ 保存并退出 +:q! or ZQ 强制退出,不保存 +:saveas 文件另存为 +:w 文件另存一份名为 的副本并继续编辑原文件 +``` + +## 作业 + +1. vi 编辑器有几种模式? + +``` +三种模式:一般指令模式、编辑模式、命令行模式 +``` + +1. 如何进入 vi 编辑器的插入模式 + +``` +1.按下i键,光标前插入。 +2.按下a键,光标后插入。 +3.按下o键,光标下一行插入。 +4.要退出插入模式,按下Esc键,然后输入:q +``` + +1. 如何进入 vi 编辑器的可视化模式 + +``` +1.在命令模式中按v键进入 +2.在命令模式中按V键进入 +3.在命令模式中按Ctrl+ v键进入 +``` + +1. 在 vi 编辑器中如何复制一行 + +``` +1.y 复制指定字符串到粘贴板 +2.yy 复制整行到粘贴板 +``` + +1. 在 vi 编辑器中如何进行粘贴 + +``` +1.p 在当前位置后粘贴 +2.P 在当前位置前粘贴 +``` + +1. 如何删除从 3 行到 15 行的所有数据 + +``` +1.按Esc键进入正常模式。 +2.输入:3,15d,然后按Enter键以删除行。 +``` \ No newline at end of file diff --git "a/\345\255\231\347\245\245/\347\254\224\350\256\260/20240617.md" "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240617.md" new file mode 100644 index 0000000000000000000000000000000000000000..6da0dc30337a7414644bd2c38fa604297d49bf12 --- /dev/null +++ "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240617.md" @@ -0,0 +1,384 @@ +## 1.什么是Cron? + +Cron是一种基于时间的任务调度程序,用于在特定时间或时间间隔自动执行任务。它是Unix类操作系统(包括Linux)中的一个守护进程,能够按照用户定义的时间表运行指定的脚本或命令。 + +“Cron” 的读音是 /krɒn/,“Cron”的读音在中文中可以表述为“克隆”(kè lóng)。 + +## 2. Cron的配置文件 + +在Debian系统中,Cron任务的配置文件通常分为以下几类: + +1. **用户级Cron任务**:每个用户都有自己的Cron任务配置文件,位于`/var/spool/cron/crontabs/username`。 + +2. **系统级Cron任务**:系统级的Cron任务配置文件位于`/etc/crontab`和`/etc/cron.d/`目录下。 + +3. 周期性任务目录 + + :这些目录包含在特定时间间隔运行的脚本,例如: + + - `/etc/cron.hourly/` + - `/etc/cron.daily/` + - `/etc/cron.weekly/` + - `/etc/cron.monthly/` + +## 3. 编辑Cron任务 + +### 3.1 使用`crontab`命令 + +用户可以使用`crontab`命令来编辑、查看或删除自己的Cron任务【用户级】。 + +cron table 时间周期表,计划任务表 + +- **编辑Cron任务**: + + ``` + crontab -e # edit + ``` + + 这将打开用户的Cron配置文件进行编辑。 + +- **查看Cron任务**: + + ``` + crontab -l # list + ``` + + 这将列出用户当前的Cron任务。 + +- **删除Cron任务**: + + ``` + crontab -r # remove + ``` + + 这将删除用户的所有Cron任务。 + +**Cron任务语法** + +Cron任务的格式如下: + +``` +* * * * * command_to_execute # command_to_execute 可以是命令也可以是包含命令的文件 +- - - - - +| | | | | +| | | | +----- 星期几 (0 - 7) (星期天 = 0 或 7) +| | | +------- 月份 (1 - 12) +| | +--------- 日期 (1 - 31) +| +----------- 小时 (0 - 23) ++------------- 分钟 (0 - 59) +``` + +例如,要每天凌晨3点执行一个备份脚本,可以添加以下条目: + +``` +0 3 * * * /path/to/backup_script.sh +``` + +[点击查看:cron表达式详细介绍以及常用的例子](https://gitee.com/link?target=https%3A%2F%2Fdeveloper.aliyun.com%2Farticle%2F1349827) + +### 3.2 使用`/etc/crontab` + +系统级的Cron任务可以直接编辑`/etc/crontab`文件。该文件具有一个额外的字段用于指定运行任务的用户: + +``` +# m h dom mon dow user command +17 * * * * root cd / && run-parts --report /etc/cron.hourly +25 6 * * 1 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) +47 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) +``` + +### 3.3 使用`/etc/cron.d/` + +在`/etc/cron.d/`目录下,可以创建单独的文件来定义Cron任务。每个文件的格式与`/etc/crontab`类似。 + +例如,可以在`/etc/cron.d/mytasks`中定义: + +``` +30 2 * * * root /usr/local/bin/my_script.sh +``` + +### 3.4 特殊符号 + +**常用的如下:** + +1. **星号(`\*`)** + + - **含义**:匹配任何值,,即每一。 + - **示例**:在分钟字段中使用 `*` 表示每一分钟都运行一次任务。 + + ``` + * * * * * /path/to/command + ``` + +2. **逗号(`,`)** + + - **含义**:指定一个列表值,列出所有指定值 a,b,c。 + - **示例**:在小时字段中使用 `0,6,12,18` 表示任务将在每天的0点、6点、12点和18点运行。 + + ``` + 0 0,6,12,18 * * * /path/to/command + ``` + +3. **短横线(`-`)** + + - **含义**:指定一个范围值,开始-结尾。 + - **示例**:在日期字段中使用 `1-5` 表示任务将在每个月的1号到5号之间运行。 + + ``` + 0 0 1-5 * * /path/to/command + ``` + +4. **斜杠(`/`)** + + - **含义**:指定步长值,即间隔。 + - **示例**:在分钟字段中使用 `*/15` 表示任务每15分钟运行一次。 + + ``` + */15 * * * * /path/to/command + ``` + +5. **L(Last)** + + - **含义**:表示最后一个。可以在月的天数或星期几中使用。 + - **示例**:在日期字段中使用 `L` 表示每个月的最后一天。 + + ``` + 0 0 L * * /path/to/command + ``` + + - **示例**:在星期几字段中使用 `5L` 表示每个月的最后一个星期五。 + + ``` + 0 0 * * 5L /path/to/command + ``` + +### 3.5 例子和应用 + +1. **每月的第一个工作日** + + ``` + 0 9 1W * * /path/to/command + ``` + +2. **每月的最后一天** + + ``` + 0 23 28-31 * * [ "$(date +\%d -d tomorrow)" == "01" ] && /path/to/command + ``` + +3. **每个月的最后一个星期五** + + ``` + 0 23 * * 5L /path/to/command + ``` + +4. **每隔10分钟** + + ``` + */10 * * * * /path/to/command + ``` + +通过使用这些特殊符号,可以灵活地定义各种复杂的时间调度任务,使得cron更加强大和易用。 + +### 3.6 注意事项 + +1. **路径问题**:Cron任务运行时使用的环境变量可能与用户的交互式Shell不同,确保在脚本中使用绝对路径。 +2. **权限问题**:确保脚本具有可执行权限,并且Cron任务的用户有权限执行该脚本。 + +## 4. 系统级任务 + +### **4.1 crontab 和 cron.d** + +在Debian和其他基于Unix的操作系统中,`/etc/crontab` 和 `/etc/cron.d/` 目录用于管理系统级的计划任务。虽然它们的功能类似,但在使用场景和配置格式上有一些细微的区别。以下是它们的详细介绍和使用场景: + +#### **4.1.1** **`/etc/crontab`** + +**特点:** + +1. **全局配置文件**:`/etc/crontab` 是一个全局配置文件,用于定义系统级的定时任务。 + +2. **文件格式**:与用户级的 `crontab` 文件相比,`/etc/crontab` 多了一个字段,用于指定执行任务的用户。格式如下: + + ``` + m h dom mon dow user command + ``` + + 例如: + + ``` + 30 2 * * * root /usr/local/bin/backup.sh + ``` + + 这行表示每天凌晨2:30以root用户的身份执行 `/usr/local/bin/backup.sh`。 + +**使用场景:** + +- **统一管理系统任务**:适合定义一些系统级的任务,比如系统备份、日志轮替等。 +- **需要不同用户执行的任务**:如果需要在同一文件中定义由不同用户执行的任务,可以使用 `/etc/crontab`。 + +#### **4.1.2** **`/etc/cron.d/`** + +**特点:** + +1. **目录结构**:`/etc/cron.d/` 目录中可以包含多个文件,每个文件可以定义多个任务。 + +2. **文件格式**:与 `/etc/crontab` 文件的格式相同,需要包含一个用户字段。格式如下: + + ``` + m h dom mon dow user command + ``` + + 例如,在 `/etc/cron.d/mytasks` 文件中: + + ``` + 0 4 * * * root /usr/local/bin/daily_task.sh + 15 14 1 * * user /usr/local/bin/monthly_report.sh + ``` + +**使用场景:** + +- **模块化管理**:适合将不同的任务分模块管理,每个模块一个文件。例如,可以为不同的应用程序或服务创建单独的文件。 +- **包管理系统的任务**:一些软件包在安装时会自动在 `/etc/cron.d/` 中创建任务文件,这是包管理系统用来添加特定任务的常见方法。 + +#### **4..13 选择使用场景** + +1. **统一和简洁管理**: + - 如果你希望在一个文件中集中管理所有系统级的Cron任务,可以使用 `/etc/crontab`。 + - 适合于系统管理员需要定期检查和修改所有任务的场景。 +2. **分离和模块化管理**: + - 如果你希望将Cron任务按模块或应用分开管理,使用 `/etc/cron.d/` 是更好的选择。 + - 适合于不同团队或不同软件包管理各自的定时任务,避免相互干扰。 + +#### **4.1.4 示例对比** + +`/etc/crontab` 示例: + +``` +# m h dom mon dow user command +30 2 * * * root /usr/local/bin/backup.sh +45 3 * * 7 user /usr/local/bin/cleanup.sh +``` + +`/etc/cron.d/backup` 示例: + +``` +# m h dom mon dow user command +30 2 * * * root /usr/local/bin/backup.sh +``` + +`/etc/cron.d/cleanup` 示例: + +``` +# m h dom mon dow user command +45 3 * * 7 user /usr/local/bin/cleanup.sh +``` + +通过这种方式,使用 `/etc/cron.d/` 可以更加灵活地管理和组织不同的任务。 + +## 5. 周期性任务目录 + +### 5.1 目录说明 + +1. **`/etc/cron.hourly/`**:每小时运行一次目录中的所有脚本。 +2. **`/etc/cron.daily/`**:每天运行一次目录中的所有脚本。 +3. **`/etc/cron.weekly/`**:每周运行一次目录中的所有脚本。 +4. **`/etc/cron.monthly/`**:每月运行一次目录中的所有脚本。 + +### 5.2 **使用方法** + +1. **创建脚本**:将要定期运行的脚本放置到相应的目录中。 + +2. **设置权限**:确保脚本具有执行权限。可以使用以下命令设置: + + ``` + chmod +x /etc/cron.daily/your_script.sh + ``` + +### 5.3 示例案例 + +1. **每小时运行任务**: + + - **用例**:每小时检查系统资源使用情况并记录到日志文件。 + + - **步骤**: + + 1. 创建脚本 `/etc/cron.hourly/resource_check.sh`: + + ``` + #!/bin/bash + date >> /var/log/resource_usage.log + top -b -n1 | head -n 20 >> /var/log/resource_usage.log + ``` + + 2. 设置脚本权限: + + ``` + chmod +x /etc/cron.hourly/resource_check.sh + ``` + +2. **每日运行任务**: + + - **用例**:每天备份数据库。 + + - **步骤**: + + 1. 创建脚本 `/etc/cron.daily/db_backup.sh`: + + ``` + #!/bin/bash + mysqldump -u root -pYourPassword your_database > /backup/db_$(date +\%F).sql + # $(date +%F) 表示的是命令替换(command substitution),而不是简单的变量。 + # 在Shell中,命令替换的形式是 $(command),它会执行括号内的命令,并用其输出结果替换整个表达式。 + ``` + + 2. 设置脚本权限: + + ``` + chmod +x /etc/cron.daily/db_backup.sh + ``` + +3. **每周运行任务**: + + - **用例**:每周清理一次系统缓存。 + + - **步骤**: + + 1. 创建脚本 `/etc/cron.weekly/cache_cleanup.sh`: + + ``` + #!/bin/bash + apt-get clean + ``` + + 2. 设置脚本权限: + + ``` + chmod +x /etc/cron.weekly/cache_cleanup.sh + ``` + +4. **每月运行任务**: + + - **用例**:每月生成并发送系统报告。 + + - **步骤**: + + 1. 创建脚本 `/etc/cron.monthly/system_report.sh`: + + ``` + #!/bin/bash + report_date=$(date +\%Y-\%m-\%d) + df -h > /var/reports/system_report_$report_date.txt + mail -s "Monthly System Report" admin@example.com < /var/reports/system_report_$report_date.txt + ``` + + 2. 设置脚本权限: + + ``` + chmod +x /etc/cron.monthly/system_report.sh + ``` + +### 5.4 注意事项 + +1. **脚本格式**:确保脚本是可执行的,并且首行包含正确的shebang(例如 `#!/bin/bash`)。 +2. **日志记录**:为调试和审计目的,可以在脚本中添加日志记录功能,以便了解脚本的执行情况。 +3. **测试脚本**:在将脚本放入周期性任务目录之前,最好手动测试脚本,以确保其在预期环境下正常工作。 \ No newline at end of file diff --git "a/\345\255\231\347\245\245/\347\254\224\350\256\260/20240619.md" "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240619.md" new file mode 100644 index 0000000000000000000000000000000000000000..9276ef463f1523145362af879b34c32e94ea5ef2 --- /dev/null +++ "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240619.md" @@ -0,0 +1,44 @@ +# 环境变量的定义 + +##### 环境变量(Environment variable)是指操作系统中一个用来存储特定信息的变量。它是一个字符串,通常包含一个名称和一个值,用于控制程序运行时的行为 + +## 作用 + +#### 环境变量的作用主要有以下几点 + +1. 存储信息:环境变量可以用来存储各种信息,如用户的姓名、电话号码、邮箱地址、工作目录、搜索路径等。 +2. 控制行为:环境变量可以控制程序运行时的行为,如设置文本编辑器的默认打开方式、设置默认浏览器、设置命令行默认程序等。 +3. 交互式程序:环境变量可以让交互式程序(如命令行、终端)在不同的环境中运行,如设置默认的文本编辑器、默认的搜索引擎、默认的命令行解释器等。 + +## 常见的环境变量 + +常见的环境变量有以下几类: + +1. 用户信息:USER、HOME、PATH、LANG、PWD、SHELL等。 +2. 系统信息:HOSTNAME、HOSTTYPE、MACHTYPE、PATH、TERM、PS1、PS2、PS3、PS4等。 +3. 应用程序信息:EDITOR、BROWSER、VISUAL、PAGER、MANPATH、INFOPATH等。 +4. 语言信息:LANG、LC_ALL、LANGUAGE等。 + +## 环境变量分类 + +环境变量可以分为系统环境变量和用户环境变量。 + +1. 系统环境变量:系统环境变量是指操作系统在启动时设置的环境变量,这些变量对系统中的所有用户都有效。一般处于`~/.bashrc`、`~/.profile`。 +2. 用户环境变量:用户环境变量是指用户在登录系统后设置的环境变量,这些变量只对当前用户有效。一般处于 `/etc/environment`、`/etc/profile` + +## 如何设置环境变量 + +设置环境变量的方法有以下几种: + +1. 临时设置:临时设置环境变量的方法是在命令行中使用export命令,如:`export PATH=$PATH:/usr/local/bin` +2. 永久设置:永久设置环境变量的方法是修改系统配置文件,如:`/etc/profile`或`/etc/bashrc` +3. 启动时设置:启动时设置环境变量的方法是在系统启动脚本中设置,如:`/etc/init.d/rc.local`或`/etc/inittab` + +### PS:设置环境变量时,不要忘记使用export命令,否则环境变量不会生效 + +### 在Linux中,您可以使用source命令或.(点号)命令来重新加载环境变量配置文件,使其在当前终端会话中生效 + +``` +source /etc/profile +. /etc/profile +``` \ No newline at end of file diff --git "a/\345\255\231\347\245\245/\347\254\224\350\256\260/20240620.md" "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240620.md" new file mode 100644 index 0000000000000000000000000000000000000000..185c3a9509198a46b8b9387f92760d6b41fcc9e1 --- /dev/null +++ "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240620.md" @@ -0,0 +1,68 @@ +## top命令升级版本htop + +#### htop是top命令的升级版本,功能更加强大,可以用来监控系统资源的使用情况 + +### 安装htop命令 + +1. 下载htop安装包: + + ``` + sudo apt-get install htop + ``` + +2. 启动htop命令: + + ``` + htop + ``` + +### htop命令的使用方法 + +- 按下F1:显示帮助信息。 +- 按下F2:刷新显示。 +- 按下F3:切换显示模式。 +- 按下F4:显示/隐藏进程列表。 +- 按下F5:按照指定字段排序。 +- 按下F6:按照指定字段筛选。 +- 按下F7:搜索进程。 +- 按下F8:启动/关闭交互模式。 +- 按下F9:切换显示线程。 +- 按下F10:退出htop。 + +## jobs命令 + +jobs命令用来显示当前运行的后台进程。 + +### 语法 + +``` +jobs [-lnprs] +``` + +### 参数 + +- -l:显示进程号。 +- -n:显示进程号对应的进程名。 +- -p:显示进程号对应的父进程号。 +- -s:显示进程状态。 +- -r:显示运行的后台进程。 + +### 示例 + +``` +jobs -l # 显示当前运行的后台进程的详细信息。 +``` + +### 在Linux中,将当前进程转移到后台的常用方法包括使用快捷键和命令行工具 + +### 使用快捷键 + +- Ctrl + Z:将当前正在执行的进程暂停并移至后台。 +- bg:将暂停的进程恢复到后台继续执行。 +- fg:将后台的进程恢复到前台继续执行。 + +### 使用命令行工具 + +- jobs:列出所有后台进程的状态。 +- bg N:将第N个后台进程恢复到后台继续执行。 +- fg N:将第N个后台进程恢复到前台继续执行。 \ No newline at end of file diff --git "a/\345\255\231\347\245\245/\347\254\224\350\256\260/20240622.md" "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240622.md" new file mode 100644 index 0000000000000000000000000000000000000000..ea592048256a84f433fef7f10bc4512302e7a427 --- /dev/null +++ "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240622.md" @@ -0,0 +1,53 @@ +## 服务: + +常驻内存在后台运行,响应用户或其他进程的请求,并提供对某种功能服务的程序 + +## 服务管理命令 + +| 相关命令 | 启用 | 关闭 | 重启 | 重新加载 | 开机自启动 | 查看状态 | 语法 | +| ------------ | ----- | ---- | ------- | -------- | ---------- | -------- | ----------------------- | +| systemctl | start | stop | restart | reload | enable | status | systemctl start nginx | +| service | start | stop | restart | reload | enable | status | service nginx start | +| /etc/init.d/ | start | stop | restart | reload | enable | status | /etc/init.d/nginx start | + +service --status -all :列出所有正在运行的服务 + +## systemctl + +``` +systemctl start nginx # 启动服务 + +systemctl stop nginx # 关闭服务 + +systemctl restart nginx # 重启服务 + +systemctl status nginx# 显示服务的状态 + +systemctl enable nginx # 在开机时启用服务 + +systemctl disable nginx # 在开机时禁用服务 + +systemctl is-enabled nginx # 查看服务是否开机启动 + +systemctl list-unit-files|grep enabled # 查看已启动的服务列表 + +systemctl list-unit-files # 列出已经安装的服务 + +systemctl --failed # 查看启动失败的服务列表 + +systemctl --version # 查看版本号 +``` + +## service + +服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysqld , sshd、防火墙等),因此我们又称为**守护进程**,是 Linux 中非常重要的知识点。 + +### service管理指令 + +- 请使用 `service` 指令,查看,关闭,启动 `network` [注意:在虚拟系统演示,因为网络连接会关闭] 指令: + +``` +service network status +service network stop +service network start +``` \ No newline at end of file