diff --git a/OS/Linux/系统调用接口.md b/OS/Linux/系统调用接口.md index ecbd438..cc18038 100644 --- a/OS/Linux/系统调用接口.md +++ b/OS/Linux/系统调用接口.md @@ -8,18 +8,46 @@ 关闭文件描述符 +#### chdir, fchdir + +切换工作目录 + +#### chmod, fchmod, fchmodat + +改变文件的权限 + +#### chown, fchown, lchown, fchownat + +改变文件的属主 + +#### chroot + +切换根目录 + #### dup, dup2, dup3 复制文件描述符 +#### fallocate + +为文件分配磁盘空间 + #### fcntl 管理文件描述符 +#### fsync, fdatasync + + 把文件的内核状态同步到存储设备 + #### getcwd, getwd, get_current_dir_name 获取当前工作目录 +#### getdents, getdents64 + +获取目录的条目 + #### ioctl 控制设备 @@ -47,28 +75,108 @@ int ioctl(int fd, unsigned long request, ...); 重新定位读/写文件的位移 +#### link, linkat + +创建到文件的链接 + +#### mkdir, mkdirat + +创建目录 + +#### mknod, mknotat + +创建文件,这个文件即可以是普通文件也可以特殊文件。 + +#### mount + +挂载文件系统 + #### open, openat, creat 打开或创建文件 +#### pivot_root + +切换根文件系统 + +#### poll, ppoll + +等待一个文件描述符上的事件 + +#### pread, pwrite + +从给定位移读取或写入文件 + #### read 从文件描述符读 +#### readlink, readlinkat + +读取一个符号链接的值 + +#### readv, writev, preadv, pwritev, preadv2, pwritev2 + +向多个缓冲区读写数据 + +#### rename, renameat, renameat2 + +改变文件的名称或位置 + +#### select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO + +同步I/O多路复用 + +#### sendfile + +在文件描述符之间传递数据 + #### stat,fstat,lstat,fstatat 获取文件状态 +#### statfs, fstatfs + +获取文件状态 + +#### symlink, symlinkat + +创建到文件的链接 + +#### sync, syncfs + +把文件系统缓存提交到磁盘。 + +#### truncate, ftruncate + +将文件截断为指定长度 + +#### unlink,unlinkat + +删除到文件的链接 + #### umask 设置文件模式的掩码 +#### umount, umount2 + +解除挂载 + +#### utimensat, futimens + +把文件时间戳精度提高到纳秒级 + ### 进程 #### arch_prctl 设置特定架构的线程状态 +#### capget, capset + +设置、获取线程的capability + #### clone, __clone2 创建子进程 @@ -90,6 +198,18 @@ int clone(int (*fn)(void *), void *child_stack, int flags, void *arg, ...); 执行程序 +#### _exit, _EXIT + +结束进程 + +#### exit_group + +结束一个进程里的所有线程 + +#### futex + +快速的用户空间锁定 + #### getgid, getegid 获得调用进程的组ID @@ -110,6 +230,10 @@ int clone(int (*fn)(void *), void *child_stack, int flags, void *arg, ...); 获取、设置调度优先级 +#### getrlimit, setrlimit, prlimit + +获取、设置对资源的限制 + #### getresuid, getresgid 获取真实(r)有效(e)已保存的(s)用户ID、组ID @@ -118,6 +242,10 @@ int clone(int (*fn)(void *), void *child_stack, int flags, void *arg, ...); 获取会话(session)ID +#### gettid + +获得线程ID + #### getuid, geteuid 获得调用进程的用户ID @@ -126,10 +254,30 @@ int clone(int (*fn)(void *), void *child_stack, int flags, void *arg, ...); 创建管道 +#### personality + +设置进程的执行域 + #### prctl 对进程的操作 +#### semctl + +控制信号量。 + +#### semget + +获取一个信号量。 + +#### semop, semtimedop + +改变信号量的值 + +#### setns + +把线程连接到一个namespace + #### setgid 设置组ID @@ -166,10 +314,26 @@ int clone(int (*fn)(void *), void *child_stack, int flags, void *arg, ...); 让出处理器 +#### shmat, shmdt + +把共享内存连接(attach)到当前进程,或把它从当前进程分离(dettach)出去。 + +#### shmctl + +控制共享内存。 + +#### shmget + +创建共享内存(用于进程间通信)。 + #### times 获取进程相关的一些时间 +#### unshare + +分离进程执行上下文 + #### wait, waitpid, waitid 等待子进程状态改变 @@ -228,6 +392,10 @@ BSD风格的wait 改变数据段的大小 +#### madvise + +给出对使用内存的建议 + #### mmap,munmap 把文件或设备映射(或取消映射)到内存 @@ -236,6 +404,14 @@ BSD风格的wait 设置对一个内存区域的保护 +#### mremap + +重新映射虚拟内存 + +#### swapon, swapoff + +开始、停止交换到文件或设备 + ### 信号 #### kill @@ -272,6 +448,10 @@ BSD风格的wait ### 计时器 +#### clock_adjtime + +riscv64下的系统调用号266,未找到定义。 + #### clock_getres, clock_gettime, clock_settime 时钟和时间的函数 @@ -302,14 +482,54 @@ struct timeval { ### 网络 +#### accept, accept4 + +接受到一个socket的连接。 + +#### bind + +给socket绑定一个名字 + #### connect 在socket上发起一个连接 +#### getpeername + +获取对方socket的名字 + +#### getsockname + +获取socket名称 + +#### getsockopt, setsockopt + +获取或设置socket上的操作 + +#### listen + +监听到一个socket上的连接 + +#### recv, recvfrom, recvmsg + +接收从socket来的消息 + +#### send, sendto, sendmsg + +向socket发信息 + +#### shutdown + +关闭全双工连接的一部分 + #### socket 创建通信的端点 +#### socketpair + +创建一对儿相互连接的socket + ### 其它 #### gethostname, sethostname diff --git a/Software/bash.md b/Software/bash.md index 4e110ab..e470bc0 100644 --- a/Software/bash.md +++ b/Software/bash.md @@ -1,11 +1,16 @@ -``` -bash [options] [cmd | file] +```bash +bash [options] [cmd | file] # 从标准输入读取cmd以执行命令,或从文件file读取命令以执行之。 ``` #### 选项 -``` +```bash # 对于[abCefhimnuvx]和[-o options]选项请参考set命令 + +# 单字符选项 +-x # 打印要执行的命令 + +# 多字符选项 ``` diff --git a/Software/builtin命令/_square_bracket.md b/Software/builtin命令/_square_bracket.md new file mode 100644 index 0000000..d3c00b0 --- /dev/null +++ b/Software/builtin命令/_square_bracket.md @@ -0,0 +1,4 @@ +``` +[ args ] # 计算条件表达式。它和内置命令test是同义词,只是后面要跟一个"]",以匹配开头的"["。 +``` + diff --git a/Software/builtin命令/test.md b/Software/builtin命令/test.md new file mode 100644 index 0000000..7bba064 --- /dev/null +++ b/Software/builtin命令/test.md @@ -0,0 +1,15 @@ +```bash +test [expr] # 计算条件表达式。依据条件表达式的值返回0(代表true)或1(代表false). +``` + +#### 文件操作符 + +```bash +-a # 文件存在则真。 +``` + + + +#### 字符串操作符 + +#### 其它操作符 \ No newline at end of file diff --git a/Software/curl.md b/Software/curl.md index 156811f..ea29454 100644 --- a/Software/curl.md +++ b/Software/curl.md @@ -15,6 +15,8 @@ Client URL,用来请求web服务器,是一个上传下载工具。 -o, --output # 默认是输出到标准输出,使用此选项则输出的文件file。 --trace # 将详细信息输出到file,将得到比-v选项更详细的信息。 --trace-ascii # 类似于--trace选项,但会放弃二进制信息仅输出ascii信息。 +-s, --silent # 静默模式。 +-S, --show-error # 与-s联用,当产生错误时会显示出错信息。 -v, --verbose # 显示一次http通信的整个过程。 ``` diff --git a/Software/vim.md b/Software/vim.md index 788db9f..4140ea4 100644 --- a/Software/vim.md +++ b/Software/vim.md @@ -110,6 +110,19 @@ V # 选择,以行为单位 :g/someword/d //删除所有包含someword的行 ``` +##### 缩进 + +```bash +# normal模式 +>> # 增加缩进 +<< # 减少缩进 +# 命令模式 +:10,100> # 10~100行增加缩进 +:20,80< # 20~80行减少缩进 +# visual模式 +6> # 缩进6次 +``` + ##### 撤销 diff --git a/Software/wget.md b/Software/wget.md index 55a6b6c..f0ef139 100644 --- a/Software/wget.md +++ b/Software/wget.md @@ -10,6 +10,16 @@ wget [option] [url] ##### 基本启动 +```bash +-e ,--execute # 执行可以定义在文件.wgetrc里的命令。 + # 可能的cmd(详见"info wget"第6.3章: Wgetrc Commands) + # http_proxy = # 使用STRING作为HTTP代理 + # https_proxy = # 使用STR作为HTTP代理 + # use_proxy = # 是否使用代理 +``` + + + ##### 日志和输入文件 ``` diff --git a/Software/文件管理/pwd.md b/Software/文件管理/pwd.md index 6bb9db2..38faeaf 100644 --- a/Software/文件管理/pwd.md +++ b/Software/文件管理/pwd.md @@ -2,3 +2,10 @@ pwd [-LP] # 打印当前工作目录 ``` +#### 选项 + +```bash +-L # 打印出$PWD的值。pwd默认使用此参数。 +-P # 打印物理目录。不包括任何符号链接。 +``` + diff --git a/Software/文本转换/uniq.md b/Software/文本转换/uniq.md index f93c2a4..f20d7b6 100644 --- a/Software/文本转换/uniq.md +++ b/Software/文本转换/uniq.md @@ -1,5 +1,5 @@ ``` uniq [options] [input [output]] # 过滤input中的重复行,输出到output - # 注:一般与sort命令连用,选排序,再过滤 + # 注:一般与sort命令连用,先排序,再过滤 ``` diff --git a/Software/网络管理/ip.md b/Software/网络管理/ip.md index 2637205..6e24a2e 100644 --- a/Software/网络管理/ip.md +++ b/Software/网络管理/ip.md @@ -16,6 +16,15 @@ address # 设备的IP地址 addrlabel # 用于IP地址选项的标签配置 l2tp # 通过IP的以太网隧道 link # 网络设备 + # 可用命令 + # add [options] + # delete [options] + # set {DEVICE | dev DEVICE | group DEVGROUP} + # [up | down] + # show [options] + # xstats [options] + # afstats [dev DEVICE] + # help [TYPE] maddress # 多播地址 macsec # MACsec设备配置 monitor # 查找netlink消息 @@ -30,12 +39,28 @@ tcp_metrics # 管理tcp metrics token # 管理tokenized接口标识 tunnel # 通过IP的隧道 tuntap # 管理tun/tap的设备 + # 可用命令 + # add, del, show, list, lst, help + # 可用选项 + # dev + # mod + # user + # group + # one_queue + # pi + # vnet_hdr + # multi_queue + # name xfrm # 管理IPSec策略 ``` #### 选项 ``` - +-b, --batch # 从文件filename中读取命令 +--force # 在batch模式下即使发生错误也不终止命令,只是返回一个非0的错误码。 ``` +#### 命令 + +可以使用的命令取决于所操作的实体。常见的命令有`add, del, show, list`。可以使用`ip <实体> help`来获取一个实体的可用命令。