当 ping 一个 IP 地址时产生了什么

  • 当你ping一个IP地址时,你的核算机会发送一个ICMP(Internet Control Message Protocol)回显恳求包到方针IP地址,并等候回显应对。

  • 假如方针IP地址可达而且没有防火墙阻挠ICMP包,你的核算机将会收到一个ICMP回显应对。

怎么获取一个进程的内存并监控

  • 在Linux中,能够运用ps指令或top指令来检查进程的内存运用情况。

  • 例如,ps aux会显现一切进程的CPU和内存运用情况。

  • 假如你想要实时监控一个进程的内存运用情况,能够运用top -p [pid]指令,其中pid]是你想要监控的进程的ID。

psaux
top-p[pid]

ps是一个显现当时进程状况的指令。aux是ps指令的选项参数,含义如下:
-a:显现一切进程,包含其他用户的进程
-u:以用户为主的格局来显现进程状况
-x:显现没有操控终端的进程
所以,psaux指令的作用是显现体系中一切用户的一切进程状况。

top是一个动态显现进程状况的指令。

-p是top指令的选项参数,后面跟着进程ID(pid),用于指定监视的进程。

所以,top-p[pid]指令的作用是动态显现指定进程的状况。

简述 TCP socket 树立的进程

TCP socket的树立进程一般被称为”三次握手”:

  1. 客户端发送一个SYN包到服务器,恳求树立衔接。
  2. 服务器接纳到SYN包后,回来一个SYN-ACK包承认收到恳求。
  3. 客户端接纳到SYN-ACK包后,发送一个ACK包承认衔接树立。

这个进程保证了双方都准备好进行数据传输。

在linux中怎么获取登录的用户

  • 在Linux中,能够运用who指令来检查当时登录的用户。
  • who指令会显现每个登录用户的用户名、终端类型、登录时刻等信息。
who
whoami

linux 中怎么打印一切网络接口

  • 在Linux中,能够运用ip指令或ifconfig指令来检查一切网络接口。
  • ip addr showifconfig会显现一切网络接口的信息,包含IP地址、MAC地址、网络掩码等。
ipaddrshow
ifconfig

linux 有哪些发行版,你最喜欢哪一个

  • Linux有很多发行版,包含Ubuntu、Debian、Fedora、CentOS、Arch Linux、Red Hat等。
  • 每个发行版都有其特色,挑选哪个发行版首要取决于个人喜爱和运用需求。
  • Ubuntu:Ubuntu是一个以桌面运用为主,依据Debian的开源Linux操作体系,重视用户体验,易于运用。
  • Debian:Debian是一个安稳且强大的开源Linux发行版,以其谨慎的软件包办理著称,是许多其他Linux发行版的根底。
  • Fedora:Fedora是一个由RedHat赞助,面向最新技能和开源社区的Linux发行版,常用于测验最新的开源软件。
  • CentOS:CentOS是一个依据RedHatEnterpriseLinux源代码的开源Linux发行版,首要面向企业用户,重视安稳性和安全性。
  • RedHat:RedHatEnterpriseLinux(RHEL)是一个由RedHat公司商业支撑的Linux发行版,首要面向企业商场,供给长期支撑。

CoW 战略指什么,docker 中有哪些运用

  • CoW是Copy-on-Write的缩写,是一种优化战略。
  • 当一个方针被仿制时,不当即进行仿制,而是当方针被修正时才进行仿制。
  • 这样能够节省内存和CPU资源。
  • 在Docker中,CoW战略被用于镜像和容器的办理。
  • 当创立一个新的容器时,Docker不会仿制一个新的镜像,而是创立一个指向原镜像的指针。
  • 当容器修正了镜像中的文件时,Docker才会仿制一个新的文件。

怎么运用指令检查一个文件有多少字符以及多少行

  • 在Linux中,能够运用wc指令来检查一个文件有多少字符和多少行。
  • wc -c [file]会显现文件的字符数,
  • wc -l [file]会显现文件的行数。
