在本文中,我介绍了如何使用内置终端命令提供有关某些命令及其操作的信息。
我还提供了示例来说明该过程。
命令行工具功能强大。现有的工具可以在图形用户界面 (GUI) 中处理乏味的作业,并将其转换为只需数秒钟即可完成的任务。在 GUI 应用程序中,删除大文件每行的最后四行将是一个漫长的过程。但是,它可以在命令行上自动化执行。
在 Ubuntu Linux 中打开终端窗口的最常见方法是:
目前有许多命令与 Ubuntu Linux 中的终端 Shell 相关联。下面的文章列出了最常用的组下的它们所影响的组。
我们使用三个主要命令来提供使用各种终端命令所需的所有信息。
该 man 命令会显示终端中使用的任何命令的手册。
大多数 shell 命令都接受各种选项。要获取有关命令和可用选项列表的一些信息,请使用 man
- short for manual 命令。指定要查找更多信息作为其 参数的命令的名称。这就是命令 man
的工作原理。
示例:如果输入 命令 man who
,将显示以下输出。
WHO(1) User Commands WHO(1)
NAME
who - show who is logged on
SYNOPSIS
who [OPTION}... [ FILE | ARG1 ARG2 ]
DESCRIPTION
-a, --all
same as -b -d --login -p -r -t -T -u
-b, --boot
time of last system boot
-d, --dead
print dead processes
-H, --heading
print line of column headings
-i, --idle
add idle time as HOURS:MINUTES, . or old (deprecated, use -u)
-l, --login
print system login processes
--lookup
attempt to canonicalize hostnames via DNS
-m, only hostname and user associated with stdin
Manual page who(1) line 1
许多手册都有几个屏幕那么长。使用 光标/ARROW
键或 Page Up/Page Down 键浏览文本。空格键显示下一行文本。按 q 键可退出手册并返回到 shell。
我们可以从手册页中看到,我们可以使用 -a
选项显示有关活动用户会话的更多信息。
user@3[user]$ who -a
|
|
|
|
Nov 14 13:47 |
|
10 |
id=si |
term=0 |
exit=0 |
|
|
|
system boot |
Nov 14 13:47 |
|
|
|
|
|
|
|
|
run-level 5 |
Nov 14 13:47 |
|
|
Last=S |
|
|
|
|
|
|
Nov 14 13:47 |
|
835 |
id=15 |
term=0 |
exit=0 |
LOGIN |
|
|
tty1 |
Nov 14 13:47 |
|
958 |
id=1 |
|
|
root |
|
- |
tty2 |
Nov 14 19:15 |
00:19 |
959 |
|
|
|
user |
|
- |
tty3 |
Nov 14 19:28 |
00:06 |
960 |
|
|
|
LOGIN |
|
|
tty4 |
Nov 14 13:47 |
|
961 |
id=4 |
|
|
LOGIN |
|
|
tty5 |
Nov 14 13:47 |
|
962 |
id=5 |
|
|
LOGIN |
|
|
tty6 |
Nov 14 13:47 |
|
963 |
id=6 |
|
|
user |
|
? |
:0 |
Nov 14 13:47 |
? |
965 |
|
|
|
|
|
|
pts/3 |
Nov 14 16:29 |
|
1746 |
id=/3 |
term=0 |
exit=0 |
user@3[user]$
它还读取程序的帮助文件, man
命令还可以提供有关 shell、函数和库的信息。
如果您不确定如何使用特定命令,请与 或 –help
交换机一起-h
运行 命令。您可以查看使用情况信息以及可与 命令配合使用的选项列表。
示例:如果您想知道如何使用 wget
命令,请键 wget –help
入 或 wget -h
。
User@Ubuntu@#$ wget --help
GNU Wget 1.12, a non-interactive network retriever.
Usage: wget [OPTION]... [URL]...
Mandatory arguments to long options are mandatory for short options t
oo.
Startup:
-V, --version display the version of Wget and exit.
-h, --help print this help.
-b, --background go to background after startup.
-e, --execute=COMMAND execute a '.wgetrc' -style command.
Logging and input file:
这通常会将大量信息打印到终端。滚动浏览可能难以实行。要更轻松地读取输出,您可以 pipe
通过 less 命令进行读取。这允许您使用键盘上的光标/箭头键进行滚动浏览。
示例: wget -help | less
GNU Wget 1.12, a non-interactive network retriever.
Usage: wget [OPTION]... [URL]...
Mandatory arguments to long options are mandatory for short options t
oo.
Startup:
-V, --version display the version of Wget and exit.
-h, --help print this help.
-b, --background go to background after startup.
-e, --execute=COMMAND execute a '.wgetrc' -style command.
Logging and input file:
-o, --output-file=FILE log messages to FILE.
:
操作完成后,按 q 键可关闭 less 实用程序。
要查找特定选项,您可以 pipe
通过 命令输出 grep
。(例如:使用以下命令搜索包含单词的选项 proxy.
)
wget -help | grep proxy
User@ubuntu:~$ wget --help | grep proxy
--no-proxy explicitly turn off proxy.
--proxy-user=USER set USER as proxy username.
--proxy-password=PASS set PASS as proxy password.
User@Ubuntu:~$
某些命令也会记录在系统内部 info
。此处的信息补充了命令显示的内容man
。
示例:输入 命令 info ls,
,将显示以下输出。
[support@support]$" info ls
您现在可以查看包含有关 命令的重要信息的 ls
手册。
File: coreutils.info, Node: ls invocation, Next: dir invocation, Up: Directory listing
'ls': List directory contents
=============================
The 'ls' program lists information about files (of any type,
including directories). Options and file arguments can be intermixed
arbitrarily, as usual.
For non-option command-line arguments that are directories, by
default 'ls' lists the contents of directories, not recursively, and
omitting files with name beginning with '.'. For other non-option
arguments, be default 'ls' lists just the file name. If no non-option
argument is specified, 'ls' operates on the current directory, acting
as if it had been invoked with a single argument of '.'.
By default, the output is sorted alphabetically, according to the
locale settings in effect. (1) If standard output is a terminal, the
output is in columns (sorted vertically) and control characters are
output as question marks; otherwise, the output is listed one per line
and control characters are output as-is.
--zz-Info: (coreutils.info.gz)ls invocation, 48 lines --Top------------------
Welcome to info version 4.3 Type C-h for help, m for menu item.
您可以通过按 空格键 或使用 光标/ARROW
键向下滚动页面。
help
,按 H 键quit
,请按 Q 键
您几乎可以在终端中执行任何操作,也可以从 GUI 执行任何操作。
如前所述,许多命令首先设计为在终端中工作,然后将 GUI 置于顶部。这就是某些 GUI 可能让人感觉笨拙的原因 — 它们在开始时是事后添加的事物,因为大多数 Linux 服务器内部版本并不会为它们操心。
从菜单打开终端的默认位置是在您的 home 文件夹。被称为 ~
您可以通过 .
运算符找到当前目录。大多数命令当它们作用于当前文件夹选择时,对命令、位置和文件的操作是区分大小写的。/home
与 或 /Home
不同/HOME
。
如果您有较长的驱动程序标题,请使用 TAB 键完成文件名。driver-128947232jaseu.sh
例如,键入 dri
并输入其余部分。前提是您没有两个开端 dri
名称,如果是,请添加另一个字符进行创建 driv
,然后重试。确保自动完成与您想要看到的内容相匹配。
几乎任何命令都可以使用 man
页面完整读取,或者通过键入 -h
或 --help
在写入初始命令后读取。此语法为 man command_name
或 command_name -h
command_name --help
。
要获取更多信息,您可以使用 info。可以通过使用 info command_name
搜索命令。对于属于 coreutils 包的大多数这类命令,您可以使用info coreutils command_name
命令搜索command_name
替换的调用来查找info
。
几乎所有命令都可以逐步准确地显示正在发生的事情。这通常是 -v
或 --verbose
。
您可以一次性为命令指定多个命令标记,以获取更多信息。请参阅下面的 ls -al
示例。
命令名称并不总是显而易见 — 由于在 UNIX 的旧时代存在空间限制,它们被缩短,并且这些约定停滞。
cd
— 将您移回到主目录,等同于 cd ~
cd..
— 使您返回一个目录。/home/user/Desktop
首先,cd..
将您放入 /home/user
。这可以展开, cd ../../
将您移回两个目录 /home
。
cd foldername/
— 将您向前移动到当前文件夹中的给定文件夹。
/
,这是一个重要的遗漏。如果我在 /home/user
,我想转到 Desktop
。我必须键入 cd Desktop/
,而不使用 /
。 Desktop
在将我们置于无法正常工作的文件系统的根目录之前键 /
入。
cd /some/other/path
— 将您转至指定的文件夹路径。如果您有正确的路径。不要忘记,您可以使用密 TAB
钥自动完成。
ls
— 列出当前文件夹中的所有文件。
ls -l
— 提供更长的列表,其中包括所有者、权限、大小和修改日期。
ls -a
— 显示隐藏的文件和文件夹以及正常列表。
ls -al
— 组合两个选项以显示隐藏的文件和文件夹,并以长格式显示。
ls -h
以人类可读格式 KB, MB, GB,
的文件大小(而不是字节)显示文件大小。它最常用于 -l
标记。
您可以在甚至不在 的目录中查看文件。如果我在 /home/user/Desktop
中,并且我想在 中 /home/user
查看一个文件,则可以 ls ../
将文件列出回一个目录。
cp file /path/to/folder
— 将指定的文件复制到给定路径。
cp -r folder /path/to/folder
— 将文件夹的内容重复复制到另一个文件夹。
cp *.extension /path/to/folder
— 将与给定扩展名匹配的文件复制到新文件夹。要拷贝所有 .doc 文件,它将变为 cp *.doc /path/to/folder
并且文件夹必须存在。
cp name* /path/to/folder
- 将以 开始 name
的所有文件拷贝到给定文件夹。要拷贝以 开启 example
的所有文件,它将变为 cp example* /path/to/folder
并且文件夹必须已存在。
的语法与上面的 mv
示例类似,并具有 cp
豁免权,例如 #2。mv
不会获取标记, -r
因为移动文件夹也会移动其内容。该语法并不是在所有实例中都是准确的,但是可以用于上面的示例。有关更多详细信息,请查阅您的手册页。
使用 rm
删除文件是永久性的。它不使用垃圾桶。请谨慎使用, 并确保在按 Enter
下键之前完全删除所需的内容。如果您的删除命令过于复杂,则它永远不会结束。
rm file
- 从计算机中删除该特定文件。
rm -r folder
- 从计算机中删除该特定文件夹。
rm -rf folder
- 从计算机中强制删除该特定文件夹。如果使用不当,此命令可能会使配置混乱。
您可以使用 nano
在终端中编辑文件,以执行快速和粗略的文件,直至完整配置。它可以非常有用,但它处理纯文本文件和编程文件,因此 Microsoft Word 文档等内容无法正确打开。
如果 root 拥有文件,则常规用户无法编辑它。nano
必须使用 前缀 sudo
;才能保存更改。否则,它将以只读模式打开。
nano newfile.whatever
隶属于指定的名称,您可将它打开以进行编辑。
nano existing_file
— 打开现有文件进行编辑。
从内部的 nano
通过同时按 CTRL+O
下键来保存文件,并更改名称或按键 Enter
以保留相同的名称。这将保存文件。
使用CTRL+X
密钥一起退出nano
。如果您有未保存的更改,则它会询问是否要保存它们。
mkdir folder_name
— 使用指定的名称创建文件夹
mkdir -p /path/to/folder/name
— 根据需要创建每个文件夹。要创建文件夹 /home/user/1stfolder/2ndfolder
,并且仅 /home/user
存在,请使用 mkdir -p
使 目录 1stfolder,
和 2ndfolder
。
ps aux
- 详细列出计算机上运行的所有进程。这包括用户、进程 ID PID,
和进程名称。使用此选项,您可以查看进程列表,如有必要,您可以终止不必要的或停滞的进程。
kill PID
— PID 是引用有问题的进程的数字。您应从命令(如 ps aux
)获取 PID。如果进程拒绝终止,您还可以指定 kill -9 PID
应以任何方式终止进程。
killall program
- Killall
终止 by name
的所有实例 listed program
。例如,如果打开 3 个 Firefox Internet 浏览器会话, killall Firefox
则执行此操作,终止所有 Firefox 会话。kill
将获取您想要终止的有问题的 Firefox 进程的指定 PID,然后仅终止该进程。
xkill
是一种用于单击和关闭窗口的 GUI 方式。键入 xkill
应该会显示一个叉号图标,单击的下一个窗口将被终止。
Pipes
显示为另一种straight bar,
称为 |
密钥。
它是 Windows 中很少使用的键,但通常在反斜杠键上找到。
这些用于将命令链接在一起。Pipes
获取一个命令的输出,并将其路由,以便在第一个命令和第二个命令链接到一起时用作第二个命令的输入。
请参阅在线资源,了解有关 pipes
和使用它们的更多信息,因为有卷写入其中。
>
用于 overwrite
现有文件内容,方法是将它们替换为新命令的输出。
>>
用于向 append
现有文件提供信息。这对于日志记录操作非常有用。
Example:
ps aux > processes.log
将 的 ps aux
输出发送到 文件 processes.log
,以便在文本编辑器中查看命令输出,并覆盖文件的当前内容。
tee
与 一起 |
使用,以便获取命令输出并将其发送到其他位置。如果存在您遗漏的错误,这将很有用。通过这种方式,屏幕上的任何内容也会捕获到文件中。
示例:dmesg
| tee boot.txt
将运行显示初始引导信息的命令 dmesg
。|
将 的输出dmesg
发送到 tee
,然后通过将输出发送到终端和日志文件来执行其作业boot.txt
。
在将文件标记为可执行文件后,是否要在当前目录中运行文件?操作 ./
员可以作为普通用户运行文件,前提是您不需要 root 权限。./
这意味着 in the current directory
它在当前目录之外的文件上不起作用。
如果您想要运行不在当前目录中的文件,则必须将路径传递到正确的正在运行的程序。如果是 python 程序,则python /path/to/file
为 ,如果是 shell 文件,则sh /path/to/file
作为示例。还有其他程序,但这些是最常见的。
如果您想要运行具有 root 权限的文件,因为您收到 operation not permitted?
。您必须将 命令前缀为 sudo
。与上面的示例一样, sudo python /path/to/file
运行具有 root 权限的脚本。
如果要从终端运行 GUI 程序,请键入程序名称并 case sensitive!
启动。这会导致当前终端不可用。在程序打开时关闭终端也会终止程序。更好的方法是在终端上使用 program_name
后台程序,然后在终端键入单词 exit
以关闭它并保持进程运行。
如果您想要从终端运行具有 root 权限的 GUI 程序,则将其前缀为 gksudo
或 gksu
不 sudo
使用 。使用 sudo
启动 GUI 应用程序是一种坏习惯,应避免。
请仅 not
使用 sudo
,因为某些内容会出现 Operation not permitted.
,请记住,您可以 destroy
通过在具有 root 权限的错误位置运行命令来运行计算机。确保您的文件来自可靠来源。
在目录中迷路了吗?键 pwd
入 以打印工作目录。
要计算磁盘空间吗?df -h
可为您提供快速的图片。
要计算文件夹或文件的大小吗?du -cksh target_name
完全正确地执行此操作。要计算当前文件夹的大小吗?du -cksh
。
要标记可执行文件吗?chmod +x filename
执行此操作。
您必须装载 iso 吗?Linux 内置了此功能。在某个位置创建目录,比如 /home/user/isomount
发出命令 mount -o loop /path/to/myisofile.iso /home/user/isomount
,内容安装在该文件夹内。
运行命令后,您必须重新运行它,但您不能确切记住它是如何运行的?键 history
入终端并打印您的命令历史记录。要清除历史记录吗?history -c
擦除信息。