目录
✨1. ls
2. cd
3. pwd
4. touch
5. echo 和 cat
️6. vim
6.1 打开文件
6.2 编辑文件
6.3 保存退出
7. mkdir
☕8. rm
8.1 rm -r
8.2 rm -rf
9. cp
⚓10. mv
11. grep
12. ps
13. netstat
写好的网站只满足于给自己看吗? 独乐乐不如众乐乐,如何把网站部署到服务器上,让其他用户也能访问到呢?这就需要同学们学习本篇文章的内容—— Linux 的一些基本命令。
[root@VM-8-14-centos ~]#
root:当前用户的用户名
VM-8-14-centos:主机名
~:~ 的位置表示当前所在目录,在 Linux 中,~ 表示 home 目录
#:表示当前是管理员
$:则表示是普通用户
ls,即 list,列出当前目录/指定目录中的内容,相当于鼠标双击某个目录,查看里面的内容。
其中,蓝色的是目录,而白色的是普通文件。
而 ls 后跟上一个具体的目录,也就可以看到指定目录中的内容了。
/ 在 Linux 中表示“根目录”,云服务器上的任何一个文件,都是属于根目录的。根目录,对应于 windows 中的“此电脑”。
使用 ls -l 便能够查看目录中的内容细节了。由于 ls -l 更为常用。linux 提供了 ll 操作,等同于 ls -l :
小技巧Ⅰ:xshell 中,可以使用 ctrl + l 来清屏!
cg,即 change directory,切换目录。Linux 系统中,磁盘上的文件和目录共同构成一颗树,每个节点要么是目录,要么是文件。
linux 中,绝对路径以 / 开头,而相对路径以 ./ 或者 ../ 开头,其中 ./ 常会被省略。
小技巧Ⅱ:linux 中,输入命令/文件目录名时,可以使用 tab 键来补全
cd 后面不加任何内容,回到 home 目录。
当用户 cd 太多次,忘记当前处在哪个路径中,可以使用 pwd 来查看当前完整路径。
touch 创建一个空文件。
在 document 这个文件里,创建了一个大小为 0 kb 的 fighting.txt 文件。
小贴士Ⅰ:在 Linux 中,遵循 no news is a good news 的原则,即没有消息就是最好的消息。如果执行命令之后,下方弹出消息,也就意味着命令出错,没有被执行。
echo 命令用来写文件,将 > 箭头前面的内容写入后面的文件中。箭头意味着重定向,每一次执行 echo + 重定向,都会清空原本的内容。
cat,即 concatenate files,可以用来读取文件内容。建议只用来读取内容较少的文件。
综上,echo 和 cat 只适合针对文件进行简单操作。如果文件复杂或是编辑要求复杂,就不合适了。这时就需要用到 vim 这样的程序了。
vim 是 Linux 自带的文编编辑器,相当于 windows 的记事本。这里只给大家介绍三个最基本的用法。
vim 文件名/文件路径
vim 为了追求编辑效率,引入大量的快捷键。默认情况下,vim 处于 normal mode(普通模式),键盘上的按键都是按照快捷键的方式来使用的。也就是说,键盘上的每个按键都被赋予了特殊的含义,不再能进行单纯的文本输入了。所以只要切换到 insert mode(插入模式) 即可文本输入。
按字母 i 即可:
小技巧Ⅲ:在 Linux 中,使用复制粘贴,不是使用 ctrl + c 和 ctrl + v 的,而是
复制:ctrl + insert
粘贴:shift + insert
在 vim 中,并没有 X 让用户退出。需要以下几步来进行保存退出:
1)esc 回到普通模式
2)输入 :wq 再回车
:(冒号)的作用是切换到命令模式,w :write,保存;q:quit,退出。两者的顺序不能掉转。
小技巧Ⅳ:xshell 中,ctrl + s 冻结当前画面;ctrl + q 解除冻结
mkdir 创建目录。mk,即 make,而 dir 为 directory,相当于 window 中,右键创建目录。
rm,即 remove,删除文件/删除目录。
进行递归删除。如果目录中还包含其他的文件,会一一询问:
这里的 f 表示“强制删除”,就不会再一一询问了。
rm -rf *
* 意味着当前目录的所有文件,此命令一被执行,该目录全删干净了。
警告警告:
rm -rf /
上述命令意味着,整个操作系统都被删除了!
比如以下情况:
想删除 document 这个文件:
可却多敲了一个空格:
由此便会造成巨大的错误。
cp,即 copy,复制。需要两个参数,一个是需要复制谁,另一个是要往哪里复制。
cp 不光可以复制文件,还可以复制目录,不过复制目录时,必须加上 -r 选项,表示递归。
小贴士Ⅱ:拷贝操作有时候是非危险,如果拷贝的目标文件已经存在,此时就会发生“覆盖”的情况。
mv,即 move,移动文件位置的同时重命名。如果移动的源与目标本来就在同一个目录里,这时就是单纯的改名字了。要知道 Linux 中,没有单独的命令是用于重命名的,都是通过 mv 来完成的。
mv 移动目录,是不需要加 -r 的。
cp 的操作速度较 mv 的慢,尤其是 cp 较大的目录或是文件,因为需要大规模读写硬盘。而 mv 即使是移动很大的文件, 也是瞬间完成。因为文件系统中,每个文件的路径,就是一个简单的属性,mv 只是修改了这个路径属性而已,时间复杂度为 O(1)。
linux 中没有回收站,经常使用 mv 来模拟回收站的效果。想要删除某个东西,并不是直接 rm,而是通过 mv 移动到一个单独的目录中。
快速搜索某个文件中,是否包含某个特定的字符串。
grep 可以同时在很多个文件进行搜索。
grep 不仅能搜索文件中的内容,还可以和其他命令一起用。
ps,process show,查看进程。
直接使用 ps 查看的内容非常有限,可以使用 ps aux 命令,列出系统上所有的进程。但很多时候,用户不会所有进程都关心,可能只关心那么一两个,因此就可以配合 grep 来筛选想要的进程。
每次敲下的命令自身也是一个进程,上面那个就是 ntp 进程。
左半部分的那些数字,如 1801,10529 等,是 pid,身份标识。
| :管道,用来连接两个命令,前一个命令的输出,作为后一个命令的输入。
netstat 用来查询网络状态。信息也很多,需要搭配 grep 来进行筛选。
面试中比较高频的问题:
1. 说说你用过哪些 Linux 命令
2. Linux 中,如果给定进程名,查询对应的进程 pid (ps)
3. Linux 中,如果给定进程名,查询对应绑定的端口号 (netstat)