LinuxC++开发面试系列:权限修改进程管理与vim

Posted 我是管小亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LinuxC++开发面试系列:权限修改进程管理与vim相关的知识,希望对你有一定的参考价值。

文章目录

同步GitHub在此 👉 https://github.com/TeFuirnever/GXL-Skill-Tree

Linux文件权限chmod

在上一个博客(LinuxC++开发面试系列(一):目录结构与文件权限)中讲解了文件权限的含义以及具体代表的权限,这个博客会讲解如何修改权限以达到更大的使用灵活性和限制性。

权限的种类共三种,即字符rwx。

  • r代表可读(read)
  • w代表可写(write)
  • x代表可执行(execute)

权限的使用者共三种,即ugo。

  • u = user用户
  • g = group组
  • o = other其他用户和组

另外,在修改权限时,可以使用字符a。

  • a = all所有

最后,修改权限的方式主要有两种,即增减权限或者赋值权限。

1)增减权限

+增加权限,-去除权限

chmod u-r a.txt

即去除 a.txt 文件的 u 使用者的 r 权限。

chmod a+r a.txt


即增加 a.txt 文件的 所有 使用者的 r 权限。

2)赋值权限

  • 字母权限:rwxrwxrwx,对应数字权限:111111111
  • 字母权限:---------,对应数字权限:000000000

其中,二进制表示的,0代表没有,1代表有,因此对应的三位表示法:

0000
0011
0102
0113
1004
1015
1106
1117

chmod 264 a.txt

即去除 a.txt 文件的 u 使用者的 r 权限,具体是 u 变为 -w- 即 010——2,g 不变 rw- 即 110——6,o 不变 r-- 即 100——4,因此变化后的赋值是 264。

chmod 664 a.txt


即增加 a.txt 文件的 所有 使用者的 r 权限,具体是 u 变为 rw- 即 110——6,g 变为 rw- 即 110——6,o 变为 r-- 即 100——4,因此变化后的赋值是 664。

Windows与Linux

  • Windows的书写方法:C:\\Windows\\linux\\test\\a.txt

  • Linux的书写方法:/home/alubuntu/linux/test/a.txt

  • 区别:Windows有盘符,Linux没有;Windows用反斜杠,Linux用斜杠。

绝对路径与相对路径

Windows:

当前目录是 C:\\Windows 目录,要进入 Windows 下的 System 目录:

  • 相对路径的写法:cd .\\system
  • 绝对路径的写法:cd C:\\windows\\system

    Linux:

当前目录是 /home/alubuntu/linux 目录,要进入 Linux 下的 test 目录:

  • 相对路径的写法:cd ./test/
  • 绝对路径的写法:cd /home/alubuntu/linux/test/

用户登录

sudo su 管理员登录
sudo last 查看用户登录情况
exit 如果是切换后的登录用户,退出则返回上一个登录账号

日历与时间

cal 查看日历
cal -y 查看一整年日历
date 显示当前时间

磁盘管理

ps 静态进程查看(相当于Windows程序管理器)

ps:
-a:显示终端上所有的进程,包括其他用户的进程
-u:显示进程的详细状态
-x:显示没有控制终端的进程
-w:显示加宽,以便显示更多的信息
-r:只显示正在运行的进程

ps -aux

ps -aux | grep gedit 显示指定进程gedit

top 动态进程查看

kill 终止和杀死指定进程

  • kill 4085 终止进程4085
  • kill -9 4173 杀死进程4173

检测磁盘空间 df

  • df http -h 查看文件所在文件系统的大小

检测目录所占磁盘空间 du

  • du http -h 查看文件目录的大小

程序运行

hello world:

./hello 运行可执行文件
./hello & 可执行文件以后台方式运行(一般服务器程序在后台运行)

http:

第一步:将 http.tar.gz 上传到 linux

第二步,一步解压:tar -xzvf http.tar.gz

第三步,进入 http 目录:cd http

第四步,查看目录中的文件:ls


第五步,编译源代码为可执行程序:make

第六步,需要设置 linux 的防火墙,开放 80 端口,如果是 ubuntu,第六步省略。

第七步,在命令模式下,切换到root用户:su

第八步,启动软件:./myhttp start

如果看到如下显示,代表成功了。

listen 80 success
myhttp begin

第九步,后台启动软件:./myhttp start &

第十步,查看后台运行程序:jobs

第十一步,查看状态:./myhttp status

第十二步,停止软件:./myhttp stop

第十三步,运行服务器的客户端:http://127.0.0.1/

第十四步,编译 hello.c 为 hello.cgi:gcc a.c -o a.cgi

第十五步,运行服务器的 hello world:http://127.0.0.1/hello.cgi

  • ctrl + z 将运行中的程序调入后台
  • fg + 编号 将后台运行程序调出前台

开关机

  • reboot 重启操作系统
  • shutdown -r now 重启os,会给别人提示
  • shutdown -h now 立刻关机
  • shutdown -h 20:25 系统在今天的20:25关机
  • shutdown -h +10 系统再过十分钟后自动关机
  • init 0 关机
  • init 6 重启

字符界面与图形界面切换

ctrl +alt +f2 切换成字符界面

ctrl +alt +f7 切换到图形界面

IP地址和ping连接

查看IP地址:ifconfig

连通某个IP地址:ping

vi的使用

输入模式与命令模式:

  • a 代表从命令模式进入输入模式,在光标当前位置后面追加
  • i 代表从命令模式进入输入模式,在光标当前位置插入
  • ESC 代表从输入模式进入命令模式

保存文件

  • :w 文件名
  • :q 退出(如果文件内容被修改了,直接用 :q 退出,会提示错误,vi不允许退出)
  • :wq 保存退出(:qw这样写是错误的),ZZ(shift+z+z) 保存退出
  • :q! 不保存退出

vi文件:

  • vi abc.txt 如果abc.txt存在,那么就打开这个文件,如果不存在就创建一个新文件,同时打开
  • vi hello.c +5打开并跳到第五行

快捷键:

  • i 光标位置当前处插入文字
  • o 光标位置下方开启新行
  • O 光标位置上方开启新行
  • I 光标所在行首插入文字
  • A 光标所在行尾插入文字
  • 【n】dd删除从当前行开始的n行(剪切)
  • 【n】yy复制从当前行开始的n行
  • p 粘贴
  • u 撤销
  • gg 文件第一行行首
  • G 文件最后一行行首
  • 【n】gg 到指定行行首

查找字符:

  • /main + 回车 查找指定字符串
    • n 下一个
    • N 上一个

实例:

用vi写一个a.c,文件名可以自己起,但扩展名要为.c,.c代表c语言程序

#include <stdio.h>

int main()

	printf("hello world\\n");
	
	return 0;

以上是关于LinuxC++开发面试系列:权限修改进程管理与vim的主要内容,如果未能解决你的问题,请参考以下文章

LinuxC++开发面试系列:权限修改进程管理与vim

LinuxC++开发面试系列:目录结构与文件权限

LinuxC++开发面试系列:代码运行gcc编译system函数与VS2013 C4996解决方法

LinuxC++开发面试系列:代码运行gcc编译system函数与VS2013 C4996解决方法

LinuxC++开发面试系列:代码运行gcc编译system函数与VS2013 C4996解决方法

LinuxC++开发面试系列:玩转 VS Code