前端学命令行

二叶草 2020年2月8日14:35:27IT专区评论阅读模式
前端学命令行

命令行早已变成前端开发程序猿必需的一项基本专业技能。现如今的前端工程师比较严重依靠命令行,根据 node 布署前端工程师自然环境,根据 git 保持版本管理,命令行可以更合理地操纵电脑操作系统(mac 尤甚)。熟练地掌握命令行,可以极大地提升工作效率,本文将介绍前端开发所需要的常用命令行操作

定义

命令行( command line ) 是一个应用程序,它是一个基于文本(或者说基于命令)的进行文件操作的应用程序,类似于 mac 中的 Finder 或者 Windows 中的资源管理器,但是没有图形界面

一般地,命令行( command line )又代指命令行界面( command line interface ),简称为CLI,也称为字符用户界面。在 Windows 中称为 cmd 或者 命令提示符,在 Mac 中称为 终端 或者 控制台,在 Linux 中称为 shell(常见的是 bash )

前端学命令行

常用命令

DOS 系统和 Linux 系统的命令有些不同,下面主要介绍 Linux 系统下的 bash 命令

一般规则

在了解命令行常用命令之前,要先了解命令行的一般规则。如果命令行正确执行,则界面不会有任何反馈;如果错误执行,则会提示报错信息

特殊符号

# 代表注释

代表转义字符,可以将特殊符号变成一般字符

$ 代表的是目前这个 Shell 的线程代号,即是所谓的 PID(process ID),使用echo $$,出现的数字就是 SHELL 的 PID 代码

$ echo $ # 5477

? 是一个特殊的变量,代表上一个执行的命令所回传的值。如果成功执行该命令,则会回传一个 0 值,如果执行过程发生错误,就会回传一个非 0 的值

$ echo $?  # 0

缩写

所谓的命令实际上就是单词的缩写,有以下几种常见缩写方式:

  1. 最常见的缩写是取每个单词的首字母
cd Change Direcroty 切换目录
  1. 如果首字母后为h,则保留h
chmod CHange MODe 切换文件权限
  1. 如果只有一个单词,通常取每个音节的首字母
cp Copy 文件拷贝
  1. 取前几个字母作为缩写
diff DIFFerences 比较文件差异

操作命令

clear 清屏
unset 取消变量$ unset abc # 取消变量 abc

alias 用来设置别名,单独使用alias,可以查看当前已经设置的别名;unalias 用来取消设置的别名

$ alias # 查看当前已经设置的别名$ alias lm='ls -l | more' # 设置别名 lm$ unalias lm # 取消别名 lm 的设置

open 可以使用默认方式打开文件,使用 alias 和 open 配合,可以使用命令行来打开网页

alias cnblogs='open https://cnblogs.com'

目录命令

【特殊符号】

.表示当前目录

..表示上级目录

-表示前一次目录

~表示用户目录

【显示目录】

pwd  # print work directory 显示当前工作目录的绝对路径

【切换目录】

cd   # change directory 切换工作目录      # 如果不带任何参数,或使用波浪号(~),切换到用户目录

【创建目录】

mkdir # make directory 创建目录 $ mkdir a   # 创建目录 a$ mkdir b c # 创建目录 b 和 c$ mkdir -p a/b/c # 创建有层级的目录(a/b/c),需要使用 -p 选项

【删除目录】

rmdir # 删除空目录rm -r # 删除目录及该目录下的所有目录及文件$ rm -r a   # 删除目录 a            # 千万不要使用 rm -rf /,该命令会删除所有文件

【复制目录】

cp # copy 复制文件(或目录)$ cp -r a b # 将目录 a 复制到目录 b

【移动目录】

mv # move 移动文件(或目录)),或者重命名$ mv a b # 将目录 a 从当前目录移动到目录 b 下$ mv a b # 如果没有目录 b,则目录 a 重命名为目录 b

文件命令

【特殊符号】

> 表示覆盖

>> 表示累加

【显示目录下文件】

ls  # 显示该目录下的所有文件 list files,默认不显示以点开头的文件ls -a # 显示所有文件,包括隐藏文件ls -l # 显示每个文件的详细信息ls ./y # 显示指定路径 ./y 下的所有文件

【查看文件内容】

open # 使用默认软件打开文件
cat # 显示文件内容

其实,更常用的文件查看方式是使用 vscode

$ code a.txt # 使用 vscode 打开 a.txt 文件

