Linux - 常用命令

命令的基本格式

[root@localhost~]

root为用户名(#超级用户 $普通用户) localhost主机名
命令的基本格式:

1
命令[选项][参数]

查询目录的内容

命令格式:

1
ls [选项][文件或目录]

选项:

  • -a 所有文件,包括隐藏文件。
  • -l 查看详情,包含文件的确切大小,拥有该文件的人员,有权查看该文件,以及何时进行上次修改。
  • -d 查看目录属性
  • -h 显示文件大小

文件处理

  1. 建立目录

mkdir -p[目录名]
-p表示递归创建文件夹

  1. 切换目录

cd [目录]
简化操作:

1
2
3
4
cd ~ 进入当前用户目录
cd - 上次目录
cd .. 进入上一级目录
pwd 查看当前目录所在位置
  1. 删除目录
1
2
rmdir [目录] 删除所有文件
rm -rf [目录] 删除目录所有文件
  1. 复制目录

cp [选项] [原文件目录] [目标目录]

选项:

  • -r复制目录

  • -p连文件属性一起复制

  • -a 相当于-pdr

  1. 剪切、改名

mv [原文件目录] [目标文件目录]

1
mv filename1 filename2

filename1 文件的源路径,filename2 是目标路径。

  1. 常见目录作用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/ 根目录

/bin 命令保存目录

/boot 启动目录

/dev 设备文件命令

/etc 配置文件保存目录

/home 家目录

/lib 系统库保存命令

/mnt 系统挂载目录
  1. 创建或更新文件
1
touch filename
  1. cat

它可以在UNIX或Linux下用于以下目的。

  • 在屏幕上显示文本文件
  • 复制文本文件
  • 合并文本文件
  • 创建新的文本文件
1
2
3
cat filename
cat file1 file2
cat file1 file2 > newcombinedfile
  1. more

显示文件的第一部分(用空格移动并键入q以退出)。

1
more filename
  1. head

输出文件的前10行。

1
head filename
  1. tail

输出最后10行文件。用于-f在文件增长时输出附加数据。

1
tail filename
  1. diff

比较文件,并列出他们的差异。

1
diff filename1 filename2
  1. lpr

打印文件。

1
lpr filename

文件搜索

  1. locate

locate [文件名] 在系统数据库中查找文件。新建的文件,要执行updatedb操作之后才能搜到。

  1. 命令搜索

whereis [选项] [命令名] 或者 which [选项][命令名]

选项:

  • -b 只查找可执行文件

  • -m 只查找帮助文件

说明:whereis使用系统自动构建的数据库来搜索可执行文件,源文件和手册页面。
which在环境变量PATH指定的目录中搜索可执行文件。此命令将打印可执行文件的完整路径。

  1. 文件搜索

find [搜索范围][选项][条件]

举例:

在根目录下查找名为install.log文件
find / -name install.log

忽略大小写查找文件
find /root -inname install.log

find /var/log -mtime +10

其中-mtime 文件修改时间

-atime 文件访问时间

-ctime 改变文件属性时间

+10 10天前

10 10天

-10 10天内

查找文件大于20M的文件
find /etc -size +20M

文本操作

  1. awk

awk 是处理文本文件最有用的命令。它一行一行地在整个文件上运行。默认情况下,它使用空格分隔字段。awk命令最常用的语法是:

1
awk '/search_pattern/ { action_to_take_if_pattern_matches; }' file_to_parse

/etc/passwd文件包含的示例数据为例:

1
2
3
4
5
root:x:0:0:root:/root:/usr/bin/zsh
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync

现在从这个文件只获取用户名。 -F指定要基于哪个分隔字段。在我们的例子中 { print $1 } 意味着打印出第一个匹配字段。

1
awk -F':' '{ print $1 }' /etc/passwd

运行上述命令后,将获得以下输出。

1
2
3
4
5
root
daemon
bin
sys
sync
  1. grep

查找文件内的文本。可以使用 grep 搜索与一个或多个正则表达式匹配的文本行,并仅输出匹配的行。

1
grep pattern filename

示例:

1
2
3
4
$ grep admin /etc/passwd
_kadmin_admin:*:218:-2:Kerberos Admin Service:/var/empty:/usr/bin/false
_kadmin_changepw:*:219:-2:Kerberos Change Password Service:/var/empty:/usr/bin/false
_krb_kadmin:*:231:-2:Open Directory Kerberos Admin Service:/var/empty:/usr/bin/false

还可以通过使用-i选项强制grep忽略单词大小写。-r可用于搜索指定目录下的所有文件,例如:

1
$ grep -r admin /etc/

-w 只搜索单词。

  1. wc

统计一个文件中有多少行,多少单词和多少字符。

1
wc filename

示例:

1
2
$ wc demo.txt
7459 15915 398400 demo.txt

7459 是行数, 15915 是单词数, 398400 是字符数.

  1. sed

用于过滤和转换文本的流编辑器。

example.txt文件内容如下:

1
Hello This is a Test 1 2 3 4

用连字符替换所有空格

1
sed 's/ /-/g' example.txt

结果如下:

1
Hello-This-is-a-Test-1-2-3-4

使用”d”替换所有的数字

1
sed 's/[0-9]/d/g' example.txt

结果如下:

1
Hello This is a Test d d d d
  1. sort

排序文本文件的行

example.txt文件内容如下:

1
2
3
4
5
6
7
f
b
c
g
a
e
d

排序example.txt

1
sort example.txt

结果如下:

1
2
3
4
5
6
7
a
b
c
d
e
f
g

随机化一个排序的example.txt

1
sort example.txt | sort -R

结果如下:

1
2
3
4
5
6
7
b
f
a
c
d
g
e
  1. uniq
    报告或省略重复的行

example.txt文件内容如下:

1
2
3
4
5
6
7
8
a
a
b
a
b
c
d
c

只显示example.txt的唯一行(首先你需要排序,否则看不到重叠)

1
sort example.txt | uniq

结果如下:

1
2
3
4
a
b
c
d

显示每行的唯一项,并告诉我找到了多少个实例

1
sort example.txt | uniq -c

结果如下:

1
2
3
4
3 a
2 b
2 c
1 d
  1. cut
    从每行文件中删除部分。

example.txt文件内容如下:

1
red riding hood went to the park to play

显示第2,7和9栏的空格作为分隔符

1
cut -d " " -f2,7,9 example.txt

结果如下:

1
riding park play
  1. echo

显示一行文字

显示 “Hello World”

1
echo Hello World

结果如下:

1
Hello World

用字母之间的换行显示 “Hello World”

1
echo -ne "Hello\nWorld\n"

结果如下:

1
2
Hello
World
  1. fmt
    简单的最佳文本格式化程序

example.txt内容如下:

1
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

将example.txt的行输出为20个字符的宽度

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
cat example.txt | fmt -w 20
Lorem ipsum
dolor sit amet,
consetetur
sadipscing elitr,
sed diam nonumy
eirmod tempor
invidunt ut labore
et dolore magna
aliquyam erat, sed
diam voluptua. At
vero eos et
accusam et justo
duo dolores et ea
rebum. Stet clita
kasd gubergren,
no sea takimata
sanctus est Lorem
ipsum dolor sit
amet.
  1. tr

翻译或删除字符

example.txt文件内容如下:

1
Hello World Foo Bar Baz!

把所有小写字母变成为大写

1
cat example.txt | tr 'a-z' 'A-Z'

结果如下:

1
HELLO WORLD FOO BAR BAZ!

把所有的空格变成换行符

1
cat example.txt | tr ' ' '\n'

结果如下:

1
2
3
4
5
Hello
World
Foo
Bar
Baz!
  1. nl

显示文件的行数

example.txt内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Lorem ipsum
dolor sit amet,
consetetur
sadipscing elitr,
sed diam nonumy
eirmod tempor
invidunt ut labore
et dolore magna
aliquyam erat, sed
diam voluptua. At
vero eos et
accusam et justo
duo dolores et ea
rebum. Stet clita
kasd gubergren,
no sea takimata
sanctus est Lorem
ipsum dolor sit
amet.

带行号显示 example.txt

1
nl -s". " example.txt

结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 1. Lorem ipsum
2. dolor sit amet,
3. consetetur
4. sadipscing elitr,
5. sed diam nonumy
6. eirmod tempor
7. invidunt ut labore
8. et dolore magna
9. aliquyam erat, sed
10. diam voluptua. At
11. vero eos et
12. accusam et justo
13. duo dolores et ea
14. rebum. Stet clita
15. kasd gubergren,
16. no sea takimata
17. sanctus est Lorem
18. ipsum dolor sit
19. amet.
  1. egrep

打印匹配模式的行 - 扩展表达式(别名为:grep -E

example.txt文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Lorem ipsum
dolor sit amet,
consetetur
sadipscing elitr,
sed diam nonumy
eirmod tempor
invidunt ut labore
et dolore magna
aliquyam erat, sed
diam voluptua. At
vero eos et
accusam et justo
duo dolores et ea
rebum. Stet clita
kasd gubergren,
no sea takimata
sanctus est Lorem
ipsum dolor sit
amet.

在其中显示“Lorem”或“dolor”的行

1
2
3
egrep '(Lorem|dolor)' example.txt
or
grep -E '(Lorem|dolor)' example.txt

结果如下:

1
2
3
4
5
6
Lorem ipsum
dolor sit amet,
et dolore magna
duo dolores et ea
sanctus est Lorem
ipsum dolor sit
  1. fgrep

打印匹配模式到的行 - FIXED模式匹配(别名为:grep -F

example.txt文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Lorem ipsum
dolor sit amet,
consetetur
sadipscing elitr,
sed diam nonumy
eirmod tempor
foo (Lorem|dolor)
invidunt ut labore
et dolore magna
aliquyam erat, sed
diam voluptua. At
vero eos et
accusam et justo
duo dolores et ea
rebum. Stet clita
kasd gubergren,
no sea takimata
sanctus est Lorem
ipsum dolor sit
amet.

在example.txt中找到具体的字符串’(Lorem | doloar)’

1
2
3
fgrep '(Lorem|dolor)' example.txt
or
grep -F '(Lorem|dolor)' example.txt

结果如下:

1
foo (Lorem|dolor)

压缩与解压缩

常见压缩格式:.zip 、 .gz 、 .bz2、 .tar.gz 、 .tar.bz2

  1. zip格式

压缩文件

zip [压缩文件名][原文件]

压缩目录

zip -r [压缩文件名][原文件]

举例:

1
2
3
4
5
touch jp/cangls

touch jp/longls

zip -r jp.zip jp

解压:

unzip [压缩文件名]

压缩为gz格式,原文件不保留

gzip [原文件]

  1. gz格式

压缩.gz格式,原文件保留

gzip -c 原文件 > 压缩文件

压缩目录:

gzip -r 目录

解压:

guzip [文件]

guzip -r [目录]

查看gzip压缩文件,而不需要gunzip它

1
gzcat filename
  1. tar

打包

tar -cvf 打包文件名 原文件

解压

tar -xvf jp.tar

  1. tar.gz

打包

tar -zcvf 压缩包名.tar.gz 原文件

解压
tar -zxvf 压缩包名.tar.gz

关机、重启

shutdown [选项][时间]

选项:

  • -c 取消前一个关机命令

  • -h 关机

  • -r 重启

  • init 6 重启

  • init 0 关机

  • logout 退出登陆

查看用户信息

wwholastlastlog

输出重定向

命令>文件 以覆盖的方式,把正确的命令输出到指定文件

命令>>文件 以追加的方式,把正确的命令输出到指定文件、

错误命令 2> 文件 以覆盖的方式把错误的命令覆盖到指定文件

错误命令 2>> 文件 以追加的方式把错误的命令覆盖到指定文件

命令>>文件 2>&1 同时追加正确命令和错误命令到 指定文件

命令 >>文件1 2>>文件2 把正确的命令输出到文件1错误的文件2

网络相关

  1. ifconfig查看ip

举个例子:

1
2
3
ifconfig>> ip.log

cat ip.log
  1. 查看网络状态

netstat [选项]

选项:

  • -t: 列出tcp 协议端口

  • -u: 列出upd协议端口

  • -n ip地址个端口号

  • -l 列出监听状态的

  • -a 所有

  1. 查看路由列表

netstat -rn 或者 route -n

  1. 查看某域名与自己的电脑的网络状态

ping www.baidu.com

vi编辑器

vi的升级版是vim

  1. vim的操作模式

commond mode 命令模式

inser tmode 编辑模式

lastline mode 底行模式

  1. 模式切换

i 进入编辑模式

esc 进入命令行模式

  1. 命令模式

vim [文件] 进入文件或者创建文件(文件不存在的情况下)

vim + [文件名] 进入文件尾部

vim +/[字符串] [文件名] 光标定位到文件第一次出现该字符串的位置

  1. 底行模式

:w 保存

:q退出

:! 强制

:15 定位的第15行

/[字符串] 光标位置向后搜索该字符串

?[字符串] 光标位置向前搜索该字符串

dd删除光标所在行

ctr+f 向下翻页

ctr+b 向上翻页

常用操作快捷键

ctr+c 终止当前命令

ctr+l 清屏 相当于 clear

ctr+a 光标移到行首

ctr+e 光标移到行尾

ctr+u 把光标所在位置删除到行首

ctr+z 把命令放入后台

ctr+r 在历史命令中搜索

本文标题:Linux - 常用命令

文章作者:王洪博

发布时间:2018年08月21日 - 14:08

最后更新:2020年02月13日 - 02:02

原始链接:http://whb1990.github.io/posts/cb6839f2.html

▄︻┻═┳一如果你喜欢这篇文章,请点击下方"打赏"按钮请我喝杯 ☕
0%