菜单
本页目录

文本编辑

文本文件查看

​ 在 Linux 系统中,有多种命令可以用于查看文本文件的内容,包括 catmorelessheadtail

cat 命令

cat 命令用于连接并显示文件的内容。

$ cat filename

​ 这个命令会显示名为 filename 的文件的全部内容。

more 命令

more 命令用于分页显示文件的内容。

$ more filename

​ 这个命令会分页显示名为 filename 的文件的内容。可以按空格键翻页,按 q 键退出。

less 命令

less 命令也用于分页显示文件的内容,但提供了更多的导航选项。

$ less filename

​ 这个命令会分页显示名为 filename 的文件的内容。可以使用上下箭头键或 Page Up/Page Down 键进行导航,按 q 键退出。

head 命令

head 命令用于显示文件的前几行。

$ head filename

​ 这个命令默认显示名为 filename 的文件的前 10 行。也可以通过 -n 参数指定显示的行数,例如 head -n 20 filename 会显示前 20 行。

tail 命令

tail 命令用于显示文件的最后几行。

$ tail filename

​ 这个命令默认显示名为 filename 的文件的最后 10 行。也可以通过 -n 参数指定显示的行数,例如 tail -n 20 filename 会显示最后 20 行。

​ 这些命令可以根据需要进行组合使用,例如可以用 cat 命令将多个文件的内容连接起来,然后用 moreless 命令进行分页显示。也可以用 headtail 命令查看大文件的部分内容,而无需加载整个文件。

文本编辑器

​ 在 Linux 系统中,有多种文本编辑器可用于编辑文件,包括 nanovi/vimemacs

nano

nano 是一个简单易用的文本编辑器,特别适合初学者使用。

打开或创建一个文件:

$ nano filename

​ 在 nano 编辑器中,可以直接输入文本进行编辑。编辑完成后,按 Ctrl+X 退出编辑器。如果对文件进行了修改,编辑器会询问是否保存修改,按 Y 保存,按 N 不保存。

vi/vim

vi 是一个强大的文本编辑器,vim(Vi IMproved)是 vi 的增强版本,具有更多的特性。这里主要介绍 vim 的使用。

打开或创建一个文件:

$ vim filename

vim 有两种主要的模式:命令模式和插入模式。打开文件后,默认处于命令模式。

​ 在命令模式下,按 i 进入插入模式,可以输入文本进行编辑。编辑完成后,按 Esc 返回命令模式。

​ 在命令模式下,输入 :w 保存修改,输入 :q 退出编辑器,输入 :wq 保存修改并退出编辑器。如果想要不保存修改并退出编辑器,可以输入 :q!

emacs

emacs 是一个强大且高度可定制的文本编辑器。

打开或创建一个文件:

$ emacs filename

​ 在 emacs 编辑器中,可以直接输入文本进行编辑。编辑完成后,按 Ctrl+X Ctrl+C 退出编辑器。如果对文件进行了修改,编辑器会询问是否保存修改,按 Y 保存,按 N 不保存。

emacs 的操作主要依赖于组合键,例如,按 Ctrl+X Ctrl+S 保存文件,按 Ctrl+X Ctrl+W 另存为,按 Ctrl+X Ctrl+F 打开新文件。

以上是 nanovi/vimemacs 这三种编辑器的基本使用方法。对于初学者,nano 是最易上手的;对于需要进行复杂编辑的用户,vi/vimemacs 是更好的选择

文本处理工具

​ Linux 系统提供了一系列的文本处理工具,包括 grepawksedcutsortuniqtrwc。这些工具可以单独使用,也可以组合使用,以实现复杂的文本处理任务。

grep

grep 命令用于在文本中搜索匹配的字符串。

$ grep "pattern" filename

这个命令会在名为 filename 的文件中搜索匹配 pattern 的字符串,并显示匹配的行。

awk

awk 是一个强大的文本处理工具,可以进行模式扫描和处理。

$ awk '/pattern/ { print \$1 }' filename

这个命令会在名为 filename 的文件中搜索匹配 pattern 的字符串,并打印匹配行的第一个字段。

sed

sed(stream editor)是一个用于对文本进行基本的转换和编辑的工具。

$ sed 's/pattern/replacement/' filename

这个命令会在名为 filename 的文件中将 pattern 替换为 replacement

cut

cut 命令用于从文件的每一行中剪切部分内容。

$ cut -d':' -f1 filename

这个命令会从名为 filename 的文件的每一行中剪切出以 : 为分隔符的第一个字段。

sort

sort 命令用于对文本进行排序。

$ sort filename

这个命令会对名为 filename 的文件的内容进行排序。

uniq

uniq 命令用于从文本中删除重复的行。

$ uniq filename

