目录

42. Linux进程间的通信方式有哪些

43. Linux线程间的通信方式有哪些

44. Windows进程间的通信方式有哪些

45. Windows线程间的通信方式有哪些

46. 可以查看某IP是否可达的命令

47. Linux中查看文件的方法有哪些

48. whereis命令的作用

49. Umask是什么

50. 退出vi编辑器并保存对文件的修改,有两种方式

51. 在vi编辑文件时,如何查找字符串

52. Nginx的配置文件 nginx.conf的相关内容

53. init启动进程时,需要读取配置文件:/etc/inittab

54. man的级别

55. 终止前台和后台进程的命令

56. 两个进程同时打开同一个文件时

57. /etc/shadow, /etc/passwd的作用

58. ARP是什么

59. 挂载设备用mount, 卸载设备用unmount

60. 对于线程,其虚拟内存的大小不受物理内存大小的限制

61. 任何shell都会执行exec+fork命令

62. 将目标文件打包成静态库文件: ar

63. 关于makefile的描述

64. sizeof求大小的常见文件

65. 从文本文件的每一行中截取指定内容的数据: cut

66. 输入输出重定向:标准输入,标准输出,标准错误输出

67. 硬链接和软链接

68.  arm-linux-gcc 命令的常用参数

69. 批量删除当前目下的所有.c文件

70. locate命令查找文件

71. 改变权限chmod,改变所有者chown,改变所属组chgrp

72. 新建用户 useradd

73. Shell环境下,如何查看远程Linux系统运行的时间

74. 关于网络编程的描述小结

75. logcat命令

76. history命令:查看最近的n条信息

77. 从后台启动程序,应该在命令的结尾加上 &

78. 查看Linux机器的CPU, SWAP分区,硬盘信息

79. 删除文件行相关的命令dd

80. 打印相关的命令 plr


【写在前面】

为了便于查找,这里另起一篇汇总文。

汇总一的链接在此: Linux知识点汇总一(NK)

汇总三的链接在此:Linux(操作系统)知识点汇总三(NK)

42. Linux进程间的通信方式有哪些

(1)管道pipe:即有名管道named pipe,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的所有功能外,它还允许无亲缘关系进程间的通信。

(2)信号signal:信号是比较复杂的通信方式,用于通知接收进程有某种事件发生。除了用于进程间通信外,进程还可以发送信号给进程本身。Linux除了支持Unix早期信号语义函数signal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数时基于BSD的,BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数)。

(3)消息队列message:消息队列是消息的链接表,包括Posix消息队列systen V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息少,管道只能承载无格式字节流以及缓冲区大小受限等特点。

(4)共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其他通信机制,如信号量结合使用,来达到进程间的同步以及互斥。

(5)信号量 semaphore:主要作为进程间以及同一进程不同线程之间的同步手段。

(6)套接口 socket:更为一般的进程间通信机制,可用于不同机器之间的进程通信。期初是由Unix系统的BSD分支开发出来的,但现在一般可以移植到其他类Unix系统上:Linux和System V的变种,都支持套接字。

43. Linux线程间的通信方式有哪些

(1)互斥体

(2)信号量

(3)条件变量

44. Windows进程间的通信方式有哪些

(1)管道

(2)内存共享

(3) 消息队列

(4)信号量

(5)socket

45. Windows线程间的通信方式有哪些

(1)临界区 critical section

(2)互斥量 mutex

(3) 信号量 semaphore

(4)事件 event

补充:

Windows进程和线程共同之处:信号量和消息(事件)

46. 可以查看某IP是否可达的命令

(1)ping:用来检查自己主机是否与目标地址接通。

(2)tracert:windows的命令,是一个简单的网路诊断工具,可以列出分组经过的路由节点,以及它在IP网络中每一跳的延迟。是路由跟踪实用程序,用于确定IP数据包访问目标所采取的路径。tracert命令用IP生存时间TTL字段和ICMP错误消息来确定从一个主机到网络上其他主机的路由。