要使用上述命令,需要进行如下设置:运行 vscode 并打开命令面板(⇧⌘P ),输入 shell command 找到: Install ‘code' command in PATH,并点击

【新建文件】

touch # 创建文件$ touch a.txt  # 创建空文件a.txt,如果a.txt已经有内容,则修改文件最后更新时间
echo # 输出字符串,也可以新建或改写文件$ echo 123 # 输入字符串'123'$ echo -e '111n222' # 输入多行内容,需要使用-e选项$ echo 123 > 1.txt # 将1.txt的内容改写为'123'$ echo abc >> 1.txt # 向1.txt追加内容,则1.txt的内容为'123 n abc'

【删除文件】

rm  # remove 删除文件 rm -f # 强制删除rm -i # 删除文件之前先询问确认,用户回复y或Y之后,文件才会真的被删除$ rm a.txt # 删除文件a.txt

【复制文件】

cp # copy 复制文件(或目录)$ cp 1.txt 2.txt # 将1.txt的内容复制到2.txt

【移动文件】

mv # move 移动文件(或目录),或者重命名$ mv 1.txt 2.txt # 如果在同一目录下,则将1.txt重命名为2.txt$ mv 1.txt a # 如果不在同一目录下,则将1.txt移动到指定的目录a下$ mv 1.txt a/2.txt # 也可以在移动到目录a的同时,重命名为2.txt

快捷键

在 Mac 下,iTerm2 需要设置才能使用 alt 快捷键

打开 Preferences > Profiles > Keys,left Keys 选择 Esc+

【光标移动】

ctrl + a 移动到命令行最左侧(ahead)ctrl + e 移动到命令行最右侧(end)alt + b 向左移动一个单词(back)alt + f 向右移动一个单词(forward)

【内容剪贴】

ctrl + k 剪切从光标位置到行尾的字符 (kill)ctrl + u 剪切从光标位置到行首的字符 (undo)ctrl + w 或 alt + backspace 剪切光标前的单词(word)alt + d  剪切光标后的单词(delete)ctrl + y 将剪贴板的内容粘贴到光标处

【控制】

ctrl + c 强制终止当前命令ctrl + l 清屏一次 tab 补全两次 tab 提示

命令组合

使用多命令执行符和管道符可以实现命令组合的目的

【多命令执行符】

命令1;命令2 多个命令顺序执行,命令之间没有任何逻辑关系

命令1&&命令2 逻辑与,命令1成功,才会执行命令2

命令1||命令2 逻辑或,命令1不成功,才会执行命令2

【管道符】

命令1 | 命令2 命令1的正确输出作为命令2的操作对象

$ ls -al /etc | less

上面代码中,使用 ls 命令输出后的内容就能够被 less 读取,并利用 less 的功能,就能够前后翻动相关的信息了

脚本文件

脚本文件类似于DOS操作系统中的批处理文件.bat,它可以将不同的命令组合起来,并按确定的顺序自动连续地执行

比如,一个常见的需求是把 chrome 的下载目录中的 excel 文件存储到专门的文档文件夹里

  1. 新建并打开脚本文件
$ touch mvExl.txt$ chmod + x mvExl.txt$ code mvExl.txt
  1. 修改脚本文件,将 Downloads 目录下所有的 excel 文件都移动到 backup 目录下的 xls 目录中
mv /Users/xiaohuochai/Downloads/*.xls /Users/xiaohuochai/Desktop/backup/xls
  1. 执行该文件即可
sh mvExl.txt# 或者sh ./mvExl.txt

当然,可以利用传参,将其他类型的文件比如 zip 文件也移动到 backup 目录下的 zip 目录中

# 设置变量basePath=/Users/xiaohuochaitargetPartPath=Desktop/backup
# 如果不存在 $1 文件夹,则新建 $1 文件夹    # $1 表示第一个参数    # -d 表示该文件名是否存在且是一个目录if [ -d $basePath/$targetPartPath/$1 ]; then echo 'exist'else cd $basePath/$targetPartPath mkdir $1fi# 移动文件# 注意,如果加上引号,写成"$basePath/Downloads/*.$1",则 * 只表示 * 本身,而不表示任意字符mv $basePath/Downloads/*.$1 $basePath/$targetPartPath/$1echo 'done'

前端学命令行

本文来源于:前端学命令行-变化吧门户
特别声明:以上文章内容仅代表作者本人观点,不代表变化吧门户观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。

  • 赞助本站
  • 微信扫一扫
  • weinxin
  • 加入Q群
  • QQ扫一扫
  • weinxin
二叶草

发表评论