Linux、Docker、Brew、Nginx常用命令
- Linux
- vi编辑器
- 文件操作
- 文件夹操作
- 磁盘操作
- Docker
- Brew
- Nginx
- 参考
Linux
vi编辑器
Vi有三种模式。命令模式、输入模式、尾行模式,简单的关系如下:
i -- 切换到输入模式,在光标当前位置开始输入文本。(常用)
a -- 进入插入模式,在光标下一个位置开始输入文本。
o:在当前行的下方插入一个新行,并进入插入模式。
O -- 在当前行的上方插入一个新行,并进入插入模式。
dd -- 剪切当前行。
ndd--剪切n行
yy -- 复制当前行。
nyy--复制n行
p(小写) -- 粘贴剪贴板内容到光标下方。
P(大写)-- 粘贴剪贴板内容到光标上方。
u -- 撤销上一次操作。
Ctrl + r -- 重做上一次撤销的操作。
: -- 切换到底线命令模式,以在最底一行输入命令。
:w -- 保存文件。(常用)
:q -- 退出 Vim 编辑器。(常用)
:q! -- 强制退出Vim 编辑器,不保存修改。(常用)
其它常用命令:
h 或 ←(方向左键)--光标向左移动一个字符
j 或 ↓(方向下键) --光标向下移动一个字符
k 或 ↑(方向上键)-- 光标向上移动一个字符
l 或 →(方向右键)-- 光标向右移动一个字符
Ctrl + f --屏幕向下移动一页(Forward,向前,即阅读方向)
Ctrl + b --屏幕向上移动一页(Back,往回,前文)
Ctrl + d --屏幕向下移动半页(Down,向下)
Ctrl + u --屏幕向上移动半页(Up,向上)
0 或^或功能键[Home]-- 这是数字『 0 』--移动到这一行的最前面字符处 (常用)
$ 或功能键[End] --移动到这一行的最后面字符处(常用)
G-- 光标移动至文档最后一行
nG--n为数字。移动到这个档案的第 n 行。例如 20G 会移动到这个档案的第 20 行
gg --光标移动至文档第一行,相当于 1G
n<Enter> --n 为数字。光标向下移动 n 行(常用)
:set nu --显示行号
/target --向光标当前位置以下寻找字符串target。
?target --向光标当前位置以上寻找字符串target。
n--重复前一个搜索动作,比如使用/target搜索时,
按下n表示继续向后搜索下一个字符串target。
若执行的是?target,则按下n表示继续向前搜索
下一个字符串target。
N-- 反向执行前一个搜索动作,与n的搜索方向相反。
:m,ns/word1/word2/g--m: 起始行, n: 终止行;在第m行和第n行之间搜索字符串word1,并将找到的word1替换成word2。
例:将10到20行的geek替换成hour::10,20s/geek/hour/g
:1,$s/word1/word2/g 或 :%s/word1/word2/g--从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)
:1,$s/word1/word2/gc 或 :%s/word1/word2/gc--从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)
附一张vi键盘图,有需要可以了解
文件操作
cat 由第一行开始显示文件内容
-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-E :将结尾的断行字节 $ 显示出来;
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
tail 只看尾巴几行
-n :后面接数字,代表显示几行的意思
-f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示文件内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行
ln f1 f2 #创建f1的一个硬连接文件f2,内容相同,删除一个不影响另一个
ln -s f1 f3 #创建f1的一个符号连接文件f3,快捷方式
ls -li # -i参数显示文件的inode节点信息
chmod控制用户对文件的权限
chmod [-cfvR] [--help] [--version] mode file...
u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
其他参数说明:
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本
文件夹操作
列出目录
ls [--full-time] 目录名称
-a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
-d :仅列出目录本身,而不是列出目录内的文件数据(常用)
-l :长数据串列出,包含文件的属性与权限等等数据;(常用)
切换目录
cd [相对路径或绝对路径]
显示目前所在的目录
pwd [-P]
-P :显示出确实的路径,而非使用链接 (link) 路径。
创建新目录
mkdir [-mp] 目录名称
-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
删除空的目录
rmdir [-p] 目录名称
cp (复制文件或目录)
cp [-adfilprsu] 来源档(source) 目标档(destination)
-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-d:若来源档为链接档的属性(link file),则复制链接档属性而非文件本身;
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l:进行硬式链接(hard link)的链接档创建,而非复制文件本身;
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-r:递归持续复制,用於目录的复制行为;(常用)
-s:复制成为符号链接档 (symbolic link),亦即『捷径』文件;
rm [-fir] 文件或目录
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
mv [-fiu] source destination
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
磁盘操作
df [-ahikHTm] [目录或文件名]
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
du [-ahskm] 文件或目录名称(与 df 不一样的是,du 这个命令其实会直接到文件系统内去搜寻所有的文件数据。)
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :仅显示指定目录或文件的总大小,而不显示其子目录的大小。
-S :包括子目录下的总计,与 -s 有点差别。
-x: 仅计算指定目录下的文件系统,不递归计算子目录的文件系统。
--max-depth=1: 限制显示的目录深度为 1,只显示指定目录下的一级子目录。
du -h -x --max-depth=1
列出当前目录下的所有一级子目录的磁盘使用情况
find [路径] [匹配条件] [动作]
-name pattern:按文件名查找,支持使用通配符 * 和 ?。
-type type:按文件类型查找,可以是 f(普通文件)、d(目录)、l(符号链接)等。
-size [+-]size[cwbkMG]:按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,单位可以是 c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或 G(GB)。
-mtime days:按修改时间查找,支持使用 + 或 - 表示在指定天数前或后,days 是一个整数表示天数。
-user username:按文件所有者查找。
-group groupname:按文件所属组查找。
find trace -ctime +30 |xargs rm -f
#删除trace⽬录中30天以前的⽂件
Docker
Brew
常用指令如下:
搜索软件
brew search nginx
安装软件
brew install nginx
卸载软件
brew uninstall nginx
brew 升级
sudo brew update
查看安装信息(经常用到, 比如查看安装目录等)
sudo brew info nginx
查看已经安装的软件
brew list
举例: brew安装nginx
安装nginx
可以用brew很方便地安装nginx.
sudo brew install nginx
启动nginx服务
sudo brew services start nginx
关闭nginx服务
sudo brew services stop nginx
Nginx
查看nginx版本
nginx -v
重新加载nginx
nginx -s reload
停止nginx
nginx -s stop
参考
Linux 命令大全(https://www.runoob.com/linux/linux-command-manual.html)