命令行学习(一)基础命令

多数前端工具,只提供命令行界面,没有图形界面,实际上,先有的命令行,才有的图形界面
命令行释义:https://explainshell.com/explain

1. ~ / . .. $ 的意思

  • ~ 表示用户目录
  • / 表示盘符 cd /d 进入d盘 ,也表示绝对路径
  • . 当前目录
  • .. 上级目录
  • $ 表示可以输入目录,没有实际意义

2. 常用命令

  • cd a , 进入a目录 或 cd ./a , cd ./a/ ,cd a/ ; cd /e 进入E盘

  • cd .. 转到上级目录 或 cd ../

  • pwd (print working directory )命令显示整个目录 绝对路径

  • mkdir [目录名] (make directory) : 新建目录

  • mkdir -p( parents ) [目录路径] :新建包含路径的目录, 如果有特殊字符(空格),需要加引号 mkdir "el le" ps: mkdir -p lib/app/demo/le1

  • whoami 用户名

  • whois 查看某个域名拥有着的身份

  • ls [目录]: (list) 显示该目录,不加显示当前目录

  • ls -a 显示点开头的隐藏文件

  • ls -l(long) 显示更多的信息 ,同 ll

  • ls -al (all long)

  • cp [源路径] [目标路径]:(copy) 复制文件

  • cp -r(copy --recursive) .. 复制目录

  • mv [源路径] [目标路径]: (move)移动文件,可进行不同目录内文件的移动,当目标路径不存在时,可以用作重命名

  • rm (remove): 删除文件

  • rm -rf [目录/路径]: (remove --recursive递归的 --force 强制) 删除目录

  • rm命令删除的文件不可恢复

  • cat word.txt 查看文件内容

  • history 查看历史操作

  • start [文件名] 打开文件

  • start . 打开当前目录文件夹 可输入路径指定打开某文件夹

  • echo aaaa > hello.txt 创建hello.text 并将xxxx写入文件

  • echo bbbb >> hello.txt 将cccc添加在文件后面

  • echo cccc >! hello.txt 强制重写hello.txt

  • touch hello.txt 改变文件更新时间,如果没有就复制

  • ln -s [真实文件] [链接]: (link) 建立软连接

  • cd ~/local; pwd 分号分隔两条命令,同时执行

批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。
批处理文件的扩展名为bat 。

查看命令的帮助信息
命令 /?

关闭单行回显
@ 命令

从下一行开始关闭回显
echo off

从本行开始关闭回显
@echo off

从下一行开始打开回显
echo on

显示当前是 echo off 状态还是 echo on 状态
echo

打印一个空行出来
echo.

打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。
echo XXXXX

获取当前盘符
echo %~d0

获取当前路径
echo %cd%

获取BAT本身的完整路径和文件名
echo %0

当前bat文件路径
echo %~dp0

当前bat文件短路径
echo %~sdp0

每个命令运行结束,可以用这个命令行格式查看返回码 默认值为0,一般命令执行出错会设 errorlevel 为1
echo %errorlevel%

显示日期星期及时间精确到毫秒
echo %date%%time% 2019/08/08 周四14:20:26.00
echo %date:~0,4%年 %date:~5,2%月 %date:~8,2%日 %time:~0,8% 2019年 08月 08日 14:20:49

随机整数,介于0~32767
echo %errorlevel%

暂停,防止批处理完成后直接退出,执行后会在CMD中显示“情按任意键继续......”
pause

删除一个或数个文件 names 指定一个或多个文件或者目录列表。 通配符可用来删除多个文件。 如果指定了一个目录,该目录中的所有文件都会被删除。
  /P 删除每一个文件之前提示确认。
  /F 强制删除只读文件。
  /S 删除所有子目录中的指定的文件。
  /Q 安静模式。删除全局通配符时,不要求确认
DEL [/P] [/F] [/S] [/Q] names

控制窗口大小 lines表示长 cols表示宽
@mode con lines=18 cols=55

进入目录
cd XXXXX