(3)telnet:Linux telnet命令用于远端登入,执行telnet指令开启终端机阶段作业,并登入远端主机。 telnet IP

补:

(1)route:该命令在本地IP路由表中显示和修改条目网络命令,可修改路由。

47. Linux中查看文件的方法有哪些

(1)cat:由第一行开始显示文件所有内容

(2)tac:从最后一行开始显示文件的所有内容

(3)more:一页一页的显示文件内容,只能向后翻页

(4)less:也是一页一页显示文件内容,但是可以通过键盘上的 pagedown,pageup键,控制向前还是向后翻页。

(5)head:显示一个文件的前几行

命令:

head -n k:打印前K行

head -n -k:打印除最后K行外

(6)tail:显示一个文件的后几行

命令:

tail -n k:打印最后K行

tail -n +k:从K行开始打印

补充:

(1)sed -n '300-500p' filename:表示打印第300-500行。//sed命令p; 列印,将某个选择的数据印出。p参数与sed -n参数一起运行。

48. whereis命令的作用

whereis命令只能用于程序名称的搜索,而且只搜索二进制文件(-b),man说明文件(-m),源代码文件(-s)。如果省略参数,则返回所有信息。该命令查找的目录,是由环境变量$PATH指定的。

whereis查找的速度非常快,因为Linux系统会将系统内的所有文件都记录在一个数据库文件中。当使用whereis (还有locate命令)时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率自然会高。

但是该数据库文件并不是实时更新的,默认情况下一星期更新一次。因此,在用whereis和locate查找文件时,有时候会找到已经被删除的数据,或者刚刚建立文件却无法查找到。原因就是数据库文件没有更新。

49. Umask是什么

Umask是设置系统创建文件时的默认权限,是创建文件权限补码,对文件来说最大值是6。

比如:Umask设为244,则创建的文件默认权限是422,第一位是-,即-r---w--w-

50. 退出vi编辑器并保存对文件的修改,有两种方式

(1)在末行模式下执行 :wq

(2)在命令模式下执行ZZ命令

51. 在vi编辑文件时,如何查找字符串

(1)从下往上找:?,比如?2021

(2)从上往下找:/,比如/2021

52. Nginx的配置文件 nginx.conf的相关内容

(1)nginx进程数设置为cpu总核心数最佳

(2)虚拟主机配置多个域名时,各域名间用空格隔开

(3)设定http服务器中 sendfile on; ,开启高效文件传输模式。对于普通应用,设置为on; 。用于进行下载等应用磁盘IO重负载应用时,设置为off, 以平衡磁盘与网络I/O处理速度,降低系统的负载。

(4)设置工作模式与连接数上限时,应考虑单个进程最大的连接数(最大连接数=连接数*进程数)。

Nginx基础学习笔记(正向/反向代理,Nginx均衡负载和配置)

53. init启动进程时,需要读取配置文件:/etc/inittab

(1)/etc/inittab:定义了系统引导时的运行级别,进入或者切换到一个运行级别时做什么

(2)/bin/sh:解释脚本的shell命令,开机后运行

(3)/etc/sysvinit:就是system V风格的init系统,即源于System V系列UNIX。sysvinit中运行模式描述了系统各种预订的运行模式。

(4)/sbin/init:在核心完整的加载后,开始运行系统的第一支程序,主要的功能就是准备软件运行的环境,包括系统的主机名称,网络配置,语系处理,文件系统格式和其他服务的启动等。

54. man的级别

(1)1:查看命令的帮助

(2)2:查看可被内核调用的函数的帮助。系统调用

(3)3:查看函数和函数库的帮助。例程

(4)4:查看特殊文件的帮助,主要是/dev目录下的文件

(5)5:查看配置文件的帮助。文件格式描述,比如 /etc/passwd

(6)6:查看游戏的帮助

(7)7:查看其它杂项的帮助。例如宏命令,惯例等

(8)8:查看系统管理员可用命令的帮助。系统管理员工具,只能由root启动。

