【PHP面试题】写出尽可能多的Linux命令。

文章目录

    • 一、考点
      • 1、Linux常用命令
        • 1) 系统安全
        • 2) 进程管理
        • 3) 用户管理
        • 4) 文件系统
        • 5) 系统关机和重启
        • 6) 网络应用
        • 7) 网络测试
        • 8) 网络配置
        • 9) 常用工具
        • 10) 软件包管理
        • 11) 文件查找和比较
        • 12) 文件内容查看
        • 13) 文件处理
        • 14) 目录操作
        • 15) 文件权限属性
        • 16) 文件传输
      • 2、Linux系统定时任务
        • 1) crontab 命令
        • 2) at 命令
      • 3、延伸
        • 1) vi/vim 编辑器
          • ① 模式
          • ② 移动光标
          • ③ 查找和替换
          • ④ 删除、复制和粘贴
          • ⑤ 视图模式(vim)
          • ⑥ 配置
        • 2) shell 基础
          • ① 脚本执行方式
          • ② 编写基础
    • 二、解题方法
    • 三、真题
        • 如何实现每天0点钟重新启动服务器?

一、考点

1、Linux常用命令

1) 系统安全

  • sudo // 超级用户
  • su // 用于切换当前用户身份到其他身份,变更时需输入所要变更的用户账号与密码。
  • chmod // 用来变更文件或目录的权限
  • setfacl // 设置文件访问控制列表

2) 进程管理

  • w // 用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。
  • top // 可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。
  • ps // 用于报告当前系统的进程状态。
  • kill // 用来删除执行中的程序或工作。
  • pkill // 可以按照进程名杀死进程。
  • pstree // 以树状图的方式展现进程之间的派生关系,显示效果比较直观。
  • killall // 使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程。

3) 用户管理

id        // 可以显示真实有效的用户ID(UID)和组ID(GID)。
usermod   // 用于修改用户的基本信息。
useradd   // 用于 Linux中创建的新的系统用户。
groupadd  // 用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。
userdel   // 用户删除给定的用户,以及与用户相关的文件。若不加选型,则进删除用户账号,而不删除相关文件。

4) 文件系统

  • mount // 用户加载文件系统到指定的加载点。
  • umount // 用于卸载已经加载的文件。
  • fsck // 用于检查并且试图修复文件系统中的错误。
  • df // 用于显示磁盘分区上的可使用的磁盘空间。
  • du // 对文件和目录磁盘使用的空间的查看。

5) 系统关机和重启

  • shutdown // 关机
  • reboot // 重启

6) 网络应用

  • curl // 是一个利用URL规则在命令行下工作的文件传输工具。
  • telnet // 用于登录远程主机,对远程主机进行管理。
  • mail // 命令行的电子邮件发送和接收工具。
  • elinks // 能实现一个纯文本界面的WWW浏览器,操作方式与"lynx"类似。

7) 网络测试

  • ping // 用于测试主机之间网络的连通性。
  • netstat // 用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
  • host // 常用的分析域名查询工具,可以用来测试域名系统工作是否正常。

8) 网络配置

  • hostname // 用于显示和设置系统的主机名称。
  • ifconfig // 被用于配置和显示Linux内核中网络接口的网络参数。

9) 常用工具

  • ssh // 时openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器。
  • screen // 是一款由GNU计划开发的用于命令行终端切换的自由软件。
  • clear // 用于清除当前屏幕终端上的任何信息。
  • who // 显示当前登录系统的用户信息。
  • date // 显示或设置系统时间与日期。

10) 软件包管理

  • yum // 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
  • rpm // rpm软件包的管理工具。
  • apt-get // Debian Linux发行版中的APT软件包管理工具。所有基于Debian的发行都使用这个包管理系统。deb包可以把一个应用的文件包在一起,大体如同 Windows上的安装文件。

11) 文件查找和比较

  • locate // 用来查找文件或目录。
  • find // 用来在指定目录下查找文件。

12) 文件内容查看

  • head // 用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。
  • tail // 用于输入文件中的尾部内容。tail命名默认在屏幕上显示指定文件的末尾10行。
  • more // 用来浏览文件档案的内容(只能向前浏览)。
  • less // 用来浏览文字档案的内容,允许用户向前或向后浏览文件。使用该命令时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。

13) 文件处理

  • unlink // 用于系统调用函数 unlink 去删除指定的文件。
  • rename // 用字符串替换的方式批量改变文件名。
  • cat // 连接文件并打印到标准输出设备上,cat经常用来显示文件的内容。
  • touch // 有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。
  • ln // 用来为文件创建连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项(注意:符号链接文件不是一个独立的文件,它的许多属性依赖于源文件,所以给符号链接文件设置存取权限时没有意义的)