这个命令会从名为 filename 的文件中删除重复的行。

tr

tr(translate)命令用于删除或替换文本中的字符。

$ tr 'a-z' 'A-Z' < filename

这个命令会将名为 filename 的文件中的小写字母替换为大写字母。

wc

wc(word count)命令用于统计文本的行数、单词数和字符数。

$ wc filename

​ 这个命令会显示名为 filename 的文件的行数、单词数和字符数。

​ 以上是 grepawksedcutsortuniqtrwc 这八种工具的基本使用方法。这些工具可以通过管道 | 进行组合,以实现更复杂的文本处理任务。

权限管理

用户和用户组

​ Linux 系统是一个多用户系统,每个用户都属于一个或多个用户组。以下介绍 whoamiidgroups 这三个命令,它们用于查看当前用户和用户组信息。

whoami

whoami 命令用于查看当前的用户名。

$ whoami

执行这个命令会显示当前的用户名。

id

id 命令用于查看当前用户的详细信息,包括用户 ID、用户组 ID 以及用户所属的所有用户组。

$ id

执行这个命令会显示当前用户的详细信息。例如,输出可能类似于:

uid=1000(username) gid=1000(usergroup) groups=1000(usergroup),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)

这表示当前用户的用户名为 username,用户 ID 为 1000,主用户组名为 usergroup,用户组 ID 为 1000,并且还属于 admcdromsudodipplugdevlpadminsambashare 等用户组。

groups

groups 命令用于查看当前用户所属的所有用户组。

$ groups

执行这个命令会显示当前用户所属的所有用户组。例如,输出可能类似于:

username : usergroup adm cdrom sudo dip plugdev lpadmin sambashare

这表示当前用户所属的用户组包括 usergroupadmcdromsudodipplugdevlpadminsambashare

文件权限及其修改

​ 在Linux系统中,文件权限是一个重要的概念。每个文件和目录都有一组相关的权限,它们决定了哪些用户可以读取、写入或执行这些文件。以下将详细介绍如何查看和修改文件权限,以及 chmodchownchgrp 这三个命令的使用。

文件权限的表示

​ 在Linux中,文件权限通常以字符形式表示,每个权限由一个字母表示:r 表示读取权限,w 表示写入权限,x 表示执行权限。每个文件或目录的权限分为三组,分别对应文件所有者、文件所有者所在的用户组以及其他用户。因此,权限通常以一串如 rwxr-xr-- 的字符表示。

​ 此外,文件权限也可以用数字表示。每种权限都对应一个数值:读取(r)为4,写入(w)为2,执行(x)为1。每组权限的数值是这组权限对应数值的总和。例如,rwx 对应的数值为 4+2+1=7r-x 对应的数值为 4+0+1=5r-- 对应的数值为 4+0+0=4。因此,rwxr-xr-- 的数字表示为 754

chmod

chmod 命令用于改变文件或目录的权限。它可以接受字符形式的权限表示或数字形式的权限表示。

例如,可以使用以下命令将文件 file.txt 的权限设置为 rwxr-xr--

$ chmod 754 file.txt

或者:

$ chmod u=rwx,g=rx,o=r file.txt

在这里,ugo 分别表示用户(所有者)、组(所有者所在的用户组)和其他用户。

chown

chown 命令用于改变文件或目录的所有者。例如,可以使用以下命令将文件 file.txt 的所有者更改为 newowner

$ chown newowner file.txt

​ 此外,chown 命令也可以同时改变文件或目录的所有者和所属组。例如,可以使用以下命令将文件 file.txt 的所有者更改为 newowner,所属组更改为 newgroup

$ chown newowner:newgroup file.txt

chgrp

chgrp 命令用于改变文件或目录的所属组。例如,可以使用以下命令将文件 file.txt 的所属组更改为 newgroup

$ chgrp newgroup file.txt

使用 sudo 和 su

​ 在 Linux 系统中,sudosu 是两个常用的命令,它们分别用于执行具有管理员权限的命令和切换用户。以下将详细介绍这两个命令的使用方法。

sudo

sudo 是 "superuser do" 的缩写,它允许普通用户执行需要管理员权限的命令。在命令前加上 sudo 就可以以管理员权限运行该命令。

例如,安装软件通常需要管理员权限,可以使用 sudo 来执行安装命令:

$ sudo apt-get install package-name

​ 执行 sudo 命令时,系统通常会要求输入当前用户的密码,以验证用户的身份。此外,为了提高安全性,sudo 命令的权限在一段时间后会自动过期(通常是15分钟),过期后再次使用 sudo 时需要重新输入密码。

su

su 是 "substitute user" 或 "switch user" 的缩写,它用于切换到另一个用户。执行 su 命令时需要提供目标用户的密码。

