From 32f4f58f381dcedb5e6ec51c6983523cefb1ebd4 Mon Sep 17 00:00:00 2001 From: shzhxh Date: Thu, 14 Nov 2019 17:41:46 +0800 Subject: [PATCH] add some cmds --- Languages/LinuxShell/0file_dir_option.md | 35 +++++++++++++++------- README.md | 0 Software/bash.md | 3 +- Software/builtin命令/set.md | 13 +++++++++ Software/builtin命令/wait.md | 9 +++++- Software/docker.md | 5 +++- Software/nc.md | 37 +++++++++++++++++++++++- Software/netstat.md | 25 ++++++++++++++++ Software/qemu.md | 31 ++++++++++++++++++-- 9 files changed, 141 insertions(+), 17 deletions(-) mode change 100644 => 100755 README.md create mode 100644 Software/builtin命令/set.md create mode 100644 Software/netstat.md diff --git a/Languages/LinuxShell/0file_dir_option.md b/Languages/LinuxShell/0file_dir_option.md index 7c24c38..47af4a6 100644 --- a/Languages/LinuxShell/0file_dir_option.md +++ b/Languages/LinuxShell/0file_dir_option.md @@ -1,17 +1,17 @@ #### 特殊目录: ​ . //当前目录 - .. //上一层目录 - - //上一个目录 - ~ //当前用户的用户目录 - ~a //用户a的用户目录 +​ .. //上一层目录 +​ - //上一个目录 +​ ~ //当前用户的用户目录 +​ ~a //用户a的用户目录 #### 目录操作: ​ cd // change directory - pwd // print working directory - mkdir // make directory - rmdir // remove directory +​ pwd // print working directory +​ mkdir // make directory +​ rmdir // remove directory #### 文件与目录管理: @@ -21,7 +21,7 @@ ​ cat, tac, nl, more, less, head, tail, od, file change file timestamps: - touch +​ touch #### 修改系统隐藏权限: @@ -34,8 +34,8 @@ change file timestamps: #### 文件特殊权限: ​ SUID - SGID - SBIT +​ SGID +​ SBIT #### 命令与文件搜寻: @@ -50,12 +50,27 @@ change file timestamps: ##### 基本用法 1. `<`重定向输入 + 2. `>`重定向输出 + 3. `>!`如果存在则覆盖 + 4. `>&`屏幕输出的所有信息都放在指定文件中 + 5. `>>`追加到文件中 + 6. `>>&`屏幕上的信息追加到文件中 +7. `<<`将两个delimiter之间的document作为输入传递给command + + ``` + command << delimiter + document + delimiter + ``` + + + ##### 用法示例 ```shell diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/Software/bash.md b/Software/bash.md index 5fb1f79..4e110ab 100644 --- a/Software/bash.md +++ b/Software/bash.md @@ -5,8 +5,7 @@ bash [options] [cmd | file] #### 选项 ``` --e --x +# 对于[abCefhimnuvx]和[-o options]选项请参考set命令 ``` diff --git a/Software/builtin命令/set.md b/Software/builtin命令/set.md new file mode 100644 index 0000000..41d1d32 --- /dev/null +++ b/Software/builtin命令/set.md @@ -0,0 +1,13 @@ +``` +set [options] [-o option-name] [--] [args] # 对于shell选项和位置参数的值,进行设置或取消设置 +``` + +#### 选项 + +``` +-e # 如果命令返回非零值则立即退出 +-o option-name # 设置与选项名对应的变量,详见"help set" +-u # 当替换的时候把未设置的变量视为错误 +-x # 当命令执行的时候把它打印出来 +``` + diff --git a/Software/builtin命令/wait.md b/Software/builtin命令/wait.md index cdaa728..7c20c84 100644 --- a/Software/builtin命令/wait.md +++ b/Software/builtin命令/wait.md @@ -1,4 +1,11 @@ ``` -wait [-n] [id ...] # +wait [-fn] [id ...] # 等待作业完成,并返回其退出状态。如不指定id,则会等待所有子进程执行完毕。 + +id: 进程号或作业号 + -n # 等待下一个任务完成,并返回其退出状态。 + -f # 等待指定的id终结,而不是等待它改变状态。 +# 返回状态 + # 最后一个任务的返回状态;如果是无效任务或无效选项则返回错误 + ``` diff --git a/Software/docker.md b/Software/docker.md index 64c7be6..c642953 100644 --- a/Software/docker.md +++ b/Software/docker.md @@ -5,7 +5,10 @@ Docker镜像和容器命令行接口(CLI)。是通过CLI与daemon交互的,共 #### 安装 ``` -sudo apt-get remove docker docker-engine docker.io # 卸载旧版本 +# 方法一:从系统仓库安装 +sudo apt-get install docker docker-engine docker.io + +# 方法二:从第三方仓库安装 sudo apt-get install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88 diff --git a/Software/nc.md b/Software/nc.md index 02e922d..13b84ed 100644 --- a/Software/nc.md +++ b/Software/nc.md @@ -1,11 +1,46 @@ -简单聊天工具: +#### 安装 + +``` +pacman -Ss netcat +``` + +#### 用法 + +``` +nc [options] [destination] [port] # TCP和UDP的连接与侦听 +``` + +#### 选项 + +``` +-l # 监听一个连接,而不是初始化到远程机器的连接。 +-w timeout # 设置等待连线的时间为timeout秒 +``` + + + +#### 示例 + +简单聊天工具 + +``` nc -l 1234 //一台机器上监听1234端口 nc remote_ip 1234 //另一台机器连接到监听了1234端口的机器 //输入ctrl+D可以结束对话 +``` + 端口扫描: + +``` nc -zv -w 2 remote_ip 20-30 //扫描对方机器的20-30端口是否开放,可以用-w指定超时时间 +``` + + + 数据传输: +``` nc -l 1234 > filename.out //一台机器 nc remote_ip 1234 < filename.in //另一台机器 开启本机端口 nc -p 1234 -w 5 remote_ip 42 //开启本机1234端口,连接到对方42端口,时延5秒 +``` \ No newline at end of file diff --git a/Software/netstat.md b/Software/netstat.md new file mode 100644 index 0000000..84900d8 --- /dev/null +++ b/Software/netstat.md @@ -0,0 +1,25 @@ +#### 选项 + +``` +-r +-i +-g +-s +-M + +-v +-W +-n +-N +-e +-p, --programs # 显示PID/程序名 +-o +-c + +-l, --listening # 仅列出在监听的服务状态 +-a +-F +-C +-Z +``` + diff --git a/Software/qemu.md b/Software/qemu.md index b548b46..0cee119 100644 --- a/Software/qemu.md +++ b/Software/qemu.md @@ -87,12 +87,18 @@ qemu-system-riscv64 [options] [disk_image] -display -nographic # 禁用图形输出并将串行I/O重定向到控制台 -vga TYPE # 模拟VGA显卡,可选的TYPE有cirrus, std, vmware, qxl, tcx, cg3, virtio, none + cirrus :GD5446显卡。Windows系统从win95之后都能识别和使用此显卡。为qemu 2.2之前的默认显卡。 + std :标准VGA显卡。为qemu 2.2之后的默认显卡。 +-vnc display[,options] # 使用此选项,可以让qemu把vga显示重定向到vnc显示:。 + host:d # 只允许主机host通过端口d进行tcp连接。d是vnc端口,实际的tcp端口一般是5900+d。host可以省略,此时允许所有主机的连接。 ``` ##### 网络选项 ``` -netdev user,id=str[,...] # 设置宿主网络为用户模式,这样就不需要超级用户的权限了。 + hostfwd=[tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport + # 把主机端口hostport重定向到客户机端口guestport -netdev tap,id=str[,...] # 设置宿主网络为tap模式 -netdev bridge,id=str[,...] -netdev l2tpv3,id=str,... @@ -258,7 +264,7 @@ PLIC是平台级中断控制器。SiFive PLIC对全局中断进行优先级划 ##### 语法 ``` -qemu-img [standard options] command [command options] +qemu-img [standard options] [command options] # 管理镜像 ``` ##### 标准选项 @@ -280,7 +286,7 @@ check # 对磁盘镜像文件进行一致性检查 commit compare convert # 转化镜像的格式 -create [-q] [--object objectdef] [-f fmt] [-b backing_file] [-F backing_fmt] [-u] [-o options] filename [size] # 创建镜像文件 +create [-f fmt] [-b backing_file] [-F backing_fmt] [-u] [-o options] [size] # 创建镜像文件 dd info # 查看镜像的信息 map @@ -304,6 +310,14 @@ output_filename output_fmt -q # 静默模式。不打印任何输出。 -u # 允许不安全的backing链。 + +# snapshot子命令 + +# compare子命令 + +# convert子命令 + +# dd子命令 ``` ##### 镜像文件的格式 @@ -314,5 +328,18 @@ qcow2 other:包括VMDK, VDI, VHD (vpc), VHDX, qcow1 and QED ``` +#### 问题的解决 +##### 问题一 +问题描述: + +- 安装好系统的镜像文件,启动的时候黑屏无反应。 + +解决方法: + +- 加上`-enable-kvm`选项 + +原因分析: + +- 不开kvm硬件加速的情况下,可能cpu执行慢或代码进入了某种死循环中。 \ No newline at end of file