14) 目录操作

  • cd // 用来切换工作目录至 dirname。
  • mv // 用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。
  • rm // 可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。
  • pwd // 以绝对路径的方式显示用户当前工作目录。
  • tree // 以树状图列出目录的内容。
  • cp // 用来将一个或过个源文件或者目录复制到指定的目的文件或目录。
  • ls // 用来显示目录列表,在 Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以区分不同类型的文件。

15) 文件权限属性

  • setfacl // 用来变更文件或目录的权限。
  • chmod // 设置文件访问控制列表。
  • chgrp // 用来改变文件或目录所属的用户组。
  • chown // 改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者。或者改变所属的组。(用户可以是用户或者是用户ID,用户组可以是组名或组ID。文件可以是由空格分开的文件列表,在文件名中可以包含通配符)【只有文件主和超级用户才可以使用该命令】

16) 文件传输

  • ftp // 用来设置文件系统相关功能。
  • scp // 用于在Linux下远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system 时,用 scp 可以帮你把文件移出来。另外,scp还非常节省资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync 比 scp 会快一点,但当小文件众多的情况下,rsync 会导致硬盘 I/O 非常高,而 scp 基本不影响系统正常使用。

2、Linux系统定时任务

1) crontab 命令

contab -e       // 创建定时任务
* * * * * 命令  // 分、时、日、月、周(每过多长时间去执行,根据我们所设置的分、时、日、月、周)

2) at 命令

# at 2:00 tomorrow  // 在明天的两点去执行
at>/home/Jason/do_job // 执行结果是这种格式的
at>Ctrl + D // 退出

总体意思,明天两点执行 do_job,最终退出

注:at 命令 是一次性执行,不是循环执行,也不是周期性执行。


3、延伸

1) vi/vim 编辑器

① 模式
  • 一般模式、编辑模式和命令行模式
  • 一般模式:删除、复制和粘贴
  • 切换 编辑模式iIaAoOrR
  • 切换 命令行模式:/?
    • 【:w】:保存文件
    • 【:w!】:若文件为只读,强制保存文件
    • 【:q】:退出 vi
    • 【:q!】:不保存,强制退出 vi
    • 【:wq】:保存并退出
    • 【:wq!】:强制保存,并退出
    • 【:set nu】:显示行号
    • 【:set nonu】:取消显示行号
  • Esc :退出 编辑模式,回到 一般模式

② 移动光标
  • 【Ctrl + F】 :到下一页
  • 【Ctrl + B】 :到上一页
  • 【[0] 或者功能键 [Home]】:光标移动到当前行的最前面
  • 【[$] 或者功能键 [End]】:光标移动到当前行的末尾
  • 【G】:光标移动到文件的最后一行(第一个字符处)
  • 【gg】:光标移动到文件的第一行,相当于 “1G”
  • 【N + [Enter]】:光标向下移动 n 行

③ 查找和替换
  • /word:在文件中查找内容为 word 的字符串(向下查找)
  • ?word:在文件中查找内容为 word 的字符串(向上查找)
  • :n1, n2s/word1/word2/gn1,n2 为数字,在第 n1 行到第 n2 行之间查找 > word1,并将其替换成 word2
  • :1,$s/word1/word2/g:从第一行(第n行同理)到最后一行查找 word1 注册,并替换成 word2
  • :1,$s/word1/word2/gc:功能同上,只不过每次替换时都会让用户确认

④ 删除、复制和粘贴
  • 【x】:向后删除一个字符,相当于**【Delete】**
  • 【X】:向前删除一个字符,相当于**【Backspace】**
  • 【dd】:删除光标所在的一整行
  • 【ndd】:删除光标所在的向下 n 行
  • 【yy】: 复制光标所在的那一行
  • 【nyy】:复制光标所在的向下 n 行
  • 【p】:为将已将复制的数据在光标下一行粘贴
  • 【P】:为将已将复制的数据在光标上一行粘贴
  • 【Ctrl + r】:多次撤销

⑤ 视图模式(vim)
  • 【v】:将光标经过的地方反白选择
  • 【V】:将光标经过的行反白选择
  • 【Ctrl + v】:块选择,可用长方形的方式选择文本
  • 【y】:将反白的地方复制到剪贴板
  • 【d】:将反白的内容删除

⑥ 配置

【:set nu】:显示行号
【:set nonu】:取消显示行号


2) shell 基础

① 脚本执行方式

1)赋予权限,直接执行,例:chmod + x test.sh; ./test.sh
2)调用解释其使得脚本执行,例:bash、csh、ash、bsh、ksh等等
3)使用source命令,例:source test.sh

② 编写基础

1)开头用 #! 指定脚本解释器,例如:#!/bin/sh
2)编写具体功能


二、解题方法

牢记 以上基础知识点。


三、真题

如何实现每天0点钟重新启动服务器?

crontab -e
* * * * * reboot
分 时 日 月 周 reboot
0 0 * * * reboot

你可能感兴趣的:(PHP面试题,Linux)