例如,可以使用以下命令切换到 username 用户:

$ su username

​ 如果不提供用户名,su 命令默认会切换到超级用户(root)。因此,su 命令通常用于获取超级用户权限。不过,使用 su 命令切换到超级用户后,所有命令都将以超级用户权限运行,这可能会带来安全风险。为了安全,建议只在必要时使用 su 切换到超级用户,并在完成需要超级用户权限的操作后立即退出超级用户。

​ 退出当前用户可以使用 exit 命令或按 Ctrl-D

进程管理

查看进程

​ 在 Linux 系统中,可以使用多种命令来查看和管理系统中的进程。本文将详细介绍 pstophtop 这三个常用的进程查看命令。

ps

ps 命令用于显示当前终端下的进程状态。执行 ps 命令会列出当前终端启动的进程,包括进程 ID、TTY(控制终端)、CPU 时间以及命令名称。

$ ps

如果想查看系统中的所有进程,可以使用 -e-A 选项:

$ ps -e

或者:

$ ps -A

top

top 命令提供了一个实时的视图,可以查看系统中的进程以及其他相关信息,如 CPU 使用率、内存使用量等。

$ top

​ 在 top 的界面中,可以看到各种信息,包括系统运行时间、在线用户数、系统负载、各个进程的 PID、用户、CPU 使用率、内存使用量等。此外,还可以在 top 的界面中进行一些操作,如按 k 来杀死进程,按 r 来重新调整进程的优先级等。

htop

htop 命令和 top 命令类似,也提供了一个实时的视图,但 htop 的界面更加友好,提供了更多的信息和更强的交互性。

$ htop

​ 在 htop 的界面中,除了 top 提供的信息外,还可以看到每个 CPU 的使用率、进程的完整命令行等。同时,htop 支持使用鼠标进行操作,可以更方便地进行进程管理。

​ 需要注意的是,htop 命令可能并非所有 Linux 发行版都预装,如果系统中没有 htop,可以使用包管理器(如 aptyum 等)进行安装。

控制进程

​ 在 Linux 系统中,可以使用多种命令来控制和管理系统中的进程。本文将详细介绍 killpkillkillallnicerenice 这五个常用的进程控制命令。

kill

kill 命令用于向进程发送信号,通常用于终止进程。每个信号都有一个名称和对应的数字,常用的信号有 SIGTERM(15)和 SIGKILL(9)。

例如,向 PID 为 1234 的进程发送 SIGTERM 信号,可以使用以下命令:

$ kill 1234

如果进程无法终止,可以尝试发送 SIGKILL 信号:

$ kill -9 1234

pkill 和 killall

pkillkillall 命令用于向满足特定条件的进程发送信号。pkill 根据进程名发送信号,而 killall 根据命令名发送信号。

例如,向所有名为 "myprocess" 的进程发送 SIGTERM 信号,可以使用以下命令:

$ pkill myprocess

或者:

$ killall myprocess

nice

nice 命令用于调整进程的优先级。nice 值的范围是 -20 到 19,其中 -20 表示最高优先级,19 表示最低优先级。默认情况下,进程的 nice 值为 0。

例如,以 nice 值为 10 启动一个命令,可以使用以下命令:

$ nice -n 10 command

renice

renice 命令用于调整已经运行的进程的优先级。

例如,将 PID 为 1234 的进程的 nice 值调整为 10,可以使用以下命令:

$ renice 10 1234

后台和前台作业

​ 在 Linux 系统中,可以使用多种命令来控制和管理后台与前台作业。本文将详细介绍 bgfgjobsnohup 这四个常用的作业控制命令。

bg

bg 命令用于将一个停止(stopped)的作业放到后台执行。这个命令通常在一个作业被暂停后使用,例如,当一个前台作业被 Ctrl+Z 暂停后。

例如,将最近一个被暂停的作业放到后台执行,可以使用以下命令:

$ bg

如果有多个作业被暂停,可以指定作业号来将特定的作业放到后台执行:

$ bg %1

fg

fg 命令用于将一个后台作业放到前台执行。这个命令通常在需要交互的作业被放到后台后使用。

例如,将最近一个后台作业放到前台执行,可以使用以下命令:

$ fg

如果有多个后台作业,可以指定作业号来将特定的作业放到前台执行:

$ fg %1

jobs

jobs 命令用于列出当前会话中的所有作业,包括正在运行的作业和被暂停的作业。

$ jobs

nohup

nohup 命令用于在退出会话后继续运行作业。这个命令通常在需要长时间运行的作业中使用。

例如,使用 nohup 运行一个命令,并将输出重定向到一个文件,可以使用以下命令:

$ nohup command > output.txt &

在这个命令中,& 表示将作业放到后台执行