补:

man -f 命令:可以查看这个命令有哪些级别

55. 终止前台和后台进程的命令

(1)kill:杀死前台和后台的进程

(2)ctrl+c:杀死正在运行的进程,即前台进程

补:

(1)shut down:重启系统

(2)halt:关闭系统

56. 两个进程同时打开同一个文件时

(1)两个进程中分别产生两个独立的fd

(2)两个进程可以任意对文件进行读写,操作系统并不保证写的原子性

(3)进程可以通过系统调用对文件加锁,从而实现对文件内容的保护

(4)两个进程可以分别读取文件的不同部分而不会互相影响

(5)一个进程删除该文件后,另一个进程可以继续操作,直到退出以后,才找不到文件。因为删除的通常都是文件索引。

57. /etc/shadow, /etc/passwd的作用

(1)/etc/shadow:用来保存所有用户的密码,第二字段为用户的加密密码,如果密码是“!!”或"*"则代表没有密码不能登录,需要用户登录验证。

(2)/etc/passwd:用来保护用户的基本信息。

58. ARP是什么

(1)ARP: address resolution protocol,地址解析协议。

(2)是根据IP地址获取物理地址的一个TCP/IP协议。

(3)工作位于数据链路层(在物理层的上一层),用于将IP地址和物理地址映射。

(4)主机发送信息时,将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址。收到返回消息后,将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

补充:

unicast是单播,broadcast是广播,multicase是多播。

(5)arp -a: all

arp -d: delete

arp -D: Device

arp -L: 没有该参数

59. 挂载设备用mount, 卸载设备用unmount

卸载有三种方式:通过设备名,挂载点,设备名+挂载点

比如: unmount /dev/hdc, unmount /mnt/cdrom,  unmount /mnt/cdrom /dev/hdc ,

60. 对于线程,其虚拟内存的大小不受物理内存大小的限制

进程的虚拟内存大小并不受物理内存大小的限制,例 32位处理器虚拟内存空间可能是4G,但物理内存实际是小于4G的,部分地址空间分配给ROM, 外设等。

61. 任何shell都会执行exec+fork命令

在此基础上,ls还会执行read。所以,执行ls时,引起exec(execve), fork和read的系统调用。

62. 将目标文件打包成静态库文件: ar

(1)将源文件编译成目标文件:gcc -c *.c  //得到目标文件*.o

(2)将目标文件打包成静态库:ar crv libtest.a  *.o  //将该目录下的所有目标文件打包成libtest.a静态库。然后,在编译的时候,就可以直接使用这个静态库

63. 关于makefile的描述

(1)makefile文件保存了编译器和连接器的参数选项,还表述了所有源文件之间的关系(源代码文件需要的特定的包含文件,可执行文件要求包含的目标文件模块和库等)。

创建程序(make程序)时,首先读取makefile文件,然后再激活编译器,汇编器,资源编译器和连接器,以便产生最后的输出。

最后输出big生成的通常是可执行文件,创建程序利用内置的推理规则来激活编译器,以便通过对特定CPP文件的编译来产生特定的OBJ文件。

(2)主要包含了五个内容:显示规则,隐晦规则,变量定义,文件知识和注释

(3)默认情况下,make命令会在当前目录下按顺序找寻文件名为: GNUmakefile, makefile, Makefile的文件,找到后解释这个文件(只会有一个文件,可能有这三个不同的命名)。

这三个文件名中,最好使用Makefile这个文件名,因为这个文件名首字母大写,这样比较显眼。最好不要用GNUmakefile,这个名字是GNU的make识别的。

(4)在Makefile使用include关键字,可以把别的Makefile包含进来,很像C语言的include。

include的用法; include <filename> //filename可以是当前操作系统Shell的文件模式(可以保存路径和通配符)

64. sizeof求大小的常见文件

(1)int在32还是64位系统中,都是32位,4字节。 sizeof(11)=4

(2)字符串末尾为 \0, 算一个字节。sizeof(“Tencent”)=8