wc-c[file]
wc-l[file]

怎么运用vim检查文件有多少个字符以及多少行

在Vim中,你能够运用以下指令来检查文件的字符数和行数:

  • 检查字符数:在指令办法下(按Esc键进入),输入gCtrl+g,Vim会在底部显现文件的字符数、行数、单词数等信息。

  • 检查行数:在指令办法下,输入:=,Vim会在底部显现文件的总行数。

在Vim中,你能够运用以下指令来敞开行号显现:

  • 在指令办法下(按Esc键进入),输入:setnumber或者简写为:setnu,然后按回车键,Vim就会在每行的开始处显现行号。

  • 假如你想让Vim每次启动时都主动敞开行号显现,你能够在你的Vim装备文件(一般是~/.vimrc)中增加一行setnumber

怎么把一个 CIDR 地址转化为IP地址规模段

  • CIDR地址是一种表明IP地址和子网掩码的办法,
  • 例如192.168.1.0/24。
  • 转化为IP地址规模,需求将子网掩码转化为二进制,然后核算出最小和最大的IP地址。
  • 例如,192.168.1.0/24的子网掩码是24,表明前24位是网络地址,后8位是主机地址
  • 所以,IP地址规模是192.168.1.0到192.168.1.255。

怎么完结一个优先级行列

  • 优先级行列是一种特别的行列,每个元素都有一个优先级,
  • 优先级最高的元素最先出队。
  • 优先级行列能够用堆(Heap)来完结。

JS完结典范如下:

class PriorityQueue {
    constructor(comparator = (a, b) => a > b) {
        this._heap = [];
        this._comparator = comparator;
    }
    size() {
        return this._heap.length;
    }
    isEmpty() {
        return this.size() == 0;
    }
    peek() {
        return this._heap[0];
    }
    push(value) {
        this._heap.push(value);
        this._heap.sort(this._comparator);
    }
    pop() {
        return this._heap.shift();
    }
}
// 运用示例
let pq = new PriorityQueue((a, b) => a[1] < b[1]);
pq.push(["item1", 3]);
pq.push(["item2", 1]);
pq.push(["item3", 2]);
while (!pq.isEmpty()) {
    console.log(pq.pop());
}

什么是看护进程

  • 看护进程是一种在后台运转的进程,
  • 不需求用户交互。
  • 它们一般用于供给服务,
  • 如web服务器、数据库服务器等。
  • 在Linux中,看护进程的父进程一般是init进程

什么是方针存储,与块存储和文件存储有什么差异

  • 方针存储是一种存储结构,
  • 每个方针包含数据、元数据和仅有标识符
  • 方针存储能够轻松扩展,合适存储很多非结构化数据
  • 块存储将数据分割为块,
  • 每个块有仅有的地址。
  • 块存储合适存储结构化数据,如数据库。
  • 文件存储将数据存储为文件,
  • 文件组织在目录中。
  • 文件存储合适存储需求经过文件体系拜访的数据。

简述TCP 的三次握手

TCP的三次握手是树立衔接的进程:

  1. 客户端发送SYN包到服务器,恳求树立衔接。
  2. 服务器接纳到SYN包后,回来一个SYN-ACK包承认收到恳求。
  3. 客户端接纳到SYN-ACK包后,发送一个ACK包承认衔接树立。

这个进程保证了双方都准备好进行数据传输。

怎么在 linux 中打印一切环境变量

  • 在Linux中,能够运用printenv指令或env指令来打印一切环境变量。
  • 假如不带任何参数,这两个指令都会打印一切环境变量。
printenv
env

SIGINT SIGTERM SIGKILL 有什么差异

SIGINT、SIGTERM和SIGKILL都是用来完毕进程的信号,但它们的行为有所不同:

  • SIGINT(信号2):一般由用户经过Ctrl+C发送,进程能够捕获这个信号并决定怎么处理
  • SIGTERM(信号15):这是默许的完毕信号,进程能够捕获这个信号并决定怎么处理。
  • SIGKILL(信号9):这个信号不能被捕获或忽略,进程会当即完毕
  • interrupt=手动打断 VS terminate=天然终止 VS kill=强杀

