diff --git a/Languages/LinuxShell/0shell-programming.md b/Languages/LinuxShell/0shell-programming.md index 8872c4e..602f50b 100644 --- a/Languages/LinuxShell/0shell-programming.md +++ b/Languages/LinuxShell/0shell-programming.md @@ -51,7 +51,21 @@ $ # 变量参数 >> # 追加 ``` +#### 条件表达式 +``` +# 文件比较 +-f文件存在, -d目录存在, -e,文件或目录存在,-s文件存在且非空, -r文件存在且可读, -w, -x + +# 字符串比较 +==, =, !=, < , >, -n字符串非空, -z字符串为空 + +# 数字比较 +-eq, -ne, -lt, -le, -gt, -ge + +# 逻辑运算 +-a且,-o或,&&且, ||或 +``` #### 条件控制 diff --git a/Languages/LinuxShell/bash.md b/Languages/LinuxShell/bash.md deleted file mode 100644 index 6a66053..0000000 --- a/Languages/LinuxShell/bash.md +++ /dev/null @@ -1,20 +0,0 @@ -#### 条件表达式 - -``` -# 文件比较 --f文件存在, -d目录存在, -e,文件或目录存在,-s文件存在且非空, -r文件存在且可读, -w, -x - -# 字符串比较 -==, =, !=, < , >, -n字符串非空, -z字符串为空 - -# 数字比较 --eq, -ne, -lt, -le, -gt, -ge - -# 逻辑运算 --a且,-o或,&&且, ||或 -``` - -#### 参考资料 - -1. [bash手册](http://www.gnu.org/software/bash/manual/bash.html) -2. `man bash` \ No newline at end of file diff --git a/Software/bash.md b/Software/bash.md new file mode 100644 index 0000000..5fb1f79 --- /dev/null +++ b/Software/bash.md @@ -0,0 +1,17 @@ +``` +bash [options] [cmd | file] +``` + +#### 选项 + +``` +-e +-x +``` + + + +#### 参考资料 + +1. [bash手册](http://www.gnu.org/software/bash/manual/bash.html) +2. `man bash` \ No newline at end of file diff --git a/Software/builtin命令/eval.md b/Software/builtin命令/eval.md new file mode 100644 index 0000000..175c8c1 --- /dev/null +++ b/Software/builtin命令/eval.md @@ -0,0 +1,4 @@ +``` +eval [args] # 把args作为shell命令来执行。与直接执行args不同的是,eval会把args里的变量解析出来。 +``` + diff --git a/Software/docker.md b/Software/docker.md index b3d4e4f..64c7be6 100644 --- a/Software/docker.md +++ b/Software/docker.md @@ -47,10 +47,7 @@ docker [--help|-v|--version] ``` builder # Manage builds -config # Manage Docker configs -container # Manage containers engine # Manage the docker engine -image # Manage images network # Manage networks node # Manage Swarm nodes plugin # Manage plugins @@ -65,8 +62,115 @@ volume # Manage volumes +##### config + +``` +docker config # 管理docker的配置 +# 命令: + create # 创建配置 + inspect # 显示配置信息 + ls # 列出配置 + rm # 删除配置 +``` + + + +##### container + +``` +docker container # 管理容器 +# 命令 + attach + commit + cp + create # 详见docker create + diff + exec + export + inspect + kill + logs + ls + pause + port + prune + rename + restart + rm + run + start + status + stop + top + unpause + update + wait +``` + + + +##### image + +``` +docker image # 管理镜像 +# 命令,可用docker image --help获取详情 + build + history + import + inspect + load + ls # 列出镜像 + prune + pull # 把镜像拉到本地 + push # + rm # 删除镜像 + save + tag +``` + + + #### 命令 +``` +build # 从Dockerfile创建一个镜像。 +commit # 从容器创建一个镜像。 +cp +diff +events +exec # 在运行的容器中执行一个命令。 + -i, --interactive # 始终保持STDIN打开,即使没有附加 + -t, --tty # 分配一个伪TTY +export # 将一个容器文件系统输出为压缩文件。 +history # 查看某个镜像下的所有层。 +import +info +inspect # 返回docker对象的底层信息。 +kill # 杀死一个或多个运行中的容器。 +login +logout +logs +pause # 暂停一个或多个容器中的进程。 +port +ps # 列出所有运行着的容器。加-a则列出所有的容器。 +pull +push +rename +restart # 重启容器。 +rmi # 移除一个或多个镜像(最顶层)。可以使用-f来删除中间的只读层。 +run # 相当于create + start +search +stats +stop # 停止一个或多个运行中的容器。 +tag +top +unpause +version +wait +``` + + + ##### attach ``` @@ -78,49 +182,66 @@ docker attach [options] CONTAINER # 连接到运行中的容器 --sig-proxy ``` - +##### create ``` -build # 从Dockerfile创建一个镜像。 -commit # 从容器创建一个镜像。 -cp -create # 创建容器。实际上是为指定的镜像添加了一个可读写层。 -diff -events -exec # 在运行的容器中执行一个命令。 - -i, --interactive # 始终保持STDIN打开,即使没有附加 - -t, --tty # 分配一个伪TTY -export # 将一个容器文件系统输出为压缩文件。 -history # 查看某个镜像下的所有层。 -images # 列出所有的顶层镜像。加-a则列出所有的镜像。 -import -info -inspect # 返回docker对象的底层信息。 -kill # 杀死一个或多个运行中的容器。 -load -login -logout -logs -pause # 暂停一个或多个容器中的进程。 -port -ps # 列出所有运行着的容器。加-a则列出所有的容器。 -pull -push -rename -restart # 重启容器。 -rm # 移除一个或多个容器。 -rmi # 移除一个或多个镜像(最顶层)。可以使用-f来删除中间的只读层。 -run # 相当于create + start -save # 将一个或多个镜像写到一个压缩文件里 -search -start # 启动一个或多个已停止的容器。 +docker create [options] [cmd] [args] # 创建容器。实际上是为指定的镜像添加了一个可读写层。 + +# 选项 + -i, --interactive # 保持STDIN开启 + --name # 给容器分配一个名字 + -t, --tty # 分配伪TTY + -v, --volume list # 本地目录挂载到容器里 +``` + +##### load + +``` +docker load [options] # 从tar文件或STDIN装载镜像 + +# 选项 + -i, --input # 读取tar文件(默认STDIN) + -q, --quiet # 静默模式 +``` + +##### rm + +``` +docker rm [options] # 删除容器 +# 选项 + -f, --force # 强制删除运行着的容器 + -l, --link # 删除指定链接(link) + -v, --volumes # 删除与容器相关的卷(volumes) +``` + +##### save + +``` +docker save [options] # 把镜像保存为tar文件 +# 选项 + -o, --output # 输出到文件(默认STDOUT) +``` + +##### start + +``` +docker start [options] # 启动一个或多个已停止的容器。 -a, --attach # 附加STDIN/STDERR和forward信号 -i, --interactive # 附加容器的STDIN -stats -stop # 停止一个或多个运行中的容器。 -tag -top -unpause -version -wait ``` + + + +#### 使用示例 + +``` +# 使用前准备 +sudo usermod -aG docker $USER +sudo systemctl start docker + +docker save -o oto8.tar oto_repo # 把docker镜像oto_repo保存为oto8.tar +docker load -i oto8.tar # 从oto8.tar载入镜像 +docker create -it --name szx-8.1 -v /data/data:/root/szx oto_repo bash # 从镜像oto_repo创建容器szx-8.1 + +``` + diff --git a/Software/jq.md b/Software/jq.md new file mode 100644 index 0000000..40f9c35 --- /dev/null +++ b/Software/jq.md @@ -0,0 +1,21 @@ +``` +jq [options] [files] # 处理json +``` + +#### filters + +``` +. # 不加修改地把输入复制到输出 +``` + +#### 选项 + +``` +--arg a v # 将变量$a的值设为v +-r # 输出原始字符串(如不加此选项,默认输出json文本) +-s # 把所有输入都读到数组里,并把filter作用于此数组 +``` + +#### 参考 + +[jq 的使用介绍](https://www.ibm.com/developerworks/cn/linux/1612_chengg_jq/index.html) \ No newline at end of file diff --git a/Software/lsof.md b/Software/lsof.md index d020742..32b7ea4 100644 --- a/Software/lsof.md +++ b/Software/lsof.md @@ -1,4 +1,18 @@ ``` -lsof # 列出打开的文件 +lsof [options] [--] [names] # 列出打开的文件 +``` + +#### 选项 + +``` +-i [i] # 列出网址满足[i]的文件。 + # [i]的格式如下: + # [46] [protocol] [@hostname | hostaddr] [:service | port] + # [46] 用来指定IP协议的版本 + # [protocol] 用来指定协议名(TCP或UDP) + # [hostname] 主机名 + # [hostaddr] 主机地址 + # [service] 是/etc/services里的名称之一 + # [port] 端口号 ``` diff --git a/Software/包管理/apt.md b/Software/包管理/apt.md index d0e61ec..6cfb880 100644 --- a/Software/包管理/apt.md +++ b/Software/包管理/apt.md @@ -21,4 +21,15 @@ ``` sudo apt install ubuntu-desktop # install unity sudo apt install xxxx:i386 # 安装软件包并指定其架构为i386 -``` \ No newline at end of file +``` + +#### 解决错误 + +##### Failed to fetch + +``` +# 错误提示:安装 libssl-dev的时候提示:Failed to fetch http://security.ubuntu.com ... +# 解决方法:先运行apt update,再安装 +# 原因分析:可能是包对应的网址修改了,所以需要apt update更新数据库 +``` + diff --git a/Software/包管理/pacman.md b/Software/包管理/pacman.md index c5a71c6..6cf11bd 100644 --- a/Software/包管理/pacman.md +++ b/Software/包管理/pacman.md @@ -9,45 +9,42 @@ pacman [options] [targets] ``` #### 操作 --D # 操作软件包的数据库。 --Q # 查询软件包数据库。 --R # 删除软件包 --S # 同步软件包 --T # 检查依赖。**此操作没有选项**。 --U # 更新或添加软件包 --F # 查询文件数据库 --V # 显示版本信息 --h # 显示帮助信息 + +``` +-D,--database # 操作软件包的数据库。 +-Q,--query # 查询软件包数据库。 +-R,--remove # 删除软件包 +-S,--sync # 同步软件包 +-T,--deptest # 检查依赖。**此操作没有选项**。 +-U,--upgrade # 更新或添加软件包 +-F,--files # 查询文件数据库 +-V,--version # 显示版本信息 +-h,--help # 显示帮助信息 +``` #### 选项 ##### 一般选项 --b # --r # --v # - +``` +-b +-r +-v --arch - --cachedir - --color - --config - --debug - --gpgdir - --hookdir - --logfile - --noconfirm - --confirm +``` ##### 事物选项(-S,-R,-U) + +``` -d --assum-installed --dbonly @@ -55,34 +52,50 @@ pacman [options] [targets] --noscriptlet -p --print-format +``` + ##### 升级选项(-S, -U) + +``` --force --asdeps --asexplicit --ignore --ignoregroup --needed +``` + ##### 查询选项(-Q) + +``` -c -d -e -g --i +-i,--info # 查看软件包的信息 -k --l +-l,--list # 列出要查询的软件包所包含的文件 -m -n --o # 查找指定文件所归属的软件包 +-o,--owns # 查找指定文件所归属的软件包 -q -s # 从本地软件包寻找满足正则表达式的结果 -t -u +``` + ##### 删除选项(-R) + +``` -c -n -s # 递归删除 -u +``` + ##### 同步选项(-S) + +``` -c -g -i @@ -92,11 +105,19 @@ pacman [options] [targets] -u # 升级所有的软件包 -w -y # 从pacman.conf定义的服务器上下载主数据库的新副本 +``` + ##### 数据库选项(-D) + +``` --asdeps --asexplicit -k +``` + ##### 文件选项(-F) + +``` -y -l -s # 查询包文件名 @@ -104,16 +125,18 @@ pacman [options] [targets] -o -q --machinereadable +``` + #### 管理配置文件 #### 使用示例 ```bash -pacman -Ss glibc # 从远程仓库中查询glibc -pacman -S python # 安装python -pacman -U # 本地安装软件包 -pacman -Syu # 更新并升级 +pacman -Ss glibc # 从软件包数据库中查询glibc +pacman -S python # 下载并安装python +pacman -U # 本地安装软件包 +pacman -Syu # 更新并升级 pacman -Qs glibc # 查询满足glibc的本地安装包 pacman -Qo /usr/lib/libm.a # 查询文件libm.a所归属的软件包 pacman -S --help # 查询安装软件包的方法 diff --git a/Software/文件管理/dirname.md b/Software/文件管理/dirname.md index 0f8b1f9..4ca15d4 100644 --- a/Software/文件管理/dirname.md +++ b/Software/文件管理/dirname.md @@ -5,6 +5,6 @@ dirname [option] # 给出name所在的目录。如name不包含'/',则 选项 ``` --z, --zero # 输出结果在行尾不换行,默认在行尾是换行的 +-z, --zero # 输出结果在行尾不换行(默认在行尾是换行的) ```