热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

20181104Basic_Linux_Commands_You_Must_Know

如何寻求帮助?在Linux下遇到问题,最重要的是要自己寻求帮助,下面是三种寻求帮助的方法。man第一个你需要知道的Linux命令就是man命令,该命令可以显示指定命令的用法和描述。

如何寻求帮助?

在 Linux 下遇到问题,最重要的是要自己寻求帮助,下面是三种寻求帮助的方法。

man

第一个你需要知道的Linux命令就是man命令,该命令可以显示指定命令的用法和描述。

语法: man

man 是 Linux 的帮助手册,即 manual 。因为大多数程序都会自带手册,所以可以通过 man 命令获取帮助。执行以后,在 man page 页面中按 q 退出。

比如你想知道ls命令的用法和选项,可以在终端执行“man ls”,获取 ls 的帮助

man ls
root@devopscube:~# man ls
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is speciâ
fied.
Mandatory arguments to long options are mandatory for short options
too.
-a, --all
do not ignore entries starting with .

查看有多少(针对不同方面的)同名手册

$ man -f ls
ls (1) - list directory contents
ls (1p) - list directory contents

查看特定的手册

$ man 1p ls

info

与 man 不同的是,可以像浏览网页一样在各个节点中跳转。

从文档首页开始浏览

$ info

获取特定程序的帮助

$ info program

help

除了上面的两种方法外,还有一种简单使用的方法,那就是 –help 参数,一般程序都会有这个参数,会输出最简单有用的介绍。

$ man --help ### 获取 man 的帮助
$ info --help ### 获取 info 的帮助
$ ls --help ### 获取 ls 的帮助

============================================================

终端如何简单操作?

在 Terminal(终端) 中,有许多操作技巧,这里就介绍几个简单的。

终端简单操作

up(方向键上) 可以调出输入历史执行记录,快速执行命令
down(方向键下) 配合 up 选择历史执行记录
Home 移动光标到本行开头
End 移动光标到本行结尾
PgUp 向上翻页
PaDN 向下翻页
ctrl + c 终止当前程序

Tab 补全

Tab 补全是非常有用的一个功能,可以用来自动补全命令或文件名,省时准确。
未输入状态下连按两次 Tab 列出所有可用命令
已输入部分命令名或文件名,按 Tab 进行自动补全,多用你就肯定会喜欢的了。

============================================================

Basic_Linux_Commands

虽然Linux发行版支持各种各样的GUI(graphical user interfaces),但在某些情况下,Linux的命令行接口(bash)仍然是简单快速的。Bash和 Linux Shell 需要输入命令来完成任务,因而被称为命令行接口。

命令是计算机执行任务的指令。可以使用命令去关闭计算机,或者列出当前目录的文件列表,或当前文本的内容,或者屏幕显示一条消息。

如果你是一个新手,并尝试使用命令行接口,我们收集了各种基本的Linux命令来供你学习,帮你在各种Linux发行版中完成各种任务。虽然不是很详细,但是对Linux初学者,或普通用火,或管理员都是很有用的。

1. ls – List

ls会列举出当前工作目录的内容(文件或文件夹),就跟你在GUI中打开一个文件夹去看里面的内容一样。

ls 即 list ,列出文件。

$ ls ### 仅列出当前目录可见文件
$ ls -l ### 列出当前目录可见文件详细信息,长列表
$ ls -hl ### 列出详细信息并以可读大小显示文件大小,详细信息
$ ls -al ### 列出所有文件(包括隐藏)的详细信息

注意: Linux 中 以 . 开头的文件或文件夹均为隐藏文件或隐藏文件夹。

2. mkdir – Make Directory

mkdir 创建一个新目录,用于新建文件夹。

$ mkdir folder
$ mkdir -p folder/subfolder ### -p 参数为当父目录存在时忽略,若不存在则建立,用此参数可建立多级文件夹

3. pwd – Print Working Directory

pwd显示当前工作目录,用于返回当前工作目录的名字,为绝对路径名。

$ pwd
/home

4. cd – Change Directory

对于当前在终端运行的会中中,cd 将给定的文件夹(或目录)设置成当前工作目录。

cd 是打开某个路径的命令,也就是打开某个文件夹,并跳转到该处。

$ cd path ### path 为你要打开的路径。
# $ cd(change directory) 切换文件夹,这个应该是最常用的
$ cd - # 返回刚才的目录
$ cd ~ # 主目录

