vim (文件编辑器)
如果是针对复杂文件, 进行复杂编辑, 那么就可以用到 vim 了.
vim 是 Linux 自带的文本编辑器, 相当于 Windows 的记事本.
这里只介绍 vim 的三种基本用法 :
- 打开文件
- 编辑文件
- 保存退出
1.打开文件 : 使用 vim 加文件名 / 文件路径.
2.编辑文件
打开 : hello.txt 文件 :
回车后就会跳转到编辑画面, 这个时候 vim 处在普通模式, 此时键盘按键都是快捷键, 我们得切换到插入模式, 才是输入文本.
按 i, 即可进入插入模式, 这个模式就类似于记事本了.
3.保存退出 : 写完后, 按 Esc 键退出插入模式, 再输入 :w 就是保存, 再输入 :q 就是退出了, 当然可以一起输入 :wq, 保存并退出.
通过 cat 可以看到刚刚输入的内容 :
mkdir (创建目录)
mk -> make
dir -> directory
相当于 Windows 中, 鼠标右键, 新建目录.
rm (删除目录/文件)
remove 删除文件 / 删除目录
使用 rm -r 是递归删除, 即删除该目录下的所有子文件和子目录.
可以看到, 使用 rm -r 删除要逐个文件询问是否删除, 遇到大文件就很麻烦.
我们可以使用 rm -rf 进行强制删除, 不会询问了.
我们也可以使用通配符 * 来删除当前目录所有文件.
注意 : rm 操作很危险 !!!
在 Linux 中, 没有回收站这个概念, 删除了就没有了.
如果我们把根目录删了就完了, 就是这个命令 : rm -rf / , 这个命令一出, 系统都跑不起来了.
如果误敲了, 只能重装系统了.
虽然大家都知道, 但还是会神不知鬼不觉的敲了.
具体啥场景下会敲错呢 ?
情况一 :
我现在要删除一个文件 :
这样删是没问题的, 但就怕多敲了一个空格 : rm -rf / root/777
可以看到在第一个 / 后面跟了一个空格, 这时候 Linux 就认为你要删除两个目录 :
一个是 /
一个是 ./root/777 (./ 省略了)
这就真寄了.
情况二(更隐秘) :
编写 xshell 脚本的时候, 可能需要定义一个变量, 比如 : DIR=hello.txt
当我删除这个变量的时候就是 : rm -rf /$DIR, 注意 这个时候如果变量未定义, 那么 $DIR 就相当于空字符串了, 命令也就相当于 : rm -rf /
cp (复制)
copy 复制.
cp 要复制文件 目标目录
还可以通过 cp 进行重命名, 当然它不是自己重命名, 而是复制一份, 并将复制的改个名字 :
注意 : 如果拷贝的文件已经存在, 则会将原有文件覆盖.
当然 cp 还可以复制目录, 复制目录时, 加上 -r ( r 表示递归, 将所有子目录子文件都复制)
mv (移动)
类似于 cp, 也是这种形式 : mv 要移动的文件 目标目录
当命令是这种形式时 : mv hello.txt world.txt
就是单纯的重命名了, 可以理解为边移动, 边改名.
Linux 中, 没有单独的命令进行重命名, 就是通过 mv 来完成的. (mv 也可以移动目录, 不需要加 -r)
mv 操作是非常快的, 文件路径只是一个属性, 修改路径就是修改这个文件的属性, 很快的.
Linux 中, 没有回收站, 经常用来模拟回收站, 想删除某个东西, 并不是直接 rm, 而是将其移动到一个单独目录中.
grep (字符串匹配)
快速搜索某个文件中, 是否包含某个特定字符串.
加上 -n 可以显示字符串出现在该文件哪一行, -n 也可以放 grep 后面.
grep 也可以在多个文件中进行搜索.
" * " 表示当前目录下所有文件.
-R 表示递归搜索, 如果该目录下还有目录, 就会进入子目录搜索.
grep 不仅仅可以搜索文件内容, 还可以和其它命令联动.
ps (查看进程)
ps 用于查看当前系统上运行的进程, 可与 grep 联动.
ps aux 列出系统中所有进程.
ps aux | grep “进程名” 查看某个进程. grep 起到筛选的作用.
前面 3690818 是身份标识 pid, 后面的字符串是 mysql 对应的服务器进程, 注意, 每次敲的命令本身也是一个进程, 对照上图, 就是 root 对应的进程.
ps aux | grep “进程id” 根据 pid 来查询进程.
netstat (查看网络状态)
netstat 查看系统上的网络状态.
netstat -anp , 显示所有.
一般我们都是关注其中一部分信息, 搭配 grep 来查询.
:::3306 是本端的 ip 和端口, ::: 是 ipv6 的写法.
::: * 是对端 ip 和端口
3690818 是进程的 pid
面试常考 :
通过 ps 来查看某个进程的 pid.
通过 netstat 查看某个进程绑定的端口号.