Linux

180 阅读5分钟

操作系统内核八股: 面试必备(背)-Linux八股文系列!-腾讯云开发者社区-腾讯云 (tencent.com)

常见命令:

git

常用命令

  • git init:默认创建master分支
  • git clone:从Git仓库拷贝项目
  • git config:配置信息
  • git add:添加文件到缓存
  • git status:查看文件的状态命令
  • git diff:查看更新的详细信息命令
  • git commit:提交
  • git reset HEAD:取消缓存
  • git rm:删除
  • git mv:移动or重命名

git分支管理

  • git branch:列出本地分支
  • git branch (branchname):创建分支
  • git checkout (branchname):切换分支
  • git merge :合并分支
  • git branch -d (branchname):删除分支
  • git log --graph:查看分支合并图

合并冲突

当合并时,没有冲突的话,merge完成。有冲突的话,git会提示那个文件中有冲突,可以通过git status查看具体的冲突信息。

合并并不仅仅是简单的文件添加、移除的操作,Git 也会合并修改,如果我们在两个分支中同时修改了同一个文件,这时再合并,就可能会产生冲突,冲突并不可怕,可怕的是要怎样去解决。

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

解决冲突的办法无非是二者选其一或者由你亲自整合到一起。

  1. 先保留两个分支都有的
  2. 手动解决冲突后add
  3. commit

在解决了所有文件里的所有冲突后,运行 git add 将把它们标记为已解决(resolved)。因为一旦暂存,就表示冲突已经解决。如果你想用一个有图形界面的工具来解决这些问题,不妨运行 git mergetool,它会调用一个可视化的合并工具并引导你解决所有冲突:退出合并工具以后,Git 会询问你合并是否成功。如果回答是,它会为你把相关文件暂存起来,以表明状态为已解决。然后可以用 git commit 来完成这次合并提交。

gcc

gcc的全称是GNU Compiler Collection,它是一个能够编译多种语言的编译器。最开始gcc是作为C语言的编译器(GNU C Compiler),现在除了c语言,还支持C++、java、Pascal等语言。gcc支持多种硬件平台。

gcc编译过程: image.png

vim

vim 是一个全屏幕纯文本编辑器。 命令模式:是主要输入快捷键的模式。移动光标复制粘贴替换、命名模式要想进入输入模式,可以使用 a i o 等快捷键来进入。 输入模式:主要用于文本编辑,和记事本类似,输入数据就好 末行模式: :w保存不退出、:q不保存退出、:!强制

grep

grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。grep 指令用于查找内容包含指定的范本样式的文件

netstat

netstat命令用于显示网络状态。得知整个 Linux 系统的网络情况。 netstat命令常见应用场景_netstat命令如何看哪端数据挤压_龙叔运维的博客-CSDN博客

ps

Linux中进程状态有:

  • D:不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的。不可中断, 指进程不响应异步信号。
  • T:暂停/跟踪状态: 向进程发送一个 SIGSTOP 信号,它就会因响应该信号 而进入 TASK_STOPPED 状态;当进程正在被跟踪时,它处于 TASK_TRACED 这个特殊的状态。
  • R:运行/就绪状态:在 run_queue 队列里的状态
  • S:可中断睡眠状态:处于这个状态的进程因为等待某某事件的发生(比如等待 socket 连接、等待信号量),而被挂起
  • Z:zombie状态(僵尸状态):父亲没有通过 wait 系列的系统调用会顺便将子进程的尸体(task_struct)也释放掉
  • X:退出状态:死掉的进程

ps:用来显示进程状态。

sh

sh命令是一个基本的Shell解释器,通常在系统上预装,因此可以在大多数Linux系统上直接使用。然而,在实际的Shell脚本编程中,通常更常用的是bash命令,因为Bash提供了更多的功能和语法特性。

执行shell脚本:sh script.sh
打开交互式shell:sh

iostat

iostat 主要用于输出磁盘IO 和 CPU的统计信息。

-d: 指定磁盘 -c:显示cpu使用情况 -x:显示详细信息

cpu属性说明:
%iowait: CPU等待输入输出完成时间的百分比。值过高,表示硬盘存在I/O瓶颈。
%steal: 管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
%idle: CPU空闲时间百分比,值高,表示CPU较空闲。

磁盘属性说明:
tps: 每秒钟发送到的I/O请求数.
Blk_read/s: 每秒读取的block数.
Blk_wrtn/s: 每秒写入的block数.
Blk_read: 读入的block总数.
Blk_wrtn: 写入的block总数.

isof

lsof 命令用于列出当前系统上打开的文件和文件描述符(包括网络连接)。
查看哪些进程正在使用某个端口或文件:lsof -i: 80这将列出所有正在使用端口80的进程信息。

awk

文本处理和格式化,数据提取和过滤

问题

Linux 日志文件找出现次数最多的 ip(sort、uniq、awk)

1698686237477.png
sort命令

uniq命令

Linux 查看一个端口的运行情况

1698686386941.png

1698686402823.png

linux的查看进程,网络,磁盘,内存的命令。

  • 查看进程信息 1698718282632.png
  • 查看网络信息 1698718290989.png
  • 查看磁盘信息 1698718299284.png
  • 查看内存信息

1698718305901.png

用于查询和定位命令、二进制文件、帮助文档等信息的常用工具

1699877229454.png