add some linux cmds

This commit is contained in:
shzhxh 2019-11-11 17:10:16 +08:00
parent 3380ba709c
commit 8410a97ba7
10 changed files with 301 additions and 96 deletions

View File

@ -51,7 +51,21 @@ $ # 变量参数
>> # 追加
```
#### 条件表达式
```
# 文件比较
-f文件存在, -d目录存在, -e,文件或目录存在,-s文件存在且非空, -r文件存在且可读, -w, -x
# 字符串比较
==, =, !=, < , >, -n字符串非空, -z字符串为空
# 数字比较
-eq, -ne, -lt, -le, -gt, -ge
# 逻辑运算
-a且-o或&&且, ||或
```
#### 条件控制

View File

@ -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`

17
Software/bash.md Normal file
View File

@ -0,0 +1,17 @@
```
bash [options] [cmd | file]
```
#### 选项
```
-e
-x
```
#### 参考资料
1. [bash手册](http://www.gnu.org/software/bash/manual/bash.html)
2. `man bash`

View File

@ -0,0 +1,4 @@
```
eval [args] # 把args作为shell命令来执行。与直接执行args不同的是eval会把args里的变量解析出来。
```

View File

@ -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 <cmd> # 管理docker的配置
# 命令:
create # 创建配置
inspect # 显示配置信息
ls # 列出配置
rm # 删除配置
```
##### container
```
docker container <cmd> # 管理容器
# 命令
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 <cmd> # 管理镜像
# 命令可用docker image <cmd> --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] <image> [cmd] [args] # 创建容器。实际上是为指定的镜像添加了一个可读写层。
# 选项
-i, --interactive # 保持STDIN开启
--name <string> # 给容器分配一个名字
-t, --tty # 分配伪TTY
-v, --volume list # 本地目录挂载到容器里
```
##### load
```
docker load [options] # 从tar文件或STDIN装载镜像
# 选项
-i, --input <file> # 读取tar文件(默认STDIN)
-q, --quiet # 静默模式
```
##### rm
```
docker rm [options] <containers> # 删除容器
# 选项
-f, --force # 强制删除运行着的容器
-l, --link # 删除指定链接(link)
-v, --volumes # 删除与容器相关的卷(volumes)
```
##### save
```
docker save [options] <images> # 把镜像保存为tar文件
# 选项
-o, --output <file> # 输出到文件(默认STDOUT)
```
##### start
```
docker start [options] <containers> # 启动一个或多个已停止的容器。
-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
```

21
Software/jq.md Normal file
View File

@ -0,0 +1,21 @@
```
jq [options] <filter> [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)

View File

@ -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] 端口号
```

View File

@ -21,4 +21,15 @@
```
sudo apt install ubuntu-desktop # install unity
sudo apt install xxxx:i386 # 安装软件包并指定其架构为i386
```
```
#### 解决错误
##### Failed to fetch
```
# 错误提示:安装 libssl-dev的时候提示Failed to fetch http://security.ubuntu.com ...
# 解决方法先运行apt update再安装
# 原因分析可能是包对应的网址修改了所以需要apt update更新数据库
```

View File

@ -9,45 +9,42 @@ pacman <operation> [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 <operation> [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 <file> # 查找指定文件所归属的软件包
-q
-s # 从本地软件包寻找满足正则表达式的结果
-t
-u
```
##### 删除选项(-R)
```
-c
-n
-s # 递归删除
-u
```
##### 同步选项(-S)
```
-c
-g
-i
@ -92,11 +105,19 @@ pacman <operation> [options] [targets]
-u # 升级所有的软件包
-w
-y # 从pacman.conf定义的服务器上下载主数据库的新副本
```
##### 数据库选项(-D)
```
--asdeps
--asexplicit
-k
```
##### 文件选项(-F)
```
-y
-l
-s # 查询包文件名
@ -104,16 +125,18 @@ pacman <operation> [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 <pkg> # 本地安装软件包
pacman -Syu # 更新并升级
pacman -Qs glibc # 查询满足glibc的本地安装包
pacman -Qo /usr/lib/libm.a # 查询文件libm.a所归属的软件包
pacman -S --help # 查询安装软件包的方法

View File

@ -5,6 +5,6 @@ dirname [option] <names> # 给出name所在的目录。如name不包含'/',则
选项
```
-z, --zero # 输出结果在行尾不换行,默认在行尾是换行的
-z, --zero # 输出结果在行尾不换行(默认在行尾是换行的)
```