有没有运用过 oss,方针存储相比块存储和文件存储有什么优缺点

  • 方针存储(Object Storage Service,OSS)是一种存储服务,
  • 合适存储很多非结构化数据。
  • 方针存储的长处是能够轻松扩展,
  • 支撑HTTP/HTTPS拜访,
  • 合适存储图片、视频等大文件。
  • 缺点是功能较低,
  • 不合适存储需求频频读写的数据。
  • 块存储将数据分割为块,
  • 每个块有仅有的地址。
  • 块存储的长处是功能高,
  • 合适存储数据库等需求频频读写的数据。
  • 缺点是扩展性较差,不合适存储很多数据。
  • 文件存储将数据存储为文件,
  • 文件组织在目录中。
  • 文件存储的长处是能够经过文件体系拜访,
  • 合适存储文档等需求经过文件体系拜访的数据。
  • 缺点是功能较低,
  • 不合适存储需求频频读写的数据。

怎么用 linux 指令输出文件的特定行

  • 在Linux中,能够运用sed指令或awk指令来输出文件的特定行。
  • 例如,sed -n '5p' [file]会输出文件的第5行,
  • awk 'NR==5' [file]也会输出文件的第5行。
sed-n'5p'[file]
awk'NR==5'[file]

什么是 CNAME 记载和 A 记载

CNAME记载和A记载都是DNS记载的一种:

  • CNAME(Canonical Name)记载:用于将一个域名映射到另一个域名。
  • 例如,www.example.com 能够映射到 example.com。
  • A(Address)记载:用于将一个域名映射到一个IPv4地址。
  • 例如,example.com 能够映射到 192.0.2.1。

助记:cname=域名映射 VS address=IP地址映射

怎么完结一个 LRU

  • LRU(Least Recently Used)是一种缓存淘汰战略,
  • 当缓存满时,最近最少运用的数据会被淘汰。
  • LRU能够用哈希表和双向链表来完结。
  • 哈希表用于查找数据,双向链表用于存储数据。

在JavaScript中,能够运用Map数据结构来完结一个简略的LRU(LeastRecentlyUsed)缓存。以下是一个基本的完结:

classLRUCache{
constructor(capacity){
this.capacity=capacity;
this.cache=newMap();
}
get(key){
if(!this.cache.has(key)){
return-1;
}
consttemp=this.cache.get(key);
this.cache.delete(key);
this.cache.set(key,temp);
returntemp;
}
put(key,value){
if(this.cache.has(key)){
this.cache.delete(key);
}
this.cache.set(key,value);
if(this.cache.size>this.capacity){
this.cache.delete(this.cache.keys().next().value);
}
}
}
//运用示例
letcache=newLRUCache(2);
cache.put(1,1);
cache.put(2,2);
console.log(cache.get(1));//回来1
cache.put(3,3);//该操作会使得密钥2作废
console.log(cache.get(2));//回来-1(未找到)
cache.put(4,4);//该操作会使得密钥1作废
console.log(cache.get(1));//回来-1(未找到)
console.log(cache.get(3));//回来3
console.log(cache.get(4));//回来4
  • 在这个完结中,get办法从缓存中获取一个键的值,
  • 假如键不存在,则回来-1。
  • 每次调用get或put办法时,都会将键移动到缓存的末尾。
  • 当缓存的巨细超越其容量时,put办法会删去最近最少运用的键。

cron 表达式 (* 10 * * *) 会怎么触发

  • cron表达式由5个字段组成,别离表明分钟、小时、日期、月份和星期。
  • * 10 * * * 表明每天的第10小时的每一分钟都会触发。
  • 分钟(0-59)
  • 小时(0-23)
  • 日期(1-31)
  • 月份(1-12)
  • 星期(0-7,0 和7 都表明周日)

