1.深入指令认识

  runlevel 查看系统运行级别

可以用init动态切换0-6共7个级别(特别注意:如在使用这个指令时退不出来可执行上节的重新启动shutdown -r now)

0

关机->停止所有服务、断电

1

单用户模式->用于系统修复/重置密码

2

多用户无网络服务->部分发行版默认

3

完全的多用户文本界面->服务器常用默认

4

未定义或者自定义->保留给用户/发行版定制

5

图形化界面->桌面版常用默认

6

重启->重启系统

②显示文件内容的指令

****more 当文件的内容超过一个屏幕能显示的行数,使用more 可以分屏显示文件内容,分页显示 慢慢显示出来,more +文件名字。

****less指文件内容查看器,查看文件内容,但是文件内容不会显示在界面上,less +文件名字注意:使用less查看文件时,可以q退出)。

****head:显示文件前n行的内容,head -n(行数) 文件名。

****tail 显示文件后n行的内容,tail+-n+文件名:表示查看该文件后n行的内容。

打包tar

c:创建新的打包文件   x:从打包文件中提取解压文件,释放包中的内容   t:列出打包文件内的文件列表,不解压    v:显示详细操作过程   f:指定打包/解压的文件名而不是设备    r:向已存在的打包文件里面追加新文件    z: 有解压和压缩的功能)

***tar -cvf+包名.tar+需要打包的文件名:将文件打包到包名中,不压缩

***tar -tvf 包名.tar :查看打包内容

***tar+-xvf+包名.tar -C+目标地址:将包中内容解包到目标地址

***tar+-rvf+包名.tar+文件名:将文件追加到打包tar文件里去

***tar+-zcvf+包名.tar+文件名:将文件打包到包中,并且压缩

***tar+-zxvf+包名.tar+文件名:解包 将包中内容解包到目标地址

④补充一下命令操作

vi命令模式切换到末行模式

shift +:

对文本的设置或者保存工作

/+字符

对文件进行全文向下搜索字符串string

?+字符

对文本进行全文向上搜索字符串string

:q!

强制退出

:w newfile

另存为新文件

:set hlsearch

设置高亮搜索

:set nohlsearch

取消设置高亮搜索

:n,m s/oldstring/newstring

替换整个文本每行的第一个oldstring

:n,m s/oldstring/newstring g

替换整个文本所有oldstring

vi常用命令补充:

r

替换一个字符

shift +6

光标移动到当前行的行头

shift +4

光标移动到当前行的行尾

shift+g

光标移动到整个文本的最后一行

gg

光标移动到整个文本的第一行

n shift +g

光标移动到第n行

d n shift+g

删除光标到n行的内容

y n shift +g

拷贝光标到n行的内容2.

2.进程管理命令

ps :打印当前终端中的进程/正在运行的程序

  //-e 显示系统中所有的进程信息

  //-f 显示更多的进程属性信息(全格式)

  //-L 显示进程中的线程ID

  //ps -ef:打印当前系统中的进程的详细信息

//注:PID:当前的进程号  CMD:当前进程名称  UID:运行进程的用户名   PPID:当前进程的父进程,由bash过来的

bash:命令解释器 开一个终端相当于开一个命令解释器,不断累加的

TTY:表示终端号,第一个终端的终端号位0,以后为 1 2 3 4……

*****额外解释:

此操作系统:uabntu 来管理进程

生成进程:给进程分配pid号 int  0到无穷(有上限)

进程控制块:struct task_struct; 一个连一个

进程描述符:进程号一定是连续的,如果两个进程号之间的不连续,说明中间的已经被释放。

父进程和子进程是相对的,并不是绝对的。

pstree 以树状图形式显示进程之间的关系

休眠的指令(sleep)+数字 :表示休眠多少秒,Ctrl+c:结束在终端中在前台运行的进程。(如果ctrl +z停止再 ps -ef,则可看到)

// sleep  300 运行在前台(默认在前台,终端会等待当前进程结束)

sleep 300 & 运行在后台(&后台运行程序,显示当前进程号,需要动手结束(kill +进程号))

kill+进程号:结束(杀死)进程 无论前台还是后台,但是当进程处于暂停(ctrl z 停止)状态时,必须加上-9 强制结束(kill +-9 +进程号-stop:挂起进程(kill +-stop+进程号)

(查找进程号:ps -ef l grep+名字

pkill:结束一组同名的进程

jobs:显示当前终端的任务

fg:任务号,将后台运行的或挂起的进程挪到前台执行

 bg:任务号,将挂起的进程唤醒到后台执行

(操作:放置一个后台长时间运行的指令(一个死循环的代码),查看他的状态并将其切换到前台运行)

//注意:运行在后台的进程,在命令输入指令时,无论后台的任务显示如何,都可以算正在输入的指令

拓展: while true; do date; done & sleep 2是循环打印时间(这个时间会一直打印,(不要轻易尝试,)但是如果尝试之后,则重新打开一个终端,在终端中查询进程号,执行kill +进程号,上一个终端停止)

⑥添加新用户和和删除用户

//添加新用户:useradd newname (用户名字)  

-g 执行新用户的主组
-G 将新用户添加到副组
-s 指定新用户默认使用的shell终端
-d 指定新用户登录默认进入的目录

//删除用户:userdel name (userdel删除用户时,首先确保该用户没有登录,userdel默认仅删除用户,不会删除家目录及家目录中的文件,若想删除用户的同时移除家目录那么就得使用userdel -r username)

3.在Linux系统上的c语言的编译与调试(gcc使用)

gcc:编译程序的核心工具链,翻译成可读的机器语言【gcc +文件名(目录名)+ (-o)+ (命名)】gcc编译器,在Linux系统上可执行文件(程序)的格式为ELF;在Windows系统上可执行程序的格式为PE,如图:

汇编语言:一种低级的编程语言,(直接对应机器语言(二进制指令)),但是使用了一些助记符来帮助人类记忆。特点:1.与硬件强关联  不同CPU架构(X86   ARM)下 汇编指令集差异。2.可以直接操作硬件(可以直接访问寄存器,内存器,CUP标志位)

③编译链接过程:gcc编译器  分步编译程序(*.i 预处理文件   *.s汇编文件  *.o二进制文件)

预编译阶段:gcc -E main.c -o main.i

编译阶段:gcc -s main.i -o main.s

汇编阶段:gcc -c main.s -o mian.o

链接阶段:gcc main.o -o main

④多文件的编译过程:(给出例子,如下图片)

首先创建 add.h  add.c  max.h  max.h  mian.c等写进可执行代码

//在生成可执行文件时只要将目标文件的汇编文件进行gcc编译,即可执行编译,变成二进制文件

//出现二进制文件add.o max.o main.o

makefile和make(实现自动化编译)  (对 main.c   add.c  max.c三个文件进行编译,先建立makefile文件,在文件中写入下图内容(注意格式问题,gcc前有空格,按tab键就行

//文件建立之后,在命令行下make,则可直接生成*.o文件

//执行clean 清楚*.o的文件  执行make clean

//makefile文件如果加了除开生成的指令,想执行该指令,现需要在外部输入,make+该指令的标志位

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