zoukankan      html  css  js  c++  java
  • 前端学命令行

    写在前面

    命令行已经成为前端程序员必备的一项基础技能。如今的前端开发严重依赖命令行,通过 node 部署前端开发环境,通过 git 实现版本管理,命令行还可以更有效地控制操作系统(mac 尤甚)。熟练地掌握命令行,可以极大地提升工作效率,本文将介绍前端开发所需要的常用命令行操作

     

    定义

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

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

    bash_thumb

     

    常用命令

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

     

    一般规则

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

     

    特殊符号

    # 代表注释

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

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

    $ echo $$ # 5477
    

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

    $ echo $?  # 0
    

     

    缩写

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

    1、最常见的缩写是取每个单词的首字母

    cd Change Direcroty 切换目录
    

    2、如果首字母后为h,则保留h

    chmod CHange MODe 切换文件权限
    

    3、 如果只有一个单词,通常取每个音节的首字母

    cp Copy 文件拷贝
    

    4、取前几个字母作为缩写

    diff DIFFerences 比较文件差异
    

     

    操作命令

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

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

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

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

    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 '111
    222' # 输入多行内容,需要使用-e选项
    $ echo 123 > 1.txt # 将1.txt的内容改写为'123'
    $ echo abc >> 1.txt # 向1.txt追加内容,则1.txt的内容为'123 
     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
    

    2、修改脚本文件,将 Downloads 目录下所有的 excel 文件都移动到 backup 目录下的 xls 目录中

    mv /Users/xiaohuochai/Downloads/*.xls /Users/xiaohuochai/Desktop/backup/xls
    

    3、执行该文件即可

    sh mvExl.txt
    # 或者
    sh ./mvExl.txt
    

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

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

    bash_result

     

    最后

    本文只介绍了常用的基本命令,更详细的命令可查看下面的文章

    Linux 常用命令

    Linux 命令大全

    bash 中文速查

    bash 英文速查

    命令行解释

  • 相关阅读:
    解决方案 git@github.com出现Permission denied (publickey)
    github设置添加SSH
    base64是啥原理
    PHP面试题:HTTP中POST、GET、PUT、DELETE方式的区别
    PHP中put和post区别
    常用的微信编辑器
    局域网内一台电脑的ip地址自己会变,怎样让它不变
    Trendalyzer is an information visualization software
    FineReport报表和水晶报表的比较
    x
  • 原文地址:https://www.cnblogs.com/xiaohuochai/p/12045336.html
Copyright © 2011-2022 走看看