创建目录 带空格或是特殊符号用双引号括起来
md XXXXX

删除目录文件
/S 除目录本身外,还将删除指定目录下的所有子目录和文件。用于删除目录树。
/Q 安静模式,带 /S 删除目录树时不要求确认
rd [/S] [/Q] XXXXX
emdir [/S] [/Q] XXXXX

显示文件夹内容
dir XXXXX /a/b/p/s

以图形显示驱动器或路径的文件夹结构 仅展示文件夹
tree

显示当前系统path设置
path

复制文件和目录树
/i 没有文件夹自动新建,否则会有询问
/S 复制目录和子目录,不包括空目录。
/E 复制目录和子目录,包括空目录。
/Y 取消提示以确认要覆盖
copy 原文件 目标 [/s/e/i/y]

复制文件(夹)
xcopy 原文件 目标 [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W] [/C] [/I] [/Q] [/F] [/L]
[/G] [/H] [/R] [/T] [/U] [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]

显示文件内容
type XXXXX

移动文件(夹)
/Y 取消确认改写一个现有目标文件的提示。
/-Y 对确认改写一个现有目标文件发出提示。
MOVE [/Y | /-Y] 位置和名称[,...] 新位置

要重命名一个目录
MOVE [/Y | /-Y] 路径 新路径

重命名
REN 路径 新路径

替换文件
/A 把新文件加入目标目录。不能和/S 或 /U 命令行开关搭配使用。
/P 替换文件或加入源文件之前会先提示您进行确认。
/R 替换只读文件以及未受保护的文件。
/S 替换目标目录中所有子目录的文件。不能与 /A 命令开关搭配使用。
/W 等您插入磁盘以后再运行。
/U 只会替换或更新比源文件日期早的文件。不能与 /A 命令行开关搭配使用。
replace 路径 新路径 [/P] [/R] [/S] [/W] [/U]

显示或更改文件属性

  • 清除属性。
    R 只读文件属性。
    A 存档文件属性。
    S 系统文件属性。
    H 隐藏文件属性。
    /S 处理当前文件夹及其子文件夹中的匹配文件。
    /D 也处理文件夹。
    attrib [R|-R] [A|-A] [S|-S] [H|-H] XXXXX [/S [/D]]

在文件中搜索字符串
/V 显示所有未包含指定字符串的行。
/C 仅显示包含字符串的行数。
/N 显示行号。
/I 搜索字符串时忽略大小写。
/OFF[LINE] 不要跳过具有脱机属性集的文件。
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" 路径[ ...]]

字符串查找增强
/B 在一行的开始配对模式。
/E 在一行的结尾配对模式。
/L 按字使用搜索字符串。
/R 将搜索字符串作为一般表达式使用。
/S 在当前目录和所有子目录中搜索匹配文件。
/I 指定搜索不分大小写。
/X 打印完全匹配的行。
/V 只打印不包含匹配的行。
/N 在匹配的每行前打印行数。
/M 如果文件含有匹配项,只打印其文件名。
/O 在每个匹配行前打印字符偏移量。
/P 忽略有不可打印字符的文件。
/OFF[LINE] 不跳过带有脱机属性集的文件。
/A:attr 指定有十六进位数字的颜色属性。请见 "color /?"
/F:file 从指定文件读文件列表 (/ 代表控制台)。
/C:string 使用指定字符串作为文字搜索字符串。
/G:file 从指定的文件获得搜索字符串。 (/ 代表控制台)。
/D:dir 查找以分号为分隔符的目录列表
strings 要查找的文字。
FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/F:file]
[/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
strings [路径[ ...]]

文件比较
/A ASCII码比较模式; 
/B 二进制比较模式; 
/C 将大小写字符看成是相同的字符。 
/N 在ASCII码比较方式下,显示相异处的行号。
FC 路径 路径 [/A][/B][/C][/N]

清屏
cls

设置cmd窗口的标题
title XXXXX

显示系统版本
ver

bat暂停10秒后再执行
timeout /t 10

注释命令 注释行不执行操作
rem 和 ::

逐屏显示
more XXXXX

顺序执行多条命令,而不管命令是否执行成功
&

顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令
&&

顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令
||

管道命令 先执行前面的命令,对其输出的结果执行后面的命令
|

重定向符, 意思是传递并且覆盖,它所起的作用是将运行的结果传递到后面的范围(后边可以是文件,也可以是默认的系统控制台,即命令提示符)
>

重定向符 将命令的输出结果追加到其后面的设备中去。这个符号的作用和>有点类似,但他们是有区别的 >>是传递并在文件的末尾追加,而>是覆盖。用法同>一样的。
>>

显示并写入文件中 会覆盖
dir>list.txt

屏幕上不显示文件内容,转向输出到打印机
type c:test.txt >prn

执行批处理程序中的条件处理
/i 不区分大小写
if not exist C:\Users\sulong\Desktop\aaaa.bat echo 不存在aaaa.bat文件
if exist c:test.bat ( echo 存在c:test.bat ) else ( echo 不存在c:test.bat )

设置变量

set p=aa1bb1aa2bb2
echo %p:~6%     显示变量p中第6个字符以后的所有字符
echo %p:~0,-2%  显示除了最后2个字符以外的其它字符
echo %p:aa=c%   用c替换变量p中所有的aa 
echo %p:aa=%    将变量p中的所有aa字符串置换为空,即显示1bb12bb2
echo %p:*bb=c%  第一个bb及其之前的所有字符被替换为c,即显示c1aa2bb2
set p=%p:*bb=c% 设置变量p,赋值为 %p:*bb=c% ,即c1aa2bb2
set /a p=39     设置p为数值型变量,值为39
set /a p=39/10  支持运算符,有小数时用去尾法,39/10=3.9,去尾得3,p=3
set /a p=p/10   用 /a 参数时,在 = 后面的变量可以不加%直接引用
set /a p=”1&0″  ”与”运算,要加引号。其它支持的运算符参见set/?
set p=          取消p变量
set /p p=请输入 屏幕上显示”请输入”,并会将输入的字符串赋值给变量p

批处理中调用外部程序的命令,否则等外部程序完成后才继续执行剩下的指令
/i 将 Cmd.exe 启动环境传送到新的“命令提示符”窗口
/min 启动新的最小化窗口
/max 启动新的最大化窗口
/separate 在单独的内存空间启动 16 位程序
/shared 在共享的内存空间启动 16 位程序
/low 以空闲优先级启动应用程序
/normal 以一般优先级启动应用程序
/high 以高优先级启动应用程序
/realtime 以实时优先级启动应用程序
/abovenormal 以超出常规优先级的方式启动应用程序
/belownormal 以低出常规优先级的方式启动应用程序
/wait 启动应用程序,并等待其结束
start 参数 目录 文件名

批处理中调用另外一个批处理的命令,否则剩下的批处理指令将不会被执行 有时有的应用程序用start调用出错的,也可以call调用
call

循环命令
for

批处理打开程序窗口最大化
start /max "" "C:\Users\sulong\AppData\Local\Postman\app-5.3.2\Postman.exe"

测试IP连接
-n count 发送count指定的Echo数据包数,定义向目标IP发送数据包的次数,默认为4次
-w timeout 指定超时间隔,单位为毫秒
ping

查看IP配置
/all 显示所有适配器的完整 TCP/IP 配置信息
ipconfig

解析地址
-a参数 或-g参数 用于查看高速缓存中的所有项目
arp

关闭或重启计算机
shutdown

关闭指定进程
taskkill

延迟变量 环境变量延迟扩展
set var=test
echo %var%

批处理文件bat脚本实现代码自动提交和项目部署

@echo off
echo "-------Begin-------"
git status
set /p msg=请输入提交注释:
git add .
git commit -m %msg%
git pull
git push
echo 推送成功:【%msg%】
echo "--------End!--------"
pause

你可能感兴趣的:(命令行学习(一)基础命令)