助记:分时日月周 / 分食日月粥

cron 表达式 (30 10 * * *) 会怎么触发

30 10 * * * 表明每天的第10小时的第30分钟会触发。

  • 也便是每天的10:30触发一次

助记:分时日月周 / 分食日月粥

在 linux 中怎么检查 cron 履行的情况

  • 在Linux中,能够运用crontab -l指令来检查当时用户的cron使命。
  • 假如你想要检查cron使命的履行情况,能够将使命的输出重定向到一个文件,
  • 例如30 10 * * * command > /path/to/logfile 2>&1
crontab-l

git 怎么检查某个文件的提交前史

  • 在git中,能够运用git log指令来检查某个文件的提交前史。
  • 例如,git log -- [file]会显现该文件的一切提交。
gitlog--[file]

什么是IO多路复用

  • IO多路复用是一种技能,能够让一个进程同时监控多个IO事情
  • 当任何一个IO事情准备好时,进程就能够处理它。
  • IO多路复用能够提高程序的并发功能,
  • 特别是处理很多长衔接的情况。
  • 在Linux中,IO多路复用能够运用selectpollepoll等体系调用来完结。

怎么检查一个文件的 inode number

  • 在Linux中,能够运用ls指令或stat指令来检查一个文件的inode number。
  • 例如,ls -i [file]stat [file]会显现文件的inode number。
ls-i[file]
stat[file]

文件体系中 mtime、ctime 和 atime 指什么,都有什么不同

在文件体系中,mtime、ctime和atime是文件的三个时刻戳:

  • mtime(Modification Time):文件内容最终一次修正的时刻
  • ctime(Change Time):文件状况(如权限、一切者等)最终一次改变的时刻
  • 注意,当文件内容改变时,ctime也会改变。
  • atime(Access Time):文件最终一次被拜访的时刻
  • 在Linux中,能够运用ls指令或stat指令来检查这些时刻戳。
ls-l[file]
stat[file]

TCP 是怎么保证可靠性的

TCP经过以下几种机制来保证可靠性:

  • 序列号:每个TCP段都有一个序列号,接纳方能够依据序列号从头拼装数据。
  • 承认应对:当接纳方收到数据后,会发送一个承认应对。假如发送方没有收到承认应对,会从头发送数据。
  • 重传超时:假如发送方在一定时刻内没有收到承认应对,会从头发送数据。
  • 流量操控:接纳方能够告诉发送方它的接纳窗口巨细,发送方不能发送超越接纳窗口巨细的数据。
  • 拥塞操控:当网络拥塞时,TCP会削减数据的发送速率

怎么监控文件的变动

  • 在Linux中,能够运用inotify机制来监控文件的变动。
  • inotify能够监控文件的创立、删去、修正等事情。
  • 也能够运用watch指令定期履行一个指令,
  • 例如watch ls会每隔2秒履行一次ls指令。
watchls

vpn 的原理是什么

  • VPN(Virtual Private Network)是一种在公共网络上创立私有网络的技能。
  • VPN经过加密和隧道技能,使得数据在公共网络上传输时保持私密性和完整性。
  • VPN工作时,客户端会与VPN服务器树立一个虚拟的网络衔接
  • 一切的网络通讯都会经过这个衔接,然后由VPN服务器转发到方针地址
  • 因为一切的通讯都被加密,所以其他人无法窥探到通讯内容

shell 中 与{} 与 () 各是什么意思

在shell中,${}$()都是变量替换的一种办法,但它们的用途不同:

  • ${}用于变量替换
  • 例如,假如有一个变量name=”world”,那么echo "Hello, ${name}"会输出”Hello, world”。
  • $()用于指令替换/优先核算
  • $()会履行其中的指令,并将结果替换到原位置。
  • 例如,echo “Today is $(date)” 会输出”Today is “后面跟上当时日期。
