Linux常见命令

软件安装

1
2
3
4
$ sudo dpkg -i/-r <name>.deb
$ sudo apt-get install/remove <name>
$ sudo apt-get -f install
$ sudo apt-get autoremove

常用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
显示路径 Ctrl+L
粘贴板 Ctrl+;
显示隐藏文件 Ctrl+H
Pycharm格式化 Ctrl+Alt+L
透明度 Alt+鼠标滚轮
Python关闭多线程 Ctrl+\

# 文件夹打不开
$ killall nautilus

# 重启输入法
$ killall fcitx
$ killall sogou-qinpanel
$ fcitx

# 终端后台
$ <命令>&
$ jobs
$ fg %n #前台
$ bg %n
$ exec bash #切换终端
$ chsh -s /bin/zsh #要重启
$ ls -a
$ top # https://www.cnblogs.com/me115/p/3842081.html

# 下载上传文件
$ scp root@111.111.111.11:/root/project/django.tar.gz /home/wcg/
$ scp /home/wcg/django.tar.gz root@111.11.111.111:/root/

# 压缩解压
$ tar -czvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
$ tar -xzvf /tmp/etc.tar.gz

$ ls -lR 递归列出文件的所有文件和详细资料
$ ls -l t* 列出t开头的文件

$ cd ... 返回上上级目录
$ mkdir -p /Todo/todo 创建多级目录
$ mkdir -vp scf/{lib/,bin/,doc/{info, product}, service/deploy/{info, product}} 创建项目结构
$ tree scf/ 查看项目结构

$ rm -f a.log 删除不提示
$ rm -i *.log 删除log结尾,逐一提示
$ rm -r test 递归删除目录
$ rm -rf test 不提示

$ cp -R 复制目录及目录所有项目
$ tail -f test.log 循环查看文件内容

$ which 查看可执行文件的位置
$ whereis 查看文件的位置
$ locate 配合数据库查文件位置,会定期更新,可设置
$ find 查找文件名称
$ find -atime -2 找出48小时内修改过的文件
$ find . -name "*.log" 关键字查找
$ find . -type f -exec ls -l {} \; 找到普通文件并列出详细
$ find . -type f -mtime +14 -exec rm {} \; 找出更改时间在n日以前的文件并删除它们
$ find . -name "*.log" -exec mv {} .. \; 查找文件移动到指定目录
$ find . -type f -print | xargs file 它是取出一部分文件而不是全部,不像-exec那样
$ chmod a+x a.log 给所有用户组增加可执行权限 r=4, w=2, x=1
$ chmod 777 a.log
$ chgrp -v bin a.log 更改文件的群组属性
$ chown wcg:wcg a.log 改变拥有者和群组

$ df -h 显示磁盘使用情况
$ du -h 显示目录和大小
$ free 显示内存使用情况
$ lsof 查看进程打开的文件
$ lsof -i tcp:80 查看tcp端口
$ ps -ef | grep nginx 查看nginx进程
$ ifconfig 查看网络配置
$ route 显示当前路由
$ ping -c 10 ip ping指定次数
$ traceroute blog.itswcg.com * 表示可能防火墙封掉了icmp,没有返回信息
$ netstat -ap | grep ssh 找出程序运行的端口
$ netstat -anpt | grep ':80' 找出运行指定端口的进程
$ ss 更高级更快的netstat

$ ln -s 软链接 没有s的是硬链接,软链接生成一个文件的镜像,硬链接生成一个和源文件大小一样的文件,都保持同步变化,删除后,软链接提示源文件不存在,硬链接不受影响
$ wc a.log 统计文件字数,行数等
$ ps -aux | grep nginx 显示详细的信息包含使用者的
$ watch -n 1 'cat /proc/loadavg' 1秒输出一次平均负载
$ at 5pm+3 days 三天后下午5点执行
at> /bin/ls
at> <EOT>
$ cat /etc/crontab
$ crontab -l
$ crontab -e

死机

1
2
3
4
# Ctrl+Alt+F1
$ top
$ kill <id>
# Ctrl+Alt+F7

Sublime

1
2
3
4
5
Ctrl+左键 批量改
选中 Alt+F3 改选中所有
Ctrl+Shift+U 侧边栏
Ctrl+Alt+L 格式化python
Ctrl+Shift+L 格式化html

Vim

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 命令行 Esc Shift+; wq
Normal模式
i 插入
a 下一个位置
o 下一行
dd 删除当前行
yy 拷贝当前行
0yw 复制第一个单词
p 粘贴剪贴板
P 粘贴到光标上方


0 移到行头
$ 移到行尾

Ctrl+F 下一Page
Ctrl+B 上一Page

u undo
ctrl+r redo

gg 到第一行
NG 到N行
G 到最后一行

# 日志成一行
:set wrap!

# 粘贴混乱
:set paste
:set nopaste

# 显示行标
:set nu
:set nu!

vim 搜索
/wcg 正序搜索
?wcg 倒序搜索
n 下一个
N 上一个

# https://github.com/wsdjeg/vim-galore-zh_cn
:e file2 打开另个文件
:ls 列出缓冲区
:e scp://root@123.456.891/.vimrc 打开远程文件
ctrl+v j选择 A或I 插入写 esc退出效果 多行编辑
vimdiff 比较两个文件

vim -O a.py b.py 垂直分屏, o水平分屏
:new a.py 水平分屏
: vs b.py 垂直分屏
: close 关闭当前窗口
ctrl+w q 关闭窗口
ctrl+w h j k l w 切换窗口
----------本文完,感谢您的阅读----------