Linux基础命令

必须掌握的Linux命令

基本的文件目录操作

ls

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ ls #查看当前目录下文件
conf lnmp_install.sh README vhost_ngx_pagespeed.sh
init.sh ngx_pagespeed.sh source vhost.sh
$ ls conf #查看conf目录下文件
index.html nginx.conf pureftpd-mysql.conf tz.php
init.d.nginx pure-ftpd.conf script.mysql
$ ls -a #显示所有文件(包含以点(.)开头的隐藏文件,)
. conf lnmp_install.sh README vhost_ngx_pagespeed.sh
.. init.sh ngx_pagespeed.sh source vhost.sh
$ ls -l #以长格式显示文件的详细信息,可以查看文件权限,所属用户,日期等
total 60
drwxr-xr-x 2 root root 4096 Jul 25 18:14 conf
-rwxr-xr-x 1 root root 5720 Jul 25 18:14 init.sh
-rwxr-xr-x 1 root root 21011 Jul 25 18:14 lnmp_install.sh
-rwxr-xr-x 1 root root 1983 Jul 25 18:14 ngx_pagespeed.sh
-rw-r--r-- 1 root root 392 Jul 25 18:14 README
drwxr-xr-x 15 root root 4096 Jul 27 13:58 source
-rwxr-xr-x 1 root root 4865 Jul 26 21:58 vhost_ngx_pagespeed.sh
-rwxr-xr-x 1 root root 3774 Jul 25 18:14 vhost.sh

pwd

1
2
$ pwd #打印当前目录
/root/lnmp

cd

1
2
3
4
$ cd ../  #进入上层目录
$ cd ../../ #进入上上层目录
$ cd ~ #进入当前用户的家目录
$ cd /root/lnmp/conf #进入/root/lnmp/conf目录

mkdir

1
2
$ mkdir linuxeye #创建一个linuxeye目录
$ mkdir -p backup/sql #递归创建目录(如果目录不存在,则创建)

rm

1
2
3
$ rm init.sh #删除init.sh文件(不加-r参数不能删除目录)
$ rm -r conf #递归删除文件或目录(可以删除文件夹,系统会询问你是否删除,输入y表示确认,然后回车即可)
$ rm -rf backup #不会询问(-f参数慎用),直接递归删除文件或目录

mv

1
2
$ mv linux linuxeye #将linux文件或者目录重命名为linuxeye
$ mv vhost.sh conf/ #将vhost.sh移动到conf目录下

cp

1
2
$ cp linux linuxeye #将linux文件复制一份命名为linuxeye(如果存在linuxeye目录,则将linux文件复制到linuxeye目录下,文件名不变为linux)
$ cp -r linuxeye/ conf/ #将linuxeye目录(包含里面文件)复制到conf目录下

wget

1
$ wget //linuxeye.com/wp-content/uploads/lnmp.tar.gz #下载文件,可加参数-c断点续传;-T 设置超时时间后面跟秒

cat && grep

1
$ cat vhost.sh | grep linuxeye #显示vhost.sh 过滤包含linuxeye字符的行

vi,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
56
57
58
   一般模式                 删除、复制与粘贴
x,X x为向后删除一个字符,X为先前删除一个字符
nx(n代表数字) 向后删除n个字符
dd 删除当前行
D 删除当前行所有字符,试成为空行
ndd(n代表数字) 删除光标所在行的向下n列
d1G 删除光标所在行到第一行的所有数据
dG 删除光标所在行到最后一行的所有数据
yy 复制光标所在行
y1G 复制光标所在行到第一行的所有数据
yG 复制光标所在行到最后一行的所有数据
ynj(n代表数字) 复制光标所在行向下n+1行
dnj(n代表数字) 删除光标所在行向下n+1行
p,P p为复制的数据粘贴在光标的下一行,P为复制的数据粘贴在光标的上一行
J 将光标所在行与下一行的数据结合成一行
u 恢复前一个动作(undo)

编辑模式
i,I i为在当前光标所在处插入输入的文字,I为在光标所在行第一个非空字符插入输入的文字
a,A a为在当前光标所在处下一个字符插入输入的文字,A为在光标所在行最后一个字符的下一个字符处插入输入的文字
o,O o为在光标所在行的下一行行首开始插入字符,O为在光标所在行的上一行行首开始插入字符
r,R r为替换光标所在那一个字符,R为一直替换光标所指的文字,直到退出
Esc 退出,回到一般模式

命令模式 光标移动
h 光标向左移一个字符
j 光标向下移一个字符
k 光标向上移一个字符
l 光标向右移一个字符
Ctrl+f 屏幕向下翻一页
Ctrl+b 屏幕向上翻一页
Ctrl+d 屏幕向下翻半页
Ctrl+u 屏幕向上翻半页
+ 光标移动到下一行的第一个非空字符
- 光标移动到当前行的第一个非空字符
n空格(n代表数字) 光标向当前行向右移动n个字符
0(数字0) 光标移动到当前行的第一个字符(可以为空字符,注意与-区分)
$ 光标移动到当前行的最后一个字符(可以为空字符,注意与-区分)
H 光标移动到当前屏幕最上方的那一行的第一个非空字符
M 光标移动到当前屏幕最中间那一行的第一个非空字符
L 光标移动到当前屏幕最下方的那一行的第一个非空字符
G 光标移动到该文章最后一行的第一个非空字符
nG(n代表数字) 光标移动到该文章第n行的第一个非空字符
n<Enter> 光标从当前行向下移动n行的第一个非空字符
/word 在光标之后查找word字符串
?word 在光标之前查找word字符串
:s/word1/word2/g 在光标当前行查找word1,并替换成word2
:n1,n2s/word1/word2/g 在第n1行与第n2行之间查找word1,并替换成word2
:%s/word1/word2/g 整个文章查找word1,并替换成word2
:w 将编辑的数据保存到硬盘文件中
:w [filename] 将编辑后的数据保存到硬盘的另一个文件中
:r [filename] 在编辑数据时,读入另一个文件中的数据,即将filename文件中的内容加到光标所在行下一行
:wq或:x 保存并退出
:q 退出,适用于未修改的文件
:q! 强制退出,适用于修改文件后不保存退出
:set nu 显示行号
:set nonu 取消行号
:n1,n2 w [filename] 将n1到n2行的内容保存到名为filename的文件中

