说明:
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学习资源: