定义
命令行:指用户通过键盘输入字符指令,计算机输出字符结果的人机交互方式,与GUI形成对比。【交互方式】
终端:提供一个命令的输入输出环境。
shell:是一个命令行解释器,是linux内核的一个外壳,负责外界与linux内核的交互。shell接收用户或者其他应用程序的命令, 然后将这些命令转化成内核能理解的语言并传给内核, 内核执行命令完成后将结果返回给用户或者应用程序。当你打开一个终端时,操作系统会将终端和shell关联起来,当我们在终端中输入命令后,shell就负责解释命令。
bash:bash是shell的一种。
<命令行操作的文件就是当前激活的文件pwd>
常见命令
文件的操作
- pwd 展示当前绝对路径。
- touch readme.md 创建readme.md
touch index.html index.css index.js 创建多个文件
<创建文件与mkdir比较> - echo hello 输出hello字符串
echo hello > readme.md 在readme.md里覆盖写入字符串hello echo hello >> readme.md 在readme.md里追加写入一行字符串hello
echo -e "hello\nhi" >> readme.md 在readme.md里追加写入两行字符串(双引号引起来有特殊东西时用双引号)-e开启转义 echo也可创建文件也可清空文件
echo $PATH 展示环境变量
echo $HOME 家路径 - cat read.md 查看read.me里面有什么
head read.me -n 【数字】查看read.me前几行里面有什么。
tail read.md -n 【数字】查看read.me后几行里面有什么。
less read.md 查看read.me里面有什么以可滚动的页面呈现上下课翻页按q退出若有高亮部分先按esc取消高亮。 - ls列出当前目录下文件
ls -a 列出所有文件,包含隐藏文件
ls -l 列出所有文件,文件显示详细信息 ls -al 列出所有文件,包含隐藏文件,文件显示详细信息 - mkdir ruoyu 在当前目录下创建ruoyu文件夹 mkdir -p a/b/c 多重文件夹
- cp 1.txt 2.txt 拷贝1.txt文件至2.txt文件
cp -r a b拷贝目录-r指递归地 - rm ruoyu 在当前目录下删除ruoyu文件<里面不能有东西>
rm -r ruoyu 递归处理,将指定目录下的所有文件与子目录一并处理
rm -rf ruoyu 强制删除,无法恢复 - cd .. 切换到上一层目录
cd ruoyu 切换到当前目录下的ruoyu文件夹
cd ./ruoyu 切换到当前目录下的ruoyu文件夹
cd ../../ruoyu 切换到上一层的上一层目录下的ruoyu文件夹
cd ~/Desktop 切换到桌面 - mv ruoyu fangfang 当把 ruoyu 修改为 fangfang
mv ruoyu ../ 把 ruoyu 移动到上级目录
mv a.md ~/Desktop/b.md 把当前目录下a.md 文件移动到桌面,重命名为b.md - 根目录 cd /
家目录cd ~;cd ~/Desktop(桌面在家目录下)
当前目录cd books;cd ./books
上级目录cd ../ ;cd .. ;cd ../css
当前目录 . - mkdir ruoyu 在当前目录下创建ruoyu文件夹
- ctrl+c可中断一个命令
- start a.txt 以默认打开方式打开 code a.txt 以vscode方式打开
- npm i -g tldr 查询命令 tldr 命令
命令有成功有失败,成功的命令会返回0失败的命令会返回非零可用echo $?查询,在自己编写程序时可让程序对不同错误情形返回不同的值。
关于引号和有无的问题比如mkdir a,mkdir "a b"有特殊字符加引号
组合命令
命令1&&命令2;第一个命令成功第二个命令才会执行
命令1;命令2;先把两条命令隔开不管第一个成功不成功都执行第二个
把命令变成文件
1.创建一个文件后缀无所谓
2.添加执行权限
3.把命令写入文件中code or vim
4.在文件所在目录使用./命令来执行命令,在文件中可用$1设置参数例如touch $1,或者sh 命令正确路径来执行若在其他目录中使用该命令时需输入正确的路径。
5.可在脚本第一行加入shebang注释告诉内核应该以哪个程序来执行指定的脚本加了之后可去掉sh,还得写路径
6.在执行命令时,bash会从环境变量配置的路径去找命令。比如ls命令在bin文件夹下,环境变量指示当前命令从bin文件夹下查找文件
7.echo $PATH 查看环境变量
8.在环境变量中增加一个文件夹相当于增加一个命令放置的地方<环境变量就是一系列文件夹>
9.vim ~/.bashrc 或者 /etc/bashrc(如果不存在就创建)<前者用户后者全局>
10.添加 export PATH="$PATH:目标文件" <冒号相当于并列;在echo $PATH中也可看到冒号>
11.执行 source ~/.bashrc 使其生效OR重新打开命令行
OR 在我的电脑属性,高级系统设置,环境变量中的PATH加入命令路径
此时不在当前文件也可用该命令且不需加路径,若没加入PATH需输入路径或在当前目录输入./命令才可执行
12.给命令重命名修改 ~/.bashrc 加入alias la='ls -al'
13.which 命令 查看这个命令在哪,命令其实就是相应文件
14.PATH是用先后顺序的
文件权限
1.chmod +w readme.md 给readme.md加写权限
2.chmod -x a 给a去掉可执行权限
3.chmod 777 index.html 任何人对 index.html 文件都拥有读、写、执行的权限
4.-rwxrwxrwx 可以使用数字来替代表示<权限用户/用户组/其他>
5.sudo chmod +w /etc/bashrc 用管理员身份给/etc/bashrc文件加写权限<没有权限去给文件加权限>
用命令行登录服务器
ssh加服务器
vim简单用法
vim:在命令行环境下用于编辑文件在有些环境下没有vs code得用vim
i,I,a,A都可以变为插入模式
esc切换模式
:wq保存退出
:q!不保存退出