awk

取一个公网ip地址:

1
ifconfig | grep 'inet addr:' | cut -d: -f2 | grep -v ^10\. | grep -v ^192\.168 | grep -v ^172\. | grep -v ^127\. | awk '{print  $1}' | awk '{print;exit}'

系统资源管理

df -h

1
2
3
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda 24G 13G 9.9G 55% /
tmpfs 501M 108K 501M 1% /dev/shm

top

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
#动态查看进程消耗资源(cpu、内存)

任务: 379 total, 1 running, 308 sleeping, 0 stopped, 1 zombie
%Cpu(s): 3.8 us, 2.4 sy, 0.0 ni, 93.6 id, 0.1 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 16280288 total, 1058132 free, 8582032 used, 6640124 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 5876956 avail Mem

进程 USER PR NI VIRT RES SHR � %CPU %MEM TIME+ COMMAND
5243 lilijie 20 0 2165060 336400 60552 S 17.4 2.1 184:48.45 TIM.exe
3852 lilijie 20 0 4772836 682132 126760 S 12.8 4.2 73:35.98 gnome-shell
4948 lilijie 20 0 9932 7044 1888 S 10.5 0.0 114:50.37 wineserver+
4965 lilijie 20 0 5571964 239932 157272 S 9.2 1.5 40:01.86 netease-cl+
3350 lilijie 20 0 549928 94708 63820 S 2.6 0.6 40:03.74 Xorg
18145 lilijie 20 0 678364 50532 36728 S 2.6 0.3 0:15.33 gnome-term+
4780 lilijie 20 0 6952916 1.705g 47972 S 1.6 11.0 51:50.85 java
895 root 20 0 504548 12920 8676 S 1.0 0.1 8:33.99 udisksd
8586 lilijie 20 0 5800340 388376 65228 S 1.0 2.4 40:28.56 java
32539 lilijie 20 0 51492 4276 3456 R 1.0 0.0 0:00.39 top
914 root 20 0 4552 792 732 S 0.7 0.0 1:08.66 acpid
23293 root 20 0 779568 11432 7480 S 0.7 0.1 3:51.96 micron-age+
32138 lilijie 20 0 1579276 161104 97856 S 0.7 1.0 0:28.27 Typora
945 message+ 20 0 51804 6436 4012 S 0.3 0.0 1:45.40 dbus-daemon
3922 10000 20 0 86752 30892 1700 S 0.3 0.2 0:15.20 nginx
3923 10000 20 0 87580 33424 3380 S 0.3 0.2 0:15.12 nginx
4292 lilijie 20 0 5709832 1.507g 165024 S 0.3 9.7 17:35.18 chromium-b+

top -H

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
#查看各个线程资源消耗情况

top - 14:40:36 up 23:43, 1 user, load average: 0.91, 1.37, 1.81
Threads: 1520 total, 1 running, 1448 sleeping, 0 stopped, 1 zombie
%Cpu(s): 4.9 us, 2.6 sy, 0.0 ni, 92.2 id, 0.3 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 16280288 total, 1032576 free, 8586996 used, 6660716 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 5856040 avail Mem

进程 USER PR NI VIRT RES SHR � %CPU %MEM TIME+ COMMAND
32703 lilijie 20 0 52836 5416 3360 R 25.0 0.0 0:00.14 top
4948 lilijie 20 0 9932 7044 1888 S 8.3 0.0 114:57.05 wineserver.+
4965 lilijie 20 0 5571964 239932 157272 S 8.3 1.5 36:51.21 netease-clo+
3928 10000 20 0 87336 33112 3320 S 4.2 0.2 0:14.72 nginx
5031 lilijie 20 0 2695880 32744 22520 S 4.2 0.2 2:33.87 QQProtect.e+
5243 lilijie 20 0 2165060 336472 60552 S 4.2 2.1 87:29.94 TIM.exe
5287 lilijie 20 0 2165060 336472 60552 S 4.2 2.1 3:56.11 TIM.exe
32261 lilijie 20 0 2165060 336472 60552 S 4.2 2.1 54:08.17 TIM.exe
1 root 20 0 373304 9708 6748 S 0.0 0.1 1:14.52 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.07 kthreadd
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
7 root 20 0 0 0 0 S 0.0 0.0 0:00.91 ksoftirqd/0
8 root 20 0 0 0 0 I 0.0 0.0 1:19.64 rcu_sched
9 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_bh
10 root rt 0 0 0 0 S 0.0 0.0 0:00.03 migration/0
11 root rt 0 0 0 0 S 0.0 0.0 0:00.15 watchdog/0

free -m # 查看内存、swap使用情况,top也可以看

1
2
3
              总计         已用        空闲      共享    缓冲/缓存    可用
内存: 15898 8395 997 1702 6505 5708
交换: 2047 0 2047

压缩与解压缩

tar

1
2
$ tar czf linuxeye.tar.gz ./linuxeye #tar打包压缩
$ tar xzf linuxeye.tar.gz #解压

zip & unzip

1
2
$ zip -r linuxeye.zip ./linuxeye #zip压缩
$ unzip -q linuxeye.zip #安静的zip解压(加-q参数不会显示压缩过程)