引言:图形化界面很方便,命令行界面很极客。
时间:2017年11月06日
作者:JustDo23
关键字:
命令行
Command-Line
terminal
shell
01. 简介
命令行界面 即 Command-Line Interface 通过指令执行操作,节省资源且运行高效。
Linux 系统有 Bash 。 Windows 系统有 Windows PowerShell 。
02. 指令
指令均在 Mac 电脑执行,在 Windows 可能有不同指令。
-
查看当前用户
$ whoami
-
显示当前的目录
$ pwd
-
切换目录
# 切换到当前目录 $ cd . # 切换到当前目录的上级目录 $ cd .. # 切换到当前目录内某个目录 $ cd Desktop # 切换到系统根目录 $ cd / # 切换当前用户根目录 $ cd ~
- 使用
Tab
按钮快速提示
- 使用
-
查看文件列表
# 列出当前目录下文件列表 $ ls # 列出所有文件包含隐藏文件 $ ls -a # 以列表详细信息形式列出文件列表 $ ls -l # 两种组合 $ ls -al
-
清除屏幕
$ clear $ cls
- 快捷键
Command + K
- 快捷键
-
创建文件夹
$ mkdir dirName
-
创建文件
# 若没有便创建空文件 $ touch fileName
-
文本编辑
# 使用 nano 编辑 $ nano fileName
- 提示
Ctr + O
存盘 - 提示
Ctr + X
退出 - 更多是使用
Vim
编辑器
- 提示
-
查看文件内容
# 打印文件内容 $ cat fileName # 同时打印两个文件内容 $ cat fileNameA fileNameB # 添加行号 $ cat -n fileName
-
复制与移动
# 复制文件
$ cp oldFileName newDirNewName
# 移动文件[重命名]
$ mv oldFileName newDirNewName
# 复制文件夹及内部子文件
$ cp -r sourceDirName targetDirName
-
移动
命令可用于文件及文件夹的重命名
- 文本内容操作
# 把一个文本内容复制到另一个
$ cat fileNameA > fileNameB
# 清空一个文本
$ cat /dev/null > fileName
- 目标文件不存在会自动创建
- 参数
>
操作源文件内容会覆盖掉目标文件内容 - 参数
>>
操作源文件内容追加到目标文件内容之后
- 删除
# 删除一个文件且不可用于删除文件夹
$ rm fileName
# 删除一个空的文件夹且不可删除不为空文件夹
$ rmdir emptyDirName
# 删除文件夹及内部所有文件
$ rm -r dirName
$ rm -rf dirName
# 删除之前提示并确认
$ rm -i fileName
- 参数
-r
表示递归操作 - 参数
-f
表示强制操作
- 查找
# 查找当前目录下所有后缀为 .txt 的文件
$ find *.txt
# 更多
$ find . -name "*.txt" -print
- 命令中使用了通配符
*
- 可视化程序打开
-
open
命令用于打开文件
、目录
或执行程序
;功能类似双击
。
# 使用 Finder 打开当前目录
$ open .
# 使用 Finder 打开指定目录
$ open dirName
# 使用默认程序打开制定文件
$ open fileName
# 打开系统中的计算器
$ open /Applications/Calculator.app
- 查看命令手册
# man 指令名
$ man command
- 键盘按下
q
进行退出
- 显示文件类型
# 文件或者目录
$ file name
# 显示 inode 内容
$ stat name
- 例如图片格式尺寸等信息
- 查看本机 IP 地址
$ ifconfig
- 退出
$ exit
03. 折腾
-
文件对比
# 指定两个文本文件进行 $ diff fileNameA fileNameB # 并排格式输出更直观 $ diff fileNameA fileNameB -y -W 50
- 会逐行进行文本对比
- 指定文本目录则会比较子目录相同文件名的文件
- 参数
-y
表示并列方式显示两文件异同 - 参数
-W 50
表示并列情况下的栏宽
- 符号
|
表示该行内容不同 - 符号
<
表示后面文件比前面文件少一行 - 符号
>
表示后面文件比前面文件多一行
-
分页查看文本
# 一页一页形式查看 $ more fileName # 多行空格合并一行 $ more -s fileName # 升级版命令 $ less fileName
- 按下空格进行下翻页
- 按下
b
进行上翻页
-
文本输出
# 控制台输出指定文本 $ echo string # 等价于 $ echo "string" # 转义字符,输入双引号 $ echo "\"string\"" # 字符输入指定文本,覆盖 $ echo string > fileName # 字符输入指定文本,追加 $ echo string >> fileName # 原样输出字符,不进行转义 $ echo '$name\"' # 显示指令执行结果 $ echo `date`
- 单引号包裹的字符不进行转义
- 反引号可以包裹指令
# 换行问题在脚本中常见 # 换行 $ echo "Hello \n World." # 或者 #!/bin/sh echo -e "OK! \n" # -e 开启转义 echo "It it a test" # 不换行 echo -e "OK! \c" # -e 开启转义 \c 不换行 echo "It is a test"
04. 功能
-
时间
# 显示系统当前具体时间 $ date # 日历显示当前月份 $ cal # 显示 Julian 日历 $ cal -j # 日历显示指定年份 $ cal year # 日历显示指定年份指定月份 $ cal month year # 统计给定所花费的总时间 $ time command
-
关机
# 立即关机 $ sudo shutdown -h now # 10分钟后关机 $ sudo shutdown -h +10 # 晚上八点关机 $ sudo shutdown -h 20:00
-
显示隐藏文件
# 显示隐藏文件 $ defaults write com.apple.finder AppleShowAllFiles -bool true $ defaults write com.apple.finder AppleShowAllFiles YES # 隐藏隐藏文件 $ defaults write com.apple.finder AppleShowAllFiles -bool false $ defaults write com.apple.finder AppleShowAllFiles NO
-
释放内存及硬盘
# 类似重启 $ purge
-
打开应用
# 打开程序 $ open -n /Applications/Safari.app
05. 系统设置
-
修改用户密码
# 修改当前用户密码 $ passwd
- 键入旧密码及新密码
-
环境变量
# 查看全部环境变量 $ env # 查看当前终端内核 $ echo $SHELL # 查看当前用户环境变量 $ echo $PATH
-
文件权限
# 设置所有人可读取 $ chmod ugo+r fileName $ chmod a+r fileName # 仅文件拥有者可以执行 $ chmod u+x fileName # 设置当前目录下所有文件及子目录权限 chmod -r a+r *
- 文件调用权分三级:
- 字母
u
代表文件拥有者
- 字母
g
代表群组
- 字母
o
代表其他
- 字母
a
代表三者皆是
- 字母
- 权限操作有三种:
- 符号
+
代表增加权限
- 符号
-
代表取消权限
- 符号
=
代表唯一设定权限
- 符号
- 权限类型有四种:
- 字母
r
代表可读取
- 字母
w
代表可写入
- 字母
x
代表可执行
- 字母
X
代表只有当该文件是个子目录或者该文件已经被设定过为可执行
- 字母
# 使用数字设置权限 $ chmod 777 fileName
-
r=4 w=2 x=1
- 若要
rwx
属性则4+2+1=7
- 若要
rw-
属性则4+2=6
- 若要
r-x
属性则4+1=5
- 若要
- 文件调用权分三级:
网友评论