name="world"
echo"Hello,${name}"
echo"Todayis$(date)"

ssh 的原理是什么

  • SSH(Secure Shell)是一种网络协议,
  • 用于在不安全的网络上进行安全的长途登录。
  • SSH经过公钥加密技能来验证长途核算机和用户,
  • 经过对称加密技能来维护数据的私密性和完整性。

当你运用SSH登录一个长途核算机时,会产生以下进程:

  1. SSH客户端衔接到SSH服务器。
  2. SSH服务器发送它的公钥到SSH客户端
  3. SSH客户端运用服务器的公钥加密一个随机生成的会话密钥,并发送给服务器。
  4. SSH服务器运用它的私钥解密会话密钥
  5. 客户端和服务器都有了会话密钥,然后运用这个密钥加密一切的通讯。

PS:其实是先非对称交换秘钥,后对称通讯!和HTTPS相同的!

Node 中 cluster 的原理是什么

  • Node.js的cluster模块是一种创立多进程的办法。
  • 主进程(Master)负责创立和办理子进程(Worker),
  • 子进程负责处理客户端的恳求。
  • 当主进程接纳到客户端的恳求时,会将恳求分发给一个子进程。
  • 子进程处理完恳求后,将结果回来给主进程,
  • 主进程再将结果回来给客户端。
  • 这种办法能够充分利用多核CPU的功能,提高程序的并发能力。

怎么判别端口是否可达

  • 在Linux中,能够运用nc指令或telnet指令来判别一个端口是否可达。
  • 例如,nc -zv [host] [port]telnet [host] [port]会测验衔接到指定的主机和端口,假如衔接成功,那么端口便是可达的。
nc-zv[host][port]
telnet[host][port]

助记:telnet 主机 端口 好记一点!

怎么制止服务器被 ping

  • 在Linux中,能够经过装备iptables防火墙来制止服务器被ping。
  • 例如,iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
  • 该指令会丢掉一切的ICMP回显恳求,这样服务器就不会呼应ping指令。
iptables-AINPUT-picmp--icmp-typeecho-request-jDROP

助记:iptables墙掉一切icmp即可!

什么是文件描述符 (file descriptor)

  • 文件描述符是一个非负整数
  • 用于表明翻开的文件、套接字或其他IO设备
  • 在Linux中,每个进程都有一张文件描述符表
  • 当进程翻开一个文件或创立一个套接字时,体系会回来一个文件描述符
  • 进程能够经过这个文件描述符来读写数据

在服务器内怎么得知自己的公网IP

  • 在Linux中,能够运用curl指令或wget指令来获取公网IP。
  • 例如,curl ifconfig.mewget -qO- ifconfig.me会回来公网IP。
curlifconfig.me
wget-qO-ifconfig.me

助记:便是拜访一下自己!

简述 UDP socket 树立的进程

  • UDP(User Datagram Protocol)是一种无衔接的协议,所以树立UDP socket的进程比较简略:

  1. 创立一个socket。
  2. 绑定到一个地址和端口。
  3. 发送和接纳数据。

助记:socket绑定方针地址,开始通讯!

ssh怎么设置IPwhiteList

  • 在Linux中,能够经过装备ssh的hosts.allowhosts.deny文件来设置IP白名单。
  • hosts.allow文件中的IP地址会被允许拜访,
  • hosts.deny文件中的IP地址会被回绝拜访。
  • 例如,假如你想要只允许192.168.1.1拜访ssh,能够在hosts.allow文件中增加一行sshd:192.168.1.1,并在hosts.deny文件中增加一行sshd:ALL

简述TCP的四次挥手

TCP的四次挥手是断开衔接的进程:

  1. 客户端发送一个FIN包到服务器,恳求断开衔接。
    2.服务器接纳到FIN包后,回来一个ACK包承认收到恳求,此刻衔接处于半封闭状况。
    3.服务器发送一个FIN包到客户端,恳求断开衔接。
  2. 客户端接纳到FIN包后,回来一个ACK包承认收到恳求,此刻衔接彻底封闭。

