常用Linux指令的学习与整理
基础知识
读懂man手册
其实,对于任何不理解的指令,我们可以执行man command
查看指令的详细用法。下面我们学习一下man
手册的语法结构。
在man
手册中,我们主要关心Synopsis
与Description
。前者是命令语法的摘要
,后者是完整的描述
Synopsis
通常的结构为command [OPTION]... [FILE]...
。其中要注意以下事项。
[]
里面的选项表示可有可无...
表示选项可以列多个- 选项通常有两种表示方法
- 长选项: 用
--
引导,后面跟完整的单词,如--help
- 短选项: 用
-
引导,后面跟单个字符,如-a
- 长选项: 用
- 多个短选项可以组合使用,例如
-a -l
可以写为-al
- 由
|
分开的几个选项,表示只能从几个选项中选择一个
Description
一般描述中会列举参数的详细含义
基本指令
在这里,主要介绍基于文件增删查改的指令
ls指令
ls [OPTION]… [FILE]…
列出目录下的文件,常用的用法有:1
2
3
4$ ls --color 以彩色显示档案
$ ls -l 显示详细资料
$ ls -a 显示隐藏档案
$ ls -al 同时显示隐藏档案与详细资料
cp指令
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
将一个或多个文件进行拷贝,常用的用法有:
1 | $ cp 1.txt 2.txt 复制1.txt,并重命名为2.txt |
mv指令
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
将一个或多个文件进行移动。我们会发现cp
和mv
的指令结构完全一致,常用的用法有:
1 | $ mv 1.txt 2.txt 移动1.txt,并重命名为2.txt |
rm指令
cp [OPTION]… FILE…
将一个或多个文件进行删除,常用的用法有:
1 | $ rm -rf directory 将文件夹下的所有文件强制删除 |
pwd指令
pwd [OPTION]…
显示当前的文件目录
cat指令
cat [OPTION]… [FILE]…
列出文件的内容,但配合重定向符号
有很多种用法。常用的用法有:
1 | $ cat 1.txt 列出1.txt里的内容 |
高级指令
find指令
find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path…] [expression]
但是[-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec]
并不常用,因此指令可以简化为
find [path…] [experssion]
该指令执行查找,常用的用法有:
1 | $ find . -name file.txt 在当前目录下搜索文件file.txt |
chmod指令
chmod [OPTION]… MODE[,MODE]… FILE…
修改一个或多个文件的权限,常用的用法有:
1 | $ chmod 777 1.txt 将1.txt权限修改为777 |
要注意[ugoa]的含义。u->owner, g->group, o->other, a->all
grep指令
grep [OPTION]… PATTERN [FILE]…
在FILE的每一行中,查找满足PATTERN的行并输出:
1 | $ ls | grep 2.txt 在当前路径中查找似乎否有2.txt |
awk指令
awk 指令比较复杂,但是也特别灵活。今后有时间会详细写一下,这里只列举几个例子1
$ awk < 1.csv -F, '{print $7}' 将文件1.csv的每一行按照','分割,输出第七列
再来一个复杂的例子1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21cat 2.csv | awk '
BEGIN {
maxCount = 0;
id;
FS = ",";
}
{
count[$5]+=$13;
name[$5] = $7;
}
END {
for (c in count) {
if (count[c] > maxCount) {
maxCount = count[c];
id = c;
}
}
print name[id];
}
'
如果在2.csv种,第5列表示id,第7列表示名字,第13列表示销量。那么该代码表示找到总销量最多的id,并输出其中的一个名字。
感觉awk写复杂了就是c语言代码了。
cut指令
cut OPTION… [FILE]…
从文件中截取特订的列,常见的用法有:1
2$ cut -d',' -f1 file.txt 将file.txt已逗号分隔,输出第一列
$ find -c1-3 file.txt 输出file.txt的前三列
sed指令
该指令也是一个比较复杂的指令,暂不介绍。
系统指令
ps指令
ps [OPTIONS]
查看当前进程,通常和grep一起用:1
$ ps | grep bash 查看名为bash的进程
kill指令
kill [-s signal|-p] [–] pid…
向pid进程发送信号
telent指令
用于和主机通信的指令,通常用于诊断服务器
1 | $ telent myhost.com |
parted指令
parted [options] [device [command [options…]…]]
查看或操作分区,常用的指令:1
$ parted -l 列出所有的磁盘分区