初学命令行

267 阅读6分钟

我对一些概念的理解

图形界面

意思就是我们用鼠标进行一些操作,比如新建文件夹、删除文件等

命令行

就是不用鼠标,而是用键盘打出一串字母表示一个命令,这些命令会让计算机做 出图形界面可以做出的动作

终端

终端(termimal)的作用是提供一个命令的输入输出环境。也就是说,我们就是在终端里进行命令行的这些操作的。在Windows系统下,git-bash就是一个终端。

shell

是个命令行解释器,是linux内核的一个外壳,负责外界与linux内核的交互。shell接收用户或者其他应用程序的命令, 然后将这些命令转化成内核能理解的语言并传给内核, 内核执行命令完成后将结果返回给用户或者应用程序。当你打开一个terminal时,操作系统会将terminal和shell关联起来当我们teminal中输入命令后,shell就负责解释命令

bash

inux系统上可以包含多种不同的shell(可以使用命令 cat /etc/shells 查看),比较常见的有Bourne shell (sh)、C shell (csh) 和 Korn shell (ksh),三种shell 都有它们的优点和缺点。Bourne shell 的作者是 Steven Bourne,它是 UNIX 最初使用的shell 并且在每种 UNIX 上都可以使用。bash的全称叫做Bourne Again shell,从名字上可以看出bash是Bourne shell的扩展,bash 与 Bourne shell 完全向后兼容,并且在 Bourne shell 的基础上增加和增强了很多特性,如命令补全、命令编辑和命令历史表等功能,它还包含了很多 C shell 和 Korn shell 中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。总而言之bash是shell的一种,是增强的shell

常见命令

  1. pwd#查看当前完整路径

  2. touch [file]#创建文件

  3. echo#写入字符串

    echo hello #显示hello

    echo 'hello' > readme.md#在文件readme.md中写入hello

    echo $home#显示家路径

    echo $PATH #展示环境变量

  4. ls #列出当前目录下的文件夹

    ls -a #列出当前目录下所有文件夹(包含隐藏文件)

    ls -l #列出当前目录下的文件夹和详细信息

    ls -al #列出当前目录下所有文件夹和详细信息

  5. mkdir #创建文件夹

  6. rm [file]#删除文件

    rm -r [dir] #递归处理,将指定目录下的所有文件与子目录一并处理(删除文件夹)

    rm -rf [file]#强制删除,无法恢复

  7. 文件路径

    • 根目录:/
    • 家目录:①~ ②/c/User/jj
    • 当前目录:①不用写 ②./
    • 上级目录:①../ ②..
  8. cd [address] #切换路径

    cd .. #切换到上层目录

    cd yy #切换到当前目录下的yy文件夹

    cd ./yy #切换到当前目录下的yy文件夹

    cd ../../yy #切换到上一层的上一层目录下的yy文件夹

    cd ~/Desktop #切换到桌面

  9. mv#移动或重命名文件

    mv yy bb #把yy文件夹重命名为bb文件夹

    mv yy ~/desktop #把yy文件夹移动到桌面

    mv a.md ~/user/download/b.md #把a.md移动到下载中并且重命名为b.md

Vim入门

概念

Vim是一个文本编辑器。执行vim index.html(如果没有index.html文件便会创建一个,同时)进入编辑文件index.html的窗口进行编辑

普通模式vs插入模式

  1. 默认进入的是普通模式,输入i或者a进入插入模式
  2. 插入模式下可以输入内容
  3. 输入完成后按ESC键,退出插入模式进入普通模式
  4. 在普通模式下输入:wq保存并退出;:q!强制退出不保存

常用操作

  1. i在当前光标字符前插入
  2. a在当前光标字符后插入
  3. I在当前行首差插入
  4. A在当前行尾插入
  5. ESC模式切换
  6. :w保存
  7. :wq保存退出
  8. :q!强制退出不保存

环境变量

概念理解

环境变量就是储存各种命令的文件夹的集合。当我们输入一个命令,终端就会从环境变量中找到储存该命令的文件夹从而找到该命令去执行。

用which命令查看命令都储存在哪

  1. which [命令名] #查看该命令储存的位置
  2. 举例
    可见ls命令储存在/usr/bin/ls中。 因为该路径已经加入了环境变量,当输入ls命令时,终端便会从环境变量的这一路径中找到ls命令去执行。

echo $PATH查看环境变量

可见环境变量里面有很多文件夹。这些文件夹里都储存着各种命令。

修改环境变量

  1. 目的:如果把我自己的一个文件夹加入环境变量中,那么,当我在这个文件夹中写了个命令,这个命令就可以被执行啦。
  2. 步骤
vim ~/bashrc  #编辑bashrc文件(如果没有该文件便会创建)
export PATH="$PATH:$HOME/Desktop/yy"  #在原来的环境变量中加上我的文件夹yy
source ~/.bashrc   #使刚才的操作生效
  1. 此时我的文件夹yy便已加入环境变量中去。

测试环境变量

  1. 目的:测试上面我加入的环境变量是否成功。即在文件夹yy中写个命令,如果能够成功执行便算成功。
  2. 步骤
cd ~/desktop/yy   #切换到我的文件夹yy中去
touch helloworld   #新建一个文件helloworld,这就是我们写的一个命令,下面我们要去编辑这个命令。
vim helloworld    #编辑文件(命令)helloworld
touch a.html      #命令helloworld的第一个作用是新建文件a.html
echo '<h1>a</h1>' > a.html  #命令helloworld的第二个作用是在a.html中写入a
helloworld   #执行我们刚写好的命令。
  1. 注意:上面命令"helloworld"的执行结果可能显示"permission denied : helloworld",意思是说没有权限(关于 文件权限,下面会重点讲解)但是没说"command not founded",所以这个命令已经可以执行了,意思就是yy这个文件夹加入环境变量成功了。

给命令行加别名

vim ~/.bashrc
alias la='ls -al'  #用`alias`命令给命令加别名

文件(夹)权限

概念

  • 用命令ls -al可以看到文件夹权限

  • r 即read,表示可读权限

  • w 即write,表示可写权限

  • x 表示可执行权限

  • rw- r-- r--

    第一部分rw-表示的是当前用户(也就是自己)的权限

    第二部分r--表示的是用户组的权限。所谓用户组,可以简单理解为使用自己这台电脑的其他人创建的用户的集合。

    第三部分r--表示的是其他人的权限

  • rwx -> 111 -> 7

    r-x -> 101 -> 5

chmod命令去修改文件(夹)权限

  1. 代码:chmod [+or-] [r or w or x] [file or dir]
  2. 举例
chmod +x readme.md  #给文件readme.md加上执行权限 
chmod 777 index.html   #让任何人都对文件有读、写、执行的权限

登录远程服务器

概念

用命令行在终端上登录远程服务器。登陆后我们可以操作远程服务器上的文件。只要知道这个服务器的地址和密码,每个人都可以登上去对里面的文件进行操作。这样,我们就可以把自己的代码上传到这个远程服务器中去,别人就可以获取到,实现共享。

命令

ssh [服务器地址]#登录远程服务器,输入密码即可