助记:C-FIN-ACK + S-FIN-ACK / 客辉映,服辉映

tcp中time_wait堆积过多会有什么问题,为什么它超时时刻这么长

  • TIME_WAIT是TCP衔接封闭后的一个状况,
  • 表明衔接现已封闭,但是或许还有一些迟到的数据包在网络中。
  • TIME_WAIT状况一般持续2倍的最大段生计时刻(MSL),在Linux中默许是60秒
  • 假如TIME_WAIT状况的衔接过多,或许会耗尽体系的资源,导致新的衔接无法树立。
  • 此外,假如服务器频频地树立和封闭衔接,或许会导致很多的衔接处于TIME_WAIT状况,这被称为TIME_WAIT积累
  • TIME_WAIT状况的超时时刻需求足够长,以保证一切的数据包都现已从网络中消失
  • 假如超时时刻太短,或许会导致旧的数据包被误认为是新衔接的数据包
  • 这或许会导致数据的过错。

助记:目送你走远!

怎么判别文件中的换行符是LF还是CRLF

LF和CRLF是两种不同的行完毕符(LineEnding)符号。

  • LF:LineFeed,ASCII码为10,表明换行,在Unix/Linux体系中作为行完毕符
  • CRLF:CarriageReturnLineFeed,ASCII码别离为13 和10,表明回车换行,在Windows体系中作为行完毕符
  • 在处理跨平台文本文件时,这两种行完毕符的差异或许会导致问题,
  • 例如在Unix/Linux体系中翻开Windows体系的文本文件,或许会在每行的末尾看到一个额定的^M字符。
  • 在Linux中,能够运用file指令来判别文件中的换行符是LF还是CRLF。
  • 例如,file[file]会显现文件的信息,
  • 假如文件中的换行符是CRLF,那么会显现 withCRLFlineterminators
file[file]

进程与线程的差异是什么

进程和线程都是操作体系进行使命调度的基本单位,但它们有以下差异:

  • 进程是体系资源分配的最小单位
  • 线程是CPU调度的最小单位
  • 进程有自己的独立地址空间,每启动一个进程,体系就会为它分配地址空间。
  • 线程是进程的一部分,同一进程内的线程同享该进程的地址空间
  • 进程间不会做信息同享,线程间能够同享进程的资源,如内存等。
  • 创立进程的开销大于创立线程。

怎么检查node_modules(某一文件夹) 的体积有多大

  • 在Unix/Linux体系中,你能够运用du指令来检查node_modules文件夹的巨细。具体指令如下:
du-shnode_modules
  • -s参数表明对每个参数进行总计,
  • -h参数表明以人类可读的格局(例如KB、MB、GB等)显现巨细。

助记:diskUsage short humanReaable

服务器的均匀负载怎么核算

  • 服务器的均匀负载是一段时刻内体系处于可运转状况和不行中止状况的均匀进程数。
  • 可运转状况表明进程正在运用CPU或等候运用CPU,
  • 不行中止状况表明进程正在等候I/O操作完结。
  • 在Linux中,能够运用uptime指令或检查/proc/loadavg文件来检查服务器的均匀负载。
  • 这两种办法都会显现最近1分钟、5分钟和15分钟的均匀负载。
uptime
cat/proc/loadavg

怎么创立一个进程

  • 在Unix/Linux体系中,能够运用fork()体系调用来创立一个新的进程。
  • 在JavaScript中,我们能够运用Node.js的child_process模块来创立一个新的进程。

以下是一个简略的示例:

const{spawn}=require('child_process');
//创立一个新的进程来履行'ls'指令
constls=spawn('ls',['-lh','/usr']);
ls.stdout.on('data',(data)=>{
console.log(`输出:\n${data}`);
});
ls.stderr.on('data',(data)=>{
console.error(`过错:${data}`);
});
ls.on('close',(code)=>{
console.log(`子进程退出,退出码${code}`);
});
  • 在这个示例中,我们运用spawn函数创立了一个新的进程来履行ls指令,
  • 并监听了stdout、stderr和close事情来处理子进程的输出和退出。

