目录
- 1 总体介绍
- 2 Linux操作系统
- 3 应用领域和主流操作系统
- 4 远程连接
- 4.1 常用命令
- 4.2 系统目录
- 4.3 目录和文件管理
- 4.3.1 目录管理命令
- 4.3.2 文件管理命令
 
- 4.5 压缩和解压缩
 
- 5 用户权限
- 5.1 用户和权限
- 5.2 权限修改
- 5.3 超级用户
 
- 6 进程管理
- 7 端口
- 面试题
1 总体介绍
操作系统作用
-  操作系统是用户和计算机之间沟通的桥梁 
-  信息查看 
-  用户管理 
-  目录和文件管理 
-  进程管理 
2 Linux操作系统
内核和发行版
-  Linux内核 -  是系统的心脏 
-  是开源的 
 
-  
-  Linux发行版 -  通常包括了桌面环境, 办公套件, 媒体, 播放器等应用软件 
-  常见的发行版: -  CentOS: 国内使用率最高的服务器系统, 免费 
-  Ubuntu: 国内使用率第二的服务器系统, 免费 
-  Redhat: 收费 
 
-  
 
-  
3 应用领域和主流操作系统
操作系统, 英文叫 Operation System, 缩写为 OS
服务器操作系统
- Linux: 免费, 占有率高, 安全, 稳定
- Windows Server: 收费, 占有率低
嵌入式操作系统
-  Linux -  免费 
-  Linux内核比较小, 最小的只有几百KB 
-  嵌入式设备: 智能机顶盒, 智能手表, 智能扫地机器人 
 
-  
个人桌面操作系统
-  windows: 用户群体大 
-  macOS 
-  Linux: 应用软件少 
移动端操作系统
-  IOS 
-  Android (基于 Linux) 
-  鸿蒙OS 
4 远程连接
远程连接所需要素
-  协议 - 通信双方对数据传输控制的一组规则
 
-  IP - 通过 IP地址 找到网络上的计算机
 
-  端口 -  通过 端口号 可以找到计算机上运行的应用程序 
-  SSH服务的默认端口号是22 
 
-  
-  账号/密码 
-  域名 是什么? - q域名 是 IP地址 的别名, 方便用户记忆
 
4.1 常用命令
-  whoami: 查看用哪个用户在使用系统 
-  pwd: 查看当前所在文件夹(print work directory) 
-  date: 查看系统时间 
-  ls: 查看当前目录下的文件 (list) 
-  ifconfig: 查看内网ip地址 - eth0这个设备是物理网卡
 
-  ping: 一般用于检测当前计算机到目标计算机之间的网络是否通畅 - ping IP地址 - 使用场景 - 检查服务器有没有联网时, 检查网络延时时, ping 一下百度
- 检查另一台服务器有没有开机时, ping 另一台服务器IP地址
 
 
- 使用场景 
 
