Shell学习笔记分享

说明:

Shell是在计算机上运行程序的命令行界面(类似于浏览器的控制台)。由于绝大多数的Web服务器都在Linux上运行,shell是在Linux服务器上进行部署和远程管理的重要工具,Terminal是我们用于与shell交互的程序。

部分命令:

1.打印echo:类似于print(打印)。可以在终端打印你所需要打印出来的内容。注意打印部分最好使用引号包含。
* 举例:尝试在终端输入echo $COLUMNS x $LINES,看看会输出什么。

2.浏览目录(ls,cd,...):

  • ls=List:表示显示当前目录的内容
  • ls + Directory:可以使用ls加另外的文件夹名称用于显示那个文件路径下的内容
  • cd:表示change directory,更改目录
  • cd ..:返回上一级目录,父目录
  • cd .. ; ls:使用分号可以连接两个命令,他们会按照顺序执行。

3.当前工作目录(pwd):表示Print Working Directory,打印当前工作目录。

Path:路径,由斜杠和多个目录名称组成。比较特殊的目录..: 表示父目录、.: 表示当前目录、~: 表示主目录

4.参数和选项ls -l/*:对于命令行我们也可以对其添加参数和选项。ls -l-l就是一个参数,表示long,他会显示更为详细的文件信息。我们还可以使用*进行匹配,ls -l *.pdf表示显示当前目录下面所有pdf文件,*会进行所有可能文件的匹配。

5.整理文件mkdir,mv: mkdir表示make directory(新建文件夹),mv表示move(移动),第一参数表示需要移动的文件,第二个参数表示移动到哪个位置。

6.下载curl: curl表示C URl也就是see URL(查看网页)

  • 单纯的curl + url表示查看该URL的源码(主要是html代码),这对于我们来说没有什么用处
  • 使用curl -L url表示遵守重定向,将会显示该URL主页的源代码(压缩了的javascript代码),这与在浏览器中邮件查看源码差不多。
  • curl -o fileName -L url: 通过该命令来下载文件或者页面,-o表示不用在终端显示,fileName表示下载之后的文件名。
  • 注意:最好在url两端加入单引号,这样防止url中有其他字符(&)的干扰。

7.查看文件(cat less):cat是Catenate/Concatenate(运行多个文件)的意思。

  • 可以使用cat fileName在终端显示文件,他会显示整个文件内容,所以如果文件很大,很难在终端进行仔细查看
  • 可以使用less fileName在终端显示更少的内容,每次显示只会占满一屏幕的文件内容。可以使用空格或者箭头 ⬇️ 向下滚动查看

在使用less时可以使用B表示返回,/表示搜索,/xxx表示在该文件内搜索xxx,q表示退出。

8.删除内容(rm,rmdir):

  • rm表示remove的意思,这个命令会直接删除文件,并且无法撤回,对于需要注意的文件可以使用re -i fileName在删除前进行提示和确认。
  • redir:表示删除目录

9.搜索和管道符号(grep,wc):

  • grep xx fileName表示在该文件内搜索xx,并且将所有的结果在终端显示出来。但是这样不容易观察
    • grep xx fileName | less 表示先执行grep命令之后再pip(管道)给less,算是一个复合命令,这样就将之前的结果在终端以一页进行显示。
    • curl URL | grep xx:像这样也可以使用|连接两个命令,这样grep命令就不需要提前下载文件再进行搜索,可以直接对于在线文件进行搜索。
  • curl URL | grep xx | wc -l:表示在URL在线文件中查询xx的数量。wc表示word count(单词个数),-l表示计算行数。
    • 另外一种方式是:curl -L URL | grep -c xx:在grep后面加上-c用于计数,结果与上面的方法相同。

10.Shell内部变量和环境变量:

  • Shell变量:像是$LINES、$COLUMNSShell程序本身的内部变量
  • 环境变量: 是与shell运行的程序共享的变量,例如:$Path

Shell学习资源:

  • Bash 学院
  • Bash 初学者指南
  • Bash 编程指南
  • Regexr — 学习正则表达式

你可能感兴趣的:(Shell学习笔记分享)