多服务器的体系时刻不一致怎么处理

  • 能够运用网络时刻协议(NTP)服务器来同步多服务器的体系时刻。
  • 在Linux体系中,能够运用ntpdate指令来同步时刻。

source与sh履行脚本时有何差异

  • source指令会在当时shell环境中履行脚本,
  • 脚本中的变量和环境变量会影响到当时shell。
  • 而sh指令会启动一个新的shell来履行脚本,
  • 脚本中的变量和环境变量不会影响到当时shell。

怎么列出一切已合并到master的分支并删去

在Git中,能够运用以下指令列出一切已合并到master的分支:

gitbranch--mergedmaster

然后,能够运用以下指令删去这些分支:

gitbranch--mergedmaster|grep-v"\*master"|xargs-n1gitbranch-d

localhost与127.0.0.1有什么差异

  • localhost是一个主机名,一般在体系的hosts文件中映射到IP地址127.0.0.1。
  • 127.0.0.1是IPv4网络协议的环回地址,用于网络软件回环测验。

TCP四次挥手时为什么需求2MSL

  • 在TCP四次挥手进程中,需求等候2MSL(最大报文段生计时刻)以保证最终一个ACK报文能够抵达对方
  • 假如直接封闭,最终一个ACK报文假如丢失,那么就会导致不必要的TCP重传。

简略介绍一下RSA算法

  • RSA是一种非对称加密算法,
  • 首要用于数据加密和数字签名。
  • 它依据一个公钥和一个私钥,
  • 公钥用于加密,私钥用于解密。
  • RSA的安全性依据大数分化的困难性。

什么是CPU缓存,怎么检查缓存命中率

  • CPU缓存是位于CPU和主内存之间的一种高速缓存存储器,
  • 用于存储最近运用的数据和指令,
  • 以削减CPU拜访主内存的时刻。
  • 在Linux体系中,能够运用perf东西检查缓存命中率。

git怎么增加与删去一个submodule

增加一个submodule:

gitsubmoduleadd<repository>[<path>]

删去一个submodule:

  1. 删去.gitmodules文件中的相关条目
  2. 删去.git/config文件中的相关条目
  3. 运转gitrm–cached<path_to_submodule>指令
  4. 删去未跟踪的submodule文件

什么是exitcode

  • exitcode是程序完毕时回来给操作体系的一个值,用于表明程序的运转状况。
  • 一般,0表明成功,非0表明出错。

同一进程的线程同享那些资源

同一进程的线程同享以下资源:

  • 代码段、
  • 数据段、
  • 堆、
  • 文件描述符、
  • 信号处理器、
  • 进程ID和父进程ID等。

助记:数据代码堆栈文件信号ID / 数代堆文信ID

HTTP与TCP中的keep-alive各是什么

  • HTTP的keep-alive是一种耐久衔接,
  • 使得在同一个TCP衔接中能够传输多个HTTP恳求和呼应。
  • TCP的keep-alive是一种机制,用于检测一个TCP衔接是否仍然有效。

什么是原码、补码与反码

  • 原码、补码和反码都是二进制数的表明办法。
  • 原码便是其正常的二进制表明法,
  • 反码是在原码的根底上,符号位不变,其他位取反
  • 补码是在原码的根底上,符号位不变,其他位取反后加1

npm 履行指令传递参数时,为何需求双横线

  • npm履行指令时,双横线后面的参数会被传递给履行的脚本,而不是npm自身。

软链接和硬链接有何差异

  • 硬链接是指向文件的i节点的指针
  • 而软链接(符号链接)是一个特别的文件,其内容是另一个文件的路径。
  • 硬链接不能跨文件体系,不能链接目录。
  • 软链接能够跨文件体系,能够链接目录。