(3)指针大小在32位系统中为4字节,在64位系统中为8字节

65. 从文本文件的每一行中截取指定内容的数据: cut

cut, 剪切的意思,从文件的每一行剪切字节,字符和字段,并将这些字节字符字段写至标准输出。

比如: cut -c 2-5 target  //输出target中的2-5字符

66. 输入输出重定向:标准输入,标准输出,标准错误输出

(1)标准输入 stdin, 标准输出 stdout, 标准错误输出 stderr:分别由0,1,2描述

(2)将脚本demo.sh的标准输出和标准错误输出重定向至文件demo.log中,可以用以下方式:

bash demo.sh &> demo.log

bash demo.sh >& demo.log

bash demo.sh > demo.log 2>&1

67. 硬链接和软链接

(1)链接:

是给系统中已有的某个文件指定另外一个可用于访问它的名称。对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题。如果链接执行目录,用户就可以利用该链接直接进入被链接的目录,而不用写很长的目录名。而且,我们删除这个链接,也不会破坏原来的目录。

(2)硬链接:

只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引inode。当移除或删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据,而不是文件在文件结构中的位置。

硬链接的文件不需要用户有访问原始文件的权限,也不会显示原始文件的位置,有助于文件的安全。如果删除的文件有硬链接,那么这个文件依然会保留,直到所有对它的引用都被删除。

(3)软链接(符号链接):

软链接,其实就是新建一个文件,这个文件就是专门用来指向别的文件的(类似快捷键)。软链接产生的是一个新的文件,但这个文件的作用就是专门指向某个文件,删了这个软链接文件,那就等于不需要这个链接,和原来的存在的实体源文件没有任何关系。

但是,如果删除原来的文件,则相应的软链接不可用(cat 软链接,提示没有该文件或目录)

(4)硬链接和软链接的区别

1)硬链接不会建立inode, 只是在原来的inode link count域增加1而已,因此,硬链接是不可以跨越文件系统的。硬链接删除的时候,系统调用会检查inode link count的值,如果大于等于1,那么inode不会被回收,因此内容不会被删除。

相反,软链接会重新建立一个inode, 该inode结构跟其他的不一样,只是一个指明源文件的字符串信息。一旦删除源文件,那么软链接将变得毫无意义。

2)硬链接实际上是为文件建一个别名,链接文件和源文件实际上是同一个文件,可以通过ls -l来查看,其inode号是相同的,说明他们是同一个文件。

而软链接建立的是一个指向,即链接文件内的内容时指向源文件的指针,他们是两个文件。

3)硬链接不可以跨文件系统,软链接可以。

4)硬链接不可以对一个不存在的文件名进行链接(文件名和inode必须存在),软链接可以(可以对不存在的filename链接,此时如果vi这个软链接文件,linux会自动新建一个文件名为filename的文件)

5)硬链接不可以对目录进行链接,软链接可以。

6)两种链接都可以通过命令ln来创建,ln默认创建的是硬链接。加-s即可创建软链接。

68.  arm-linux-gcc 命令的常用参数

(1)-o:用于指定输出的文本,如果不指定输出文件,则默认输出.out文件

(2)-c:将对源程序.c文件进行预处理,编译,汇编操作,生成.o文件

(3)-S:将对源程序.c文件进行预处理,编译,生成.s文件

(4)-g:加入GDB能够使用的调试信息,使用GDB调试时比较方便

69. 批量删除当前目下的所有.c文件

(1)rm *.c

(2)find . -name "*.c" -maxdepth 1 | xargs rm

70. locate命令查找文件

(1)locate:并不真正对硬盘上的文件系统进行查找,而是对文件名数据库进行检索,而且可以使用通配符?和 *

区别:

(2)whereis:只能用于程序名的搜索,而且只搜索二进制文件,man说明文件,源代码文件

(3)find:从指定的起始目录开始,递归的搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。

(4)type:用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令。

71. 改变权限chmod,改变所有者chown,改变所属组chgrp