其中 path 有绝对路径和相对路径之分,绝对路径强调从 / 起,一直到所在路径。相对路径则相对于当前路径来说,假设当前家目录有etc 文件夹(绝对路径应 为 /home/username/etc),如果直接 cd etc 则进入此文件夹,但若是 cd /etc/ 则是进入系统 etc ,多琢磨一下就可以理解了。另外在 Linux 中, . 代表当前目录, .. 代表上级目录,因此返回上级目录可以 cd .. 。

5. rmdir – Remove Directory

rmdir 删除给定的目录。

6. rm – Remove

rm 即 remove ,删除文件。
rm 会删除给定的文件或文件夹,可以使用rm -r 递归删除文件夹

$ rm filename ### 删除 filename
$ rm -i filename ### 删除 filename 前提示,若多个文件则每次提示
$ rm -rf folder/subfolder/ ### 递归删除 subfolder 下所有文件及文件夹,包括 subfolder 自身
$ rm -d folder ### 删除空文件夹

7. cp – Copy

cp 即 copy ,复制文件。

cp 命令对文件或文件夹进行复制

可以使用cp -r 选项来递归复制文件夹。

$ cp source dest ### 将 source 复制到 dest
$ cp folder/* dest ### 将 folder 下所有文件(不含子文件夹中的文件)复制到 dest
$ cp -r folder dest ### 将 folder 下所有文件(包含子文件夹中的所有文件)复制到 dest

8. mv – MoVe

mv 即 move ,移动文件。
mv 命令对文件或文件夹进行移动
如果文件或文件夹存在于当前工作目录,还可以对文件或文件夹进行重命名。

$ mv source folder ### 将 source 移动到 folder 下,完成后则为 folder/source
$ mv -i source folder ### 在移动时,若文件已存在则提示 **是否覆盖**
$ mv source dest ### 在 dest 不为目录的前提下,重命名 source 为 dest

9. cat – concatenate and print files

cat 用于在标准输出(监控器或屏幕)上查看文件内容。用于输出文件内容到 Terminal 。

cat命令用来查看文件的内容,但是使用cat命令并不能编辑文件的内容,它仅仅是可以浏览文件内容。cat命令不支持键盘上下键翻页。

语法: cat
cat demo.txt
变形1:
head -n 5 hello_world.txt
变形2:
tail -n 5 hello_world.txt

$ cat /etc/locale.gen ### 输出 locale.gen 的内容
$ cat -n /etc/locale.gen ### 输出 locale.gen 的内容并显示行号
$ cat /proc/version ### 系统信息
$ cat /proc/meminfo ### 内存信息
$ cat /proc/partitions ### 硬盘信息

10. tail – print TAIL (from last) >

tail 默认在标准输出上显示给定文件的最后10行内容,可以使用tail -n N 指定在标准输出上显示文件的最后N行内容。

11. less – print LESS

less 按页或按窗口打印文件内容。在查看包含大量文本数据的大文件时是非常有用和高效的。你可以使用Ctrl+F向前翻页,Ctrl+B向后翻页。

12. grep

grep “” 在给定的文件中搜寻指定的字符串。grep -i “” 在搜寻时会忽略字符串的大小写,而grep -r “” 则会在当前工作目录的文件中递归搜寻指定的字符串。

grep 主要用于返回匹配的项目,支持正则表达式。Grep命令非常强大,系统管理员经常会用到它。grep命令可以在文件中搜索指定格式的字符串,同时对其进行标准输出。

语法: grep ""
grep "Mathew" test.txt

$ grep PATTERN filename ## 返回所有含有 PATTERN 的行
$ grep zh_CN /etc/locale.gen ## 返回所有含 zh_CN 的行

root@devopscube:~# grep "dennis" test.txt
# 4 dennis start beginner jul

上面命令的输出结果是包含该子字符串的,如果你想检索完整的单词,你需要添加“-i”选项。同时,也可以用grep命令在多个文件中搜索字符串,命令代码如下:

grep “dennis” test1.txt test2.txt test3.txt
当然你也可以用正则表达式来匹配字符串。

4、cut命令

cut命令可以让你用列或者分隔符提取文件中的指定部分。如果你要列出文件中某列的全部内容,可以使用“-c”选项。例如,下面将从test.txt文件中提取第1、2列的全部内容。

cut -c1-2 test.txt

root@devopscube:~# cut -c1-2 test.txt
1
10
45
4
7
58

如果你希望从文件中提取指定的字符串,那么你可以使用分隔符选项“-d”和“-f”选项选中列。例如,我们可以利用cut命令提取names列:

cut -d’ ‘ -f2 test.txt

root@devopscube:~# cut -d’ ‘ -f2 test.txt
mike
lucy
Dave
dennis
Megan
Mathew

下面的例子从/etc/passd file中提取users列:

cut -d’:’ -f1 /etc/passwd

13. Find

这个命令会在给定位置搜寻与条件匹配的文件。你可以使用find -name 的-name选项来进行区分大小写的搜寻,find -iname 来进行不区分大小写的搜寻。

find -iname

find命令示例

find命令用来检索文件,可以用“-name”选项来检索指定名称的文件:

find -name find -name test.txt
root@devopscube:/home/ubuntu# cd ~
root@devopscube:~# find -name test.txt
./demo/test.txt
./test.txt

你也可以用“/ -name”来检索指定名称的文件夹:
find / -name passwd

root@devopscube:~# find / -name passwd
/etc/cron.daily/passwd
/etc/pam.d/passwd
/etc/passwd
/usr/share/lintian/overrides/passwd

14. tar

tar命令用来压缩和解压缩文件,其中经常会用到“-cf”和“-xf”选项。

语法: tar

tar命令能创建、查看和提取tar压缩文件。tar -cvf 是创建对应压缩文件,tar -tvf 来查看对应压缩文件,tar -xvf 来提取对应压缩文件。

tar 主要用于创建归档文件,和解压归档文件,其本身是没有压缩功能的,但可以调用 gzip 、 bzip2 进行压缩处理。
参数解释:
-c 创建归档
-x 解压归档
-v 显示处理过程
-f 目标文件,其后必须紧跟 目标文件
-j 调用 bzip2 进行解压缩
-z 调用 gzip 进行解压缩
-t 列出归档中的文件

$ tar -cvf filename.tar . ## 将当前目录所有文件归档,但不压缩,注意后面有个 ’.‘ ,不可省略,代表当前目录的意思
$ tar -xvf filename.tar ## 解压 filename.tar 到当前文件夹
$ tar -cvjf filename.tar.bz2 . ## 使用 bzip2 压缩
$ tar -xvjf filename.tar.bz2 ## 解压 filename.tar.bz2 到当前文件夹
$ tar -cvzf filename.tar.gz ## 使用 gzip 压缩
$ tar -xvzf filename.tar.gz ## 解压 filename.tar.gz 到当前文件夹
$ tar -tf filename ## 只查看 filename 归档中的文件,不解压

让我们将test.txt文件打包:

# tar -cf test.tar test.txt
root@devopscube:~# tar -cf test.tar test.txt
root@devopscube:~# ls
test.tar test.txt

用“-C”选项将刚才打包好的test.tar文件解压缩至“demo”目录:

tar -xf test.tar -C /root/demo/
root@devopscube:~# tar -xf test.tar -C /root/demo/
root@devopscube:~# cd demo/
root@devopscube:~/demo# ls
test.txt

15. gzip

gzip 命令创建和提取gzip压缩文件,还可以用gzip -d 来提取压缩文件。

16. unzip

unzip 对gzip文档进行解压。在解压之前,可以使用unzip -l 命令查看文件内容。

17. help

–help会在终端列出所有可用的命令,可以使用任何命令的-h或-help选项来查看该命令的具体用法。

18. whatis – What is this command

whatis 会用单行来描述给定的命令。

19. man – Manual

man 会为给定的命令显示一个手册页面。

20. exit

exit用于结束当前的终端会话。

21. ping

ping 通过发送数据包ping远程主机(服务器),常用与检测网络连接和服务器状态。

ping 主要用于测试网络连通,通过对目标机器发送数据包来测试两台主机是否连通,及延时情况。

$ ping locez.com ## 通过域名 ping,若 DNS 未设置好,可能无法 ping 通
$ ping linux.cn
PING linux.cn (211.157.2.94) 56(84) bytes of data.
64 bytes from 211.157.2.94.static.in-addr.arpa (211.157.2.94): icmp_seq=1 ttl=53 time=41.5 ms
64 bytes from 211.157.2.94.static.in-addr.arpa (211.157.2.94): icmp_seq=2 ttl=53 time=40.4 ms
64 bytes from 211.157.2.94.static.in-addr.arpa (211.157.2.94): icmp_seq=3 ttl=53 time=41.9 ms
^C
--- linux.cn ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 40.406/41.287/41.931/0.644 ms
$ ping 211.157.2.94 ## 通过 IP 地址 ping ,若无法 ping 通可能是网络连接出现问题

22. who – Who Is logged in

who能列出当前登录的用户名。

23. su – Switch User

su 用于切换不同的用户。即使没有使用密码,超级用户也能切换到其它用户。

24. uname

uname会显示出关于系统的重要信息,如内核名称、主机名、内核版本、处理机类型等等,使用uname -a可以查看所有信息。get name and information about current kernel

25. free – Free memory

free会显示出系统的空闲内存、已经占用内存、可利用的交换内存等信息,free -m将结果中的单位转换成KB,而free –g则转换成GB。get name and information about current kernel

26. df – Disk space Free

df查看文件系统中磁盘的使用情况–硬盘已用和可用的存储空间以及其它存储设备。你可以使用df -h将结果以人类可读的方式显示。report free disk space

27. ps – ProcesseS

ps显示系统的运行进程。report free disk space

28. Top – TOP processes

top命令会默认按照CPU的占用情况,显示占用量较大的进程,可以使用top -u 查看某个用户的CPU使用排名情况。

29. shutdown

shutdown用于关闭计算机,而shutdown -r用于重启计算机。

shutdown是最安全的关机和重启命令,平时使用时推荐使用shutdown命令关机和重启。

shutdown语法

shutdown [选项] [参数]

【详解】shutdown是最安全的关机和重启命令,平时使用时推荐使用shutdown命令关机。而且该命令支持定时操作。

shutdown选项

选项相应功能
-a指定权限
-r重启计算器(和reboot)命令一样
-k模拟关机(只向用户发出警告信息,但不关机)
-h关闭计算机并关闭电源(常用)
-n不调用init进程关闭计算机(不推荐)
-c取消正在执行的关机命令
-f重启计算机,但不进行磁盘检测
-F重启计算机,进行磁盘检测
-t(秒)指定发出警告信息与删除信息时要延迟的秒数

【附加参数】

shutdown参数

时间 指关闭计算机的时间。可以为详细时间,如22:00,晚上10点关闭计算机, 也可以作为详细分钟,如“+5”,则5分钟后关机。
警告信息 可以是任意文本,信息,需要引号括起来才能使用。

shutdown例子:

(1)、通过shutdown命令重启计算机(加now则是立即重启)
shutdown -r now

(2)、设置1分钟以后关闭计算机,并在SSH中提示“1 minute after shutdown”
shutdown -h +1 "1 minute after shutdown"

(3)、取消关机

若需要取消关机、重启操作,在SSH中可按Ctrl+C快捷键取消正在执行的命令。

当然若重新登陆了SSH或其它情况,可通过一下代码取消(定时)关机。
shutdown -c

30. more-显示更多,Cat

more 与 cat 相似,都可以查看文件内容,所不同的是,当一个文档太长时, cat 只能展示最后布满屏幕的内容,前面的内容是不可见的。这时候可用 more 逐行显示内容。

$ more /etc/locale.gen
$ more +100 /etc/locale.gen ### 从 100 行开始显示

31. less

less 与 more 相似,不过 less 支持上下滚动查看内容,而 more 只支持逐行显示。

同样的less命令也可以让你浏览文件,less命令非常快,并且支持上下键查看文件的开头和末尾。然而more命令和它类似,只是more命令只能用enter键实现文件的向前翻页,不支持回退。

语法: less
more

$ less /etc/locale.gen
$ less +100 /etc/locale.gen
less demo.txt
more demo.txt

32. nano

nano 是一个简单实用的文本编辑器,使用简单。

$ nano filename ### 编辑 filename 文件,若文件不存在,则新打开一个文件,若退出时保存,则创建该文件

编辑完后,ctrl + X 提示是否保存,按 y 确定保存即可。
注意:在使用过程中可用 ctrl + G 获取帮助。

33. reboot

reboot 为重启命令。

# reboot ### '$' 和 '#' 的区别在于 '$' 普通用户即可执行
### 而 '#' 为 root 用户才可执行,或普通用户使用 'sudo'

34. poweroff

poweroff 为关机命令。

# poweroff ### 马上关机

35. mount 挂载文件系统

mount 用于挂载一个文件系统,需要 root 用户执行。一个磁盘可分为若干个分区,在分区上面可以创建文件系统,而挂载点则是提供一个访问的入口,将一个分区的文件系统挂载到某个目录中,称这个目录为挂载点,并且可以通过这个挂载点访问该文件系统中的内容。

例如一块硬盘在 Linux 中表示为 /dev/sda 那么它上面的分区应该表示为 /dev/sda1 、/dev/sda2 。

# mount ## 输出系统目前的挂载信息
# mount /dev/sda1 /mnt ## 将 sda1 挂载到 /mnt 中
# cd /mnt ## 直接通过 /mnt 访问内容
# mount -o remount,rw /mnt ## 重新挂载 sda1 到 /mnt 并设置为 可读写
# mount -a ## 挂载 fstab 文件配置好的文件系统
# Win10 Sharing Folder
# mount /mnt/hgfs/CentOS_Sharing/
# ls /mnt/hgfs/CentOS_Sharing/

36. umount卸载一个挂载点

umount 与 moung 相反,是卸载一个挂载点,即取消该入口。

# umount /mnt ## 卸载 /mnt 这个挂载点的文件系统
# umount -a ## 卸载所有已挂载的文件系统

37. ln

ln 主要用于在两个文件中创建链接,链接又分为 Hard Links (硬链接)和 Symbolic Links (符号链接或软链接),其中默认为创建硬链接,使用 -s 参数指定创建软链接。

硬链接主要是增加一个文件的链接数,只要该文件的链接数不为 0 ,该文件就不会被物理删除,所以删除一个具有多个硬链接数的文件,必须删除所有它的硬链接才可删除。

软链接简单来说是为文件创建了一个类似快捷方式的东西,通过该链接可以访问文件,修改文件,但不会增加该文件的链接数,删除一个软链接并不会删除源文件,即使源文件被删除,软链接也存在,当重新创建一个同名的源文件,该软链接则指向新创建的文件。

硬链接只可链接两个文件,不可链接目录,而软链接可链接目录,所以软链接是非常灵活的。

$ ln source dest ## 为 source 创建一个名为 dest 的硬链接
$ ln -s source dest ## 为 source 创建一个名为 dest 的软链接

38. chown-Change Owner

chown 用于改变一个文件的所有者及所在的组。

# chown user filename ## 改变 filename 的所有者为 user
# chown user:group filename ## 改变 filename 的所有者为 user,组为 group
# chown -R root folder ## 改变 folder 文件夹及其子文件的所有者为 root

39. chmod

chmod命令用来改变文件的读/写/执行权限,权限数值如下所示:

4 – read permission
2 – write permission
1 – execute permission
0 – no permission

下面的命令可以给test.txt文件赋最高的权限:

chmod 755 test.txt
sudo chmod 777 -R .git/*

chmod 永远更改一个文件的权限,主要有 读取 、 写入 、 执行 ,三种权限,其中 所有者 、 用户组 、 其他 各占三个,因此 ls -l 可以看到如下的信息

-rwxr--r-- 1 locez users 154 Aug 30 18:09 filename
# 其中 r=read , w=write , x=execute
# chmod +x filename ## 为 user ,group ,others 添加执行权限
# chmod -x filename ## 取消 user , group ,others 的执行权限
# chmod +w filename ## 为 user 添加写入权限
# chmod ugo=rwx filename ## 设置 user ,group ,others 具有 读取、写入、执行权限
# chmod ug=rw filename ## 设置 user ,group 添加 读取、写入权限
# chmod ugo=--- filename ## 取消所有权限

40. useradd

useradd 用于添加一个普通用户。

# useradd -m -g users -G audio -s /usr/bin/bash newuser
## -m 创建 home 目录, -g 所属的主组, -G 指定该用户在哪些附加组, -s 设定默认的 shell ,newuser 为新的用户名
# 现在开始新建共享文件夹的用户willy,使用命令“useradd willy”,如下
useradd willy
# 使用命令“passwd willy”,对用户添加密码,如下
passwd willy
# 使用命令“mkdir /home/willy/myshare”,
# 在用户willy文件夹下新建“myshare”共享文件夹,(中途以willy用户进入了系统,所以多了很多中文文件夹)
cd ~
mkdir /home/willy/myshare
cd /home/willy/
ls
# 使用命令“chmod -R 777 /home/willy/myshare”,
# 将整个myshare文件夹与其中的文件和子目录的权限都设置为rwxrwxrwx,即所有人都可以查看操作
chmod -R 777 /home/willy/myshare

41. passwd

passwd 用于改变用户登录密码。

$ passwd ## 不带参数更改当前用户密码
# passwd newuser ## 更改上述新建的 newuser 的用户密码

42. whereis

whereis 用于查找文件、手册等。

$ whereis bash
bash: /usr/bin/bash /etc/bash.bashrc /etc/bash.bash_logout /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
$ whereis -b bash ## 仅查找 binary
bash: /usr/bin/bash /etc/bash.bashrc /etc/bash.bash_logout
$ whereis -m bash ## 仅查找 manual
bash: /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz

43. find

find 也用于查找文件,但更为强大,支持正则,并且可将查找结果传递到其他命令。

$ find . -name PATTERN ## 从当前目录查找符合 PATTERN 的文件
$ find /home -name PATTERN -exec ls -l {} /; # 从 /home 文件查找所有符合 PATTERN 的文件,并交由 ls 输出详细信息

44. wget

wget 是一个下载工具,简单强大。

$ wget -O newname.md https://github.com/LCTT/TranslateProject/blob/master/README.md ## 下载 README 文件并重命名为 newname.md
$ wget -c url ## 下载 url 并开启断点续传

45. touch & vi

touch命令可以在Linux系统中创建大小为0的任意类型文件,作为程序开发者,当你需要在Linux服务器上创建文件时,可以使用touch命令:

语法: touch
touch demo.txt
vi(visual) # 新建文本文档 输入完成后,按Esc后insert消失,然后输入:wq,write & quit Enter退出

root@devopscube:~# touch demo.txt
root@devopscube:~# ls
demo.txt

46. sort

sort命令用来对文件内容进行排序。创建一个名为test.txt的文件,并且把以下内容拷贝到该文件中:

1 mike level intermediate jan
10 lucy level beginer mar
45 Dave level expert dec
4 dennis start beginner jul
7 Megan employee trainee feb
58 Mathew Head CEO nov

上面的例子中,第二列是名称,所以如果你想对名称列按字母排序,就可以使用“-k”选项,并标注列号,比如“-k2”:

语法: sort
sort -k2 test.txt

排序结果

root@devopscube:~# sort -k2 test.txt
45 Dave level expert dec
4 dennis start beginner jul
10 lucy level beginer mar
58 Mathew Head CEO nov
7 Megan employee trainee feb
1 mike level intermediate jan

第一列是数字,如果你想按数字排序,可以使用“-h”选项。如果数字在不同列上,你可以在“-h”选项后使用“-k”选项:

root@devopscube:~# sort -h test.txt
1 mike level intermediate jan
4 dennis start beginner jul
7 Megan employee trainee feb
10 lucy level beginer mar
45 Dave level expert dec
58 Mathew Head CEO nov

最后一列是月份,你可以使用“-M”选项来让文件内容按月份排序:

root@devopscube:~# sort -k5 -M test.txt
1 mike level intermediate jan
7 Megan employee trainee feb
10 lucy level beginer mar
4 dennis start beginner jul
58 Mathew Head CEO nov
45 Dave level expert dec

注:如果你想消除重复的行,可以在sort命令后使用“-u”选项。

使用“-r”选项,是文件倒序排列:

root@devopscube:~# sort -h -r test.txt
58 Mathew Head CEO nov
45 Dave level expert dec
10 lucy level beginer mar
7 Megan employee trainee feb
4 dennis start beginner jul
1 mike level intermediate jan

47. diff命令

diff命令用来找出2个文件的不同点。diff命令通过分析文件内容,然后将不同的行打印出来,下面的例子可以找出两个文件test和test1的不同点:

语法: diff
diff test.txt test1.txt

root@devopscube:~# diff test.txt test1.txt
7c7
<59 sdfsd
---
> 59 sdfsd CTO dec

48. Uniq命令

uniq命令用来过滤文件中的重复行:

语法: uniq
uniq test.txt

root@devopscube:~# uniq test.txt
1 mike level intermediate jan
10 lucy level beginer mar
45 Dave level expert dec
4 dennis start beginner jul
7 Megan employee trainee feb
58 Mathew Head CEO nov

49. sed命令

sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。

如果你想通过搜索替换文件中的指定内容,你可以使用“s”选项来检索到它然后将它替换。

语法: sed 's///' test.txt

例如,在test.txt文件中用“michael”替换“mike”:

# sed 's/mike/michael/' test.txt
root@devopscube:~# sed 's/mike/michael/' test.txt
1 michael level intermediate jan
10 lucy level beginer mar
45 Dave level expert dec
4 dennis start beginner jul
7 Megan employee trainee feb
58 Mathew Head CEO nov

Reference

  • 文章参考:29个你必须知道的Linux命令
  • 译文源自:29 Linux Commands You Must Know

推荐阅读
author-avatar
wuming66486
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有