鉴于之前用命令行的时候都是部署到服务器的时候接触到,后来主力的笔记本也安装了Ubuntu,命令都是凭感觉来,并没有归纳总结。遂开一文,记录常用命令。
约定:>>>符号后的内容为shell返回的内容。
- pwd
查看当前文件路径
jet@awesome:~$ pwd
>>> /home/jet
复制代码
- ls
列出当前目录文件
jet@awesome:~$ ls
>>> core examples.desktop Public
#列出所有文件,包括隐藏文件
jet@awesome:~/test$ ls -a
>>> . .. 123 456 .hidden
#列出详细信息
jet@awesome:~/test$ ls -l
>>>总用量 0
>>> -rw-r--r-- 1 jet jet 0 12月 25 00:39 123
>>> -rw-r--r-- 1 jet jet 0 12月 25 00:39 456
复制代码
- cd
进入目录
jet@awesome:~$ cd test
jet@awesome:~/test$ pwd
>>> /home/jet/test
#cd不带路径的话返回家目录
jet@awesome:~/test$ cd
jet@awesome:~$ pwd
>>> /home/jet
复制代码
- touch
创建文件
jet@awesome:~/test$ ls
>>> 123 456 abc
jet@awesome:~/test$ touch def
jet@awesome:~/test$ ls
>>> 123 456 abc def
复制代码
- which
查看程序安装路径
jet@awesome:~$ which python3
>>> /usr/bin/python3
复制代码
- mv
移动文件及重命名
jet@awesome:~/test$ ls
>>> 123 456 abc def
jet@awesome:~/test$ mv abc test
jet@awesome:~/test$ ls
>>> 123 456 def test
jet@awesome:~/test$ mkdir test2
jet@awesome:~/test$ ls
>>> 123 456 def test test2
jet@awesome:~/test$ mv test test2
#test 放到了 test2 文件夹
jet@awesome:~/test$ ls
>>> 123 456 def test2
jet@awesome:~/test$ cd test2/
jet@awesome:~/test/test2$ ls
>>> test
复制代码
- cp
复制,跟mv
大同小异 - rm
删除文件
jet@awesome:~/test$ ls
>>> 123 456 def test2
jet@awesome:~/test$ rm 123
jet@awesome:~/test$ ls
>>> 456 def test2
#使用rm无法删除目录
jet@awesome:~/test$ ls
>>> 456 def test2
jet@awesome:~/test$ rm test2
>> rm: 无法删除'test2': 是一个目录
#需要使用递归删除
jet@awesome:~/test$ rm -r test2
#删除成功后无输出
复制代码
- mkdir
创建文件夹 - chmod
改变权限有时我们从github等地方下载了某个脚本需要执行,但却无执行权限,可以使用该命令。
#一个文件的权限是这样表示的。
>>> -rw-r--r-- 1 jet jet 0 12月 25 00:39 123
#其中,r(读)权限比重为4,w(写)权限比重为2,x(执行)权限比重为1,加起来就是7。
#当前用户有rw权限,总权重为4+2=6,,用户组及其他用户只有r权限,权重只有4。
#让当前用户对文件123增加执行权限
chmod u+x 123
#如果想增加用户组的写权限:
chmod g+w 123
#如果不考虑安全,也可以:
chmod 777 123
#三个数字分别为用户(u),用户组(g)及其他用户(o)相对应的权限
复制代码
- lsof –i
有时候启动服务测试页面时会被告知端口号被占用,使用该命令可查看指定端口占用情况
jet@awesome:~/test$ lsof -i:8000
>>> COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
>>> python3.6 31149 jet 4u IPv4 804665 0t0 TCP localhost:8000 (LISTEN)
#记着这里Python3.6的pid为31149
复制代码
- kill
很多时候配合上面用,把占用端口进程杀掉
# 成功杀死进程后不会提示
jet@awesome:~/test$ kill 31149
jet@awesome:~/test$ lsof -i:8000
# python3.6进程已经没有了
复制代码
还有各发行版的包管理命令各不相同,有apt(ubuntu)、yum(centos)等,不过使用上比较简单,一般需要sudo运行。
# 安装nginx
sudo apt-get install nginx
>>> 一大段输出,不贴了
#更新源,一般在添加了新的源的时候使用
sudo apt-get update
>>> 一大段输出,不贴了
#自动删除不需要的依赖
sudo apt-get autoremove
>>> 一大段输出,不贴了
复制代码
小技巧:history查看所有历史命令,登录别人的机器也可以查看别人的历史哦!
Ctrl+r 查找历史命令
上面的命令只是冰山一角,不过已经足够应付大部分情况。