(1)改变权限:chmod 777 filepath

(2)改变所有者:chown 拥有者 filepath

(3)改变所属组:chgrp 所属组 filepath

2和3的需求合到一起,可写为: chown 拥有者:所属组 filepath

72. 新建用户 useradd

创建一个管理员用户:useradd -u 0 -o admin

(1)-u 用户号:指定用户的用户号,系统的用户号为0。如果同时有-o选项,则可以重复使用其他用户的标识号,因为系统本身存在用户号为0的系统用户了,这里再想使用0,故此要加-o。

(2)-g:表示用户组

(3)-e:指定账号的有效期限,缺省表示永久有效

(4)-f:指定在密码过期后多少天即关闭该账号

(5)-p:表示创建密码

(6)-m:创建用户的主目录

(7)-M:不创建用户的主目录

(8)-o:允许使用重复的UID创建用户

(9)-d:新账号的主目录

73. Shell环境下,如何查看远程Linux系统运行的时间

(1)ssh user@被监控主机ip “uptime”:登录主机后执行uptime命令。

(2)uptime命令:用于查看服务器运行了多长时间以及有多少个用户登录。

(3)scp是远程文件传输的命令

74. 关于网络编程的描述小结

(1)一个Socket可以绑定多个网卡

(2)客户端和服务器都可以主动关闭Socket

(3)Socket支持阻塞模式和非阻塞模式

(4)TCP和UDP提供相同的服务时,会选用相同的端口号。

补:

数据包传递的过程:在网络层IP数据包向上传递时,会查看数据包中的协议类型。如果是TCP协议,则交给TCP。如果是UDP,则交给UDP。到了传输层,再根据端口号将数据传送到应用层的应用程序, TCP, UDP端口是独立的。

75. logcat命令

(1)logcat是Android中的一个命令行工具,可以用于得到程序的log信息

(2)logcat -v time:打印log的同时,打印系统时间

(3)logcat -c:清除已有log

76. history命令:查看最近的n条信息

history 4:表示查看最近的3条信息(不包括history)

history 数字:会把刚刚输入的history算作最后一条。

77. 从后台启动程序,应该在命令的结尾加上 &

后台运行可以有两种方式:

(1)命令前加nohup:nohup *.sh

(2)命令后加 &:*.sh &

78. 查看Linux机器的CPU, SWAP分区,硬盘信息

(1)查看CPU:cat /prop/cpuinfo

(2)查看SWAP分区:cat /prop/swaps

(3)查看硬盘信息: df -lh

79. 删除文件行相关的命令dd

(1)dd:删除当前行

(2)ndd:删除光标行往下n行(含光标行)

(3)dgg:删除光标当前行及以上内容

(4)dG:删除光标当前行及以下内容

(5)dH:删除当前页面第1行至光标行

(6)p:粘贴到光标下一行

(7)u:撤销一次操作

(8)Ctrl+r:反撤销(一次)

80. 打印相关的命令 plr

(1)lprm:用于将一个工作由打印机贮列中移除

(2)lpq:用于查看一个打印队列的状态,该程序可以查看打印机队列状态及其所包含的打印任务

(3)lpd:是一个常驻的打印机管理程序,它会根据/etc/printcap的内容来管理本地或远端的打印机

(4)lpr:实用程序用来将一个或多个文件放入打印队列等待打印