- ping IP地址 
-  history: 用于查看用户执行的历史命令 
-  clear: 清屏 
-  在命令跟空格 --help: 跟–help参数时, 会帮我我们查询对应命令的使用手册, 但可读性不好 
-  free -h: 查看服务器内存信息 
-  df -h: 查看硬盘剩余空间 (disk free) 
-  du -h: 显示目录下文件大小 (disk usage) 
4.2 系统目录
/
根目录,在 linux 下有且只有一个根目录
/root
系统管理员 root 的家目录
/home
其他用户的家目录, 在 Linux 中, 每个用户都有一个自己的家目录, 如上图的 user01, user02, user03
/bin
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令
/etc
这个目录用来存放配置文件
/lib
lib 是 Library(库) 的缩写, 这个目录里存放着系统共享库, 其作用类似于 Windows 里的 DLL 文件
/media 和 /mnt
挂载点, 如U盘/光驱等
/tmp
tmp 是 temporary(临时) 的缩写, 这个目录是用来存放一些临时文件的
/usr
usr 是 unix shared resources(共享资源) 的缩写, 类似于 windows 下的 program files 目录
/var
var 是 variable(变量) 的缩写, 放置系统执行过程中经常变化的文件
4.3 目录和文件管理
Linux是大小写敏感的, 例如, a 和 A 是两个不同的文件夹, a.txt 和 A.txt 是两个不同的文件
自动补全
在敲出 文件/目录/命令 的前几个字母后, 按下 tab按键
如果输入没有歧义, 系统会自动补全
如果存在歧义, 按两次 tab按键, 系统会提示出对应的所有可能的结果
4.3.1 目录管理命令
绝对路径
输入时, 从 / 或者 ~ 开始的具体目录位置, 例如 /etc/apt , ~/c/cc
相对路径
输入时, 从 . 当前目录开始的位置, 例如 c 或者 ./c
命令
-  mkdir : 创建一个新的目录 (文件夹) (make directory) 
-  cd 切换目录 (change directory) 
-  cd / 切换到根目录 
-  cd 目录 切换到指定目录 
-  cd ~ 切换到用户的家目录 
-  cd … 切换到上一级目录 
-  ls 列出当前目录下的内容 
-  ls 目录 表示列出具体目录下的内容 
-  ll 表示的是 ls -l 的缩写, 指列出目录下详细信息 
-  rm 删除文件或目录 (英文叫 remove 删除的意思) 
-  rm -rf 目录 表示删除对应目录和目录下的所有目录和文件 
-  rm -rf 目录/* 表示删除对应目录下的所有目录和文件, 保留对应目录 
-  * 代表通配符 
-  rm -rf / 删库跑路 
-  mv 移动或者重命名**, 针对文件或者目录 - 移动: mv 源文件夹 目标文件夹/ 例如 mv a b/ 表示把当前目录下的a目录放到当前目录下的b目录中\
 
-  重命名 mv 源文件夹 目标文件夹 例如 mv a c 表示在当前目录下把a重命名为c 
-  find 查找文件或目录 
-  find 目录 -name 文件夹的名字 
4.3.2 文件管理命令
-  touch : 创建文件【如果文件不存在, 则创建一个空白文件】 - 实际场景 touch a.txt 创建文本文件, touch a.log 创建日志文件, touch a.conf 创建配置文件
 
-  vim : 核心作用是编辑文本文件【如果文件不存在, 则创建一个空白文件, 并打开 
如果文件已经存在, 则打开这个文件】
需要按 i进入编辑模式
编辑后, 需要按 Esc按键, 退出编辑模式
输入 :wq!保存并退出这个文件
w 代表 write 写入
q 代表 quit 退出
! 代表强制
-  cat : 查看文件内容, 只作为一次性展示, 只适合查看较小的文本文件 - -n 参数表示查看文件内容的同时显示行号
 
-  more : 适合查看较大的文本文件 
-  less : 适合查看较大的文本文件 
-  tail : 可以查看文件末尾指定行数的内容 - 使用场景: 测试人员一边操作软件一边查看日志的动态输出, 为了找bug - tail -100f xx.log 代表动态查看日志的末尾100行
 
 
- 使用场景: 测试人员一边操作软件一边查看日志的动态输出, 为了找bug 
-  grep : 强大的文本搜索工具 - grep -ni error xx.log 代表去搜某个日志文件中含有error信息的日志内容, 并且显示行号,忽略大小写
 
-  rm - rm -rf xx.txt
 
-  mv 移动 mv 源文件 目标目录【重命名 mv 源文件 目标文件】 
-  find 目录 -name 文件名 
-  文件名中允许使用通配符 * 
-  cp : 复制文件或者目录 -  cp 源文件/目录 目标文件/目录 
-  cp x.txt xx.txt 代表在同目录下把x.txt复制一份, 复制出来的文件叫xx.txt 
 
-  
4.5 压缩和解压缩
在不同操作系统中, 常用的压缩包的格式是不一样的
-  windows 常用 zip , rar 格式 
-  mac 常用 zip 格式 
-  linux 常用 tar.gz 格式 
命令
tar -zxvf  xx.tar.gz       解压缩并提取 xx.tar.gz 文件。
tar -zxvf xx.tar.gz -C     解压缩并提取 xx.tar.gz 文件到指定目录
tar -zcvf xx.tar.gz        被压缩目录 创建压缩文件
5 用户权限
5.1 用户和权限
基本概念
-  linux用户管理中包括用户和用户组的管理 - 对用户组设置权限后, 就不需要对每个用户去设置权限
 
-  通过 ll命令查看目录下的所有文件和文件夹的详细信息 -  第1位 - 代表是文件, d代表是目录 
-  第2~9位, 每3位一组, 分别代表 拥有者权限 , 组权限 , 其他用户权限 -  r 用英文表示是read, 代表读权限 
-  w 用英文表示是write, 代表写权限 
-  x 用英文表示是excute, 代表执行权限 
 
-  
 
-  
5.2 权限修改
chmod, 可以修改文件或目录的所有权限 (用户/用户组/其他用户所对应的权限)
chmod使用格式: chmod 权限 目标文件或目录
chmod 777 目标文件或目录
代表给用户/用户组/其他用户所有权限

5.3 超级用户
-  linux系统中的root账号通常对系统所有资源具有所有权限 
-  但不推荐直接使用root账号登录 
-  可以选择切换管理员账号 -  su, 是 switch user的缩写, 表示切换用户 
-  切换用户时, 需要输入密码, 之后有一定的时效, 超过时效则必须重新输入密码 
 
-  
6 进程管理
进程的概念
指的就是当前正在执行中的程序可以基本理解为一个程序对应一个进程
命令
-  top 用于动态显示运行中的进程, 并且可以展示出系统总体运行相关信息 -  在性能测试过程中, 可能会用到top, 来查看当前系统运行的资源占用情况 
-  需要查看当前进程时, 也会用到top命令 
 
-  
-  ps -ef 来查看进程详细情况 -  常用的格式是 ps -ef | grep 要查的进程的相关信息 
-  |是管道符, 作用是一个命令的输出通过管道作为另一个命令的输入 
-  kill -9 对应的进程ID , 作用是干掉某个进程 
 
-  
7 端口
概念 :端口就是计算机的某个服务与外界通信交流的出口
查看端口的命令
netstat 用于显示linux的端口信息
netstat -plunt | grep 对应要找的端口号
面试题
- 你们公司服务器用的是什么系统?[1]
我们服务器用的是CentOS 7.0
我们服务器用的是Ubuntu 22
- 你操作服务器常用什么软件?[1]
我连接公司的服务器用的是 xshell
如果需要向服务器传输文件的话, 我会用 xftp
- free, df, du这些命令的作用?[3]或者性能测试时, 比较常用的服务器指标监控的命令?[3]
-  一般来说在性能测试时, 我们需要监控服务器的资源使用情况 
-  比如监控服务器内存使用情况, 我就会用free -h 
-  比如需要监控服务器硬盘剩余情况, 我会用到df -h, 当然有时也会用du -h去查看硬盘目录下的文件大小 
- linux你常用目录有哪些?[2]
-  / 根目录 
-  /root 管理员家目录 
-  /home/用户名 普通用户的家目录 
-  /bin 存放二进制可执行文件 
-  /lib 存放库文件 
-  /tmp 存放临时文件 
-  /var 配置环境变量时经常会用到 
- less和more的区别?[2]
-  在操作上基本区别不大 
-  less加载速度上会比more更快, less不必读整个文件 
-  阅读到结束时, more会自动退出阅读, less不会 
-  相比more, less提供更加友好的搜索, 高亮显示 
- 文件和目录的增删改查怎么操作?[2]
-  新建一个文件会用到touch, 新建目录我会用到mkdir 
-  删除文件或目录时, 我经常用rm -rf 
-  修改文件内容我用vim, 重命名目录我会用到mv 
-  如果是查找文件或目录我会用到find 
-  如果是查看文件内容, 命令比较多 cat / more / less / tail / grep 
- 文件和目录的删除命令是什么, 有什么需要注意的地方?[3]
-  删除命令是rm, 代表remove 删除的意思 
-  需要特别注意的地方是删除是的路径填写 
- vim命令的使用方式?[2]
-  一般我在编辑文本文件时会用到这个命令 
-  我用vim打开文件后, 会按 i按键进入编辑模式, 然后开始输入内容 
-  完成输入后, 按 Esc退出编辑模式 
-  最后通过 :wq!完成保存并退出文件的操作 
- 如何动态查看某个日志文件最后20行?[3]
-  通过tail命令来完成 
-  具体操作是 tail -20f 某日志文件 
- 压缩和解压缩怎么操作?[3]
-  压缩和解压缩都是通过tar命令来操作的 
-  压缩用到的参数 -zcvf 
-  解压缩用到的参数 -zxvf 
- 怎么做到远程复制文件?[2]
-  远程复制文件需要考虑环境问题 
-  如果是windows上的文件复制到linux上, 使用xftp工具拖拽文件即可 
-  如果是linux服务器之间的远程文件复制, 使用scp命令即可 
- 你了解top命令吗? 你在什么时候会用到top命令?[3]
-  top 用于动态显示运行中的进程, 并且可以展示出系统总体运行相关信息 
-  在性能测试过程中, 可能会用到top, 来查看当前系统运行的资源占用情况 
-  需要查看当前进程时, 也会用到top命令 
- 如何查看mysql进程?[3]
-  通过ps命令来实现 
-  ps -ef | grep mysql 通过管道符匹配mysql关键字来筛选具体要查找的mysql进程 
- 如何查看22端口?[3]
-  我是通过netstat命令实现的 
-  然后执行netstat -plunt | grep 22 
- 如何修改文件或目录的权限?[3]
-  我们组织规划的比较好, 一般不太需要修改权限 
-  如果一定修改的话, 那么 chmod 777 可以解决所有权限问题 
-  比如我可以让管理员登录root用户去帮我执行权限修改的命令 
-  或者我如果有root账号的话, 我可以切换管理员去修改权限 
