ls
ls
==> list
列出当前目录下都有哪些内容(文件/目录)
直接输入 ls
,是查看当前目录的情况;输入 ls/
就是看看 /
这个目录下的情况
/
称为“根目录”,就是Windows
上的“此电脑”Linux
中没有盘符,所有的目录和文件都是在/
目录下的- 要确保命令和后面的参数之间,要带有至少一个空格
这些就是 /
目录(根目录)下包含的内容,这些都是系统自带的文件和目录
- 这里的文件不能随便删除,删除之后可能系统就用不了了,需要重装云服务器
- 重装云服务器也非常简单。在网站后台,有个“重装系统”的选项
ls -l /
(简写为:ll /
)
后面是小写 L
,不要写成大写 i
或者数字 1
;并且命令和参数之间都有空格
这里是按照列表的方式进行显示,这是最常用的功能
- 第一列的十个字母构成的这一串代表该文件的权限,当前用户是否可读、可写、可执行
- 第一个字母:文件类型
-
:普通文件d
:目录文件(文件夹)l
:链接文件
- 第三和四列代表文件的拥有者是谁,此处这些文件都是 root 拥有的
- 第五列代表文件大小(支队普通文件有意义)
- 第六七八列代表最后的修改时间
- 最后一列就是名字
touch
创建一个基本的文件,里面是什么都没有的
cd
cd
==>change directory
修改(当前)目录
cd /
来到根目录,就相当与点击“此电脑”~
和-
这个位置显示的就是你当前所在的目录
~
也称为“home 目录”,“用户主目录”,这个就是用户登录的时候,默认进入的目录
- 可以输入两个字母,按“
tab
”键进行补全(唯一)- 如果不唯一,可以连续按两次,就会自动列出所有相关的选项
pwd
可以查看当前所处的路径的绝对路径
在 Linux
的命令中,但凡涉及到相关的操作,都是可以支持绝对路径和相对路径的
- 在
Linux
中,绝对路径是以/
开头的 - 相对路径是以
.
或者..
开头(有的时候.
可以省略,.
表示当前目录,..
表示当前目录的上级目录)
绝对路径写法:
cat
查看文件内容,直接把文件内容打印到控制台上
因为里面没有内容,所以什么都看不到
当输入一个命令,没有任何提示,此时就是“成功”,如果失败,就会告诉你一些报错信息
echo
打印内容到控制台上
- 可以直接将内容打印出来
- 也可以将内容放到指定文件中
- 这里的
>
就是“重定向”。本来是要写到控制台上的,现在通过重定向将这个内容写到文件中 - 会将文件里面原有的内容给清空掉之后再进行写入
如果不想将原有内容清空之后再进行写入
- 就是用
>>
完成追加写
但这里的 echo
+重定向 只能写一些简单的字符串内容。如果需要写的内容很多,就不是很方便,更不方便修改改
vim
这是 Linux
上自带的一个文本编辑器,使用 vim
就可以更灵活的对文件进行编辑了。虽然和记事本的定位差不多,但实际上 vim
的使用要复杂得多
我们这里只介绍一些 vim
最最基础的操作:
- 打开文件
- 编辑文件
- 保存退出
后面我们使用服务器,可能会经常在服务器上 查看日志,修改配置
打开文件
vim + 文件名
编辑内容
vim
包含很多快捷键,快捷键的画风和其他的软件截然不同。
- 其他的很多软件的快捷键都要搭配
Ctrl
、alt
之类的组合键完成 vim
更期望使我们输入单个案件,就能起到快捷键的效果
所以 vim
引入了“模式”的概念。启动 vim
之后,默认处于 normal mode
(普通模式),此时键盘按键都是快捷键,而不是输入文本
要想输入文本,就需要进入 insert mode(插入模式),进入插入模式的方法有很多,最简单的就是 i
保存退出
在 xshell
中,ctrl
+ s
是冻结屏幕的指令,ctrl
+ q
是解除冻结结
- 先按
esc
,回到普通模式(左下角的insert
就消失了) - 再按
:
,进入命令模式(光标就会来到左下角),此时输入的内容,就是 vim 的命令 - 此时输入
wq
(write 保存,quit 退出),进行保存退出
mkdir
make directory
,创建目录
mkdir 目录名
创建多级目录
mddir -p 目录层级
rm
remove
,删除
rm 文件1 文件2 ...
- 有的系统上(
Centos
)输入rm
删除时会有个提示,是否确认要删除,输入y
就是删除,n
就是不删除 - 若要一次删除多个,只需要在文件之间加上空格即可
删除目录
删除目录,不仅仅是删除目录本身,还要删除目录包含的其他目录和文件
- 需要使用
rm -r
来删除,-r
表示“递归” - 有的系统上,删除的时候,也会和上面一样,提示你是否要真的删除。如果是删除目录的话,递归过程比较麻烦,每个目录都会要你确认。这时我们可以使用
rm -rf
的方式直接删除 f
表示“强制删除”,不需要确认
- 此处的
rm
其实是一个危险操作,一旦删除,数据就没了- 删除的时候,一定要确保,你删的这个东西确实是不再使用了
- 在公司的服务器上,尤其是生产环境中,不敢随意删除
rm -rf /
这个命令会把你整个硬盘的数据都给删除掉- 因为根目录下不仅有你的文件,还有系统文件,一旦删除,你的机器就用不了了
- 这个操作,比
drop database
还要猛
drop database
只是数据库挂了,但系统里面的其他文件还是好的- 但干掉整个系统,是无论数据库,
tomcat
,其他的程序,其他的数据,统统一锅端
mv
move
,移动(剪切,粘贴)
mv 要移动的源 移动的目标
- 不仅可以移动文件,还可以移动目录,把目录内部包含的所有内容都进行移动
使用 mv 还可以针对文件/目录进行重命名
mv 原文件 改名文件
mv
操作,无论你移动的是什么(普通文件、目录文件),时间复杂度都是 O ( 1 ) O(1) O(1)
cp
copy
,复制
- 可以拷贝普通文件,也可以拷贝目录
- 拷贝目录的时候,和
rm
类似,都是要加上-r
选项,表示要递归地拷贝目录里面的内容
man
Linux
命令很多,而且每个命令还有不同的参数选项,记不住是正常的
Linux
上提供了 man
这个命令==>查看命令的手册
man
后面接上命令,即可看到关于这个命令的所有信息- 按
q
退出
上述命令都是围绕目录和文件展开的
grep
字符串匹配/查找
比如,想查找某个文件中是否包含某个关键字,这个关键字在第几行,都可以使用 grep
来查看
- 加上
-n
就是显示是第几行
grep
不仅仅可以在文件中查找,还能搭配其他的命令,完成更复杂的查找操作
ps
process show
,展示进程,显示出当前系统上都有哪些进程
- 单独输入
ps
,只能看到当前会话(终端)对应的进程,非常不全 - 想看到更全的,就输入
ps aux
因为这里的进程太多了,也不好观察,所以很多时候 ps
都会搭配 grep
来使用
- 比如,查看
mysql
进程的进程pid
|
叫做 管道,会把前面命令的输出,作为后面的命令的输入- 上面的一行是服务器的进程
- 下面的是因为
grep
命令本身也会形成进程,也能被平时获取到
netstat
可以用来查看某个端口是否被某个进程使用;也可以查询某个进程使用了哪些接口
- 主要关注
TCP
,UDP
涉及到的网络信息,下面的Unix
域套接字(属于一种进程间通信的方式) - 可以结合
grep
一起使用,netstat -anp | grep mysql
Linux
哲学理念(从Unix
继承过来),小而美 ,每个命令都很简单,只是集中精力做好一件事。如果想要完成复杂工作,可以把多个命令通过|
这样的方式组合起来
上述命令,足以覆盖工作中的大多数场景了
总结 :
ls
:列出指定路径下所包含的文件和目录cd
:切换目录pwd
:查看当前路径的绝对路径touch
:创建空的文件cat
:显示文件内容echo
:显示内容 & 写入文件vim
:文本编辑器
- 打开文件:
vim 文件名
- 编辑文件:小写字母
i
进入插入模式 - 保存退出:
esc
回到普通模式:wq
mkdir
: 创建目录rm
:删除文件 & 删除目录(rm -rf
)mv
:移动文件 & 移动目录,也可以重命名cp
:复制文件 & 复制目录man
:查看手册grep
:字符串匹配,查找某个文件是否包含某个字符串ps
:查看进程信息netstat
:查看网络信息