Linux知识点汇总二(NK)相关推荐

  1. 【Linux】Linux知识点汇总

    Linux知识点汇总 Linux知识点汇总 一.Linux文件与目录 1.文件颜色代表的意义 2.Linux文件目录结构 3.Linux文件基本属性 4.Linux文件与目录管理 4.1 绝对路径 4 ...

  2. Linux常用命令及知识点汇总(二)

    目录 1.Linux文件系统 1.1存储结构 1.2挂载点 1.3查看磁盘使用情况 1.4硬连接和符号连接 2.磁盘操作 2.1查看磁盘分区情况 2.2磁盘分区 3.压缩与打包 3.1gzip 3.2 ...

  3. Linux知识汇总 (二)

    1)linux中find与rm实现查找并删除目录或文件 linux 下用find命令查找文件,rm命令删除文件. 删除指定目录下指定文件 find 要查找的目录名 -name .svn |xargs ...

  4. linux知识点记录二

    2018/5/8 查看每个磁盘的大小使用命令:df -h 2018/5/9 将windows文件传输到centos主机上,安装 yum install -y lrzsz:成功后就可以使用了:使用命令r ...

  5. 软件测试知识点汇总(NK)(更新至2021.12.08)

    目录 1. 非增量式和增量式集成测试 2. 测试分类 3. 测试粒度大小排序 4. 自顶向下增量式集成测试 5. 自底向上增量式继承测试 6. LoadRunner包括哪些工具 7. 集成测试主要包括 ...

  6. 数字音视频知识点汇总(二)

    ### AAC格式简介 FFF16040 0A4280FC01 4AF28780 21280991 D5F379C7 1271871D E7B66A4E B352A85B 0A4E3C1E 09479 ...

  7. 原生 遍历_细品原生JS从初级到高级知识点汇总(三)

    作者:火狼1 转发链接:https://juejin.im/post/5daeefc8e51d4524f007fb15 目录 细品原生JS从初级到高级知识点汇总(一) 细品原生JS从初级到高级知识点汇 ...

  8. linux高可用小知识点汇总-行云管家

    不少运维小伙伴对于linux高可用相关知识不是很了解,今天我们小编就给大家汇总了一些,希望可以加深大家的了解.仅供参考哦! linux高可用小知识点汇总-行云管家 一.Linux是什么系统? [回答] ...

  9. Linux运维工程师面试知识点汇总(一)

    Linux运维工程师面试知识点汇总(一) 一.Linux命令知识点 1.查看/var/log/下的文件数 2.shell下随机密码生成(32位) 3.随机生成8位密码(大小写和数字混合) 4.随机生成 ...

最新文章

  1. 史上最全软件测试自学完整路线,走过路过千万不要错过
  2. linux文件自动删除,自动删除文件脚本(Linux shell脚本)
  3. SAP PM概念学习
  4. ZT:CSS实现水平|垂直居中漫谈
  5. .Net 中的反射(查看基本类型信息) - Part.2
  6. 黄冈中学首页布局(自己做的)
  7. 《设计模式详解》结构型模式 - 组合模式
  8. 7 win 卸载node_如何从windows中完全删除node.js_windows彻底卸载node教程
  9. iptables基本概念详解
  10. 黄冈a货翡翠,开封a货翡翠
  11. (转载的)C#using的用法
  12. R如何读取csv文件
  13. Codeforces 1089K King Kog's Reception(线段树)
  14. 恢复VMware误删虚拟机
  15. mysql的存储过程,循环执行插入语句
  16. 综合柜台业务基本规范
  17. 网站推荐用的软文说明
  18. Android存放图片尺寸规范
  19. 中国四川省自贡市第四人民医院ICU数据库使用指南(Critical care database comprising patients with infection at Zigong Fourth)
  20. 单片机 串行口实验解数据流怎么到发光二极管来显示的

热门文章

  1. 番茄花园系统优化工具 1.0
  2. AtCoder Regular Contest 116 D - I Wanna Win The Game(二进制 + dp)
  3. basler恢复出厂设置_如何恢复您的Xbox出厂设置
  4. 基于SSM框架的云图库系统的设计与实现
  5. 浅浅的 C++ 11
  6. 高校毕业生青年就业创业政策汇编
  7. java计算机毕业设计环巢湖区域旅游网站源码+mysql数据库+系统+lw文档+部署
  8. 解决jeecgboot前端报错问题:If you are using vue-loader@>=10.0, simply update vue-template-compiler.
  9. php slim nginx,slim+nginx访问报500错
  10. 人工智能进军餐饮:AI 调酒,越喝越有