命令行是什么?
命令行是与计算机交互的一种方式,通过输入文本命令来告诉计算机要执行的操作。它就像是一个神奇的控制台,你可以用它来导航文件、管理文件和文件夹、运行程序等等。
常用命令
>
$ cat oceans.txt > continents.txt
>
将左边命令的标准输出重定向到右边的文件。就像把一个文件的内容倒入另一个文件。
>>
$ cat glaciers.txt >> rivers.txt
>>
将左边命令的标准输出追加到右边的文件。就像在故事书的末尾添加新的章节。
<
$ cat < lakes.txt
<
将右边文件的标准输入输入到左边的程序。就像把一个文件的内容倒入一个魔法瓶子里。
|
$ cat volcanoes.txt | wc
|
是一个“管道”。它将左边命令的标准输出作为标准输入传递给右边的命令。就像把一个命令的输出直接连接到另一个命令的输入。
~/.bash_profile
$ nano ~/.bash_profile
~/.bash_profile
是一个文件,用于存储环境设置。它通常被称为“bash 配置文件”。当你启动一个会话时,它会加载 bash 配置文件的内容,然后再执行命令。
alias
alias pd="pwd"
alias
命令允许你为常用的命令创建键盘快捷键,或者别名。就像给一个长名字的命令取一个昵称。
cd
$ cd Desktop/
cd
接受一个目录名作为参数,并切换到该目录。就像从一个房间走到另一个房间。
$ cd jan/memory
要直接导航到一个目录,使用 cd
并将目录路径作为参数。这里,cd jan/memory/
命令直接导航到 jan/memory 目录。
cd ..
$ cd ..
要向上移动一个目录,使用 cd ..
。这里,cd ..
从 jan/memory/ 导航到 jan/。
cp
$ cp ada_lovelace.txt historical/
cp
复制文件或目录。这里,我们将文件 ada_lovelace.txt 复制到 historical/ 目录。
通配符(*
)
$ cp * satire/
通配符 *
选择当前目录中的所有文件。上面的例子将当前目录中的所有文件复制到名为 satire 的目录。还有其他类型的通配符,但它们超出了这个词汇表的范围。
$ cp m*.txt scifi/
这里,m*.txt
选择工作目录中所有以“m”开头并以“.txt”结尾的文件,并将它们复制到 scifi/。
env
$ env
env
命令代表“环境”,并返回当前用户的环境变量列表。
env | grep VARIABLE
$ env | grep PATH
env | grep PATH
是一个显示单个环境变量值的命令。
export
export USER="Jane Doe"
export
使变量在你当前会话启动的所有子会话中可用。这是一种让变量在程序之间持续存在的方法。
grep
$ grep "Mount" mountains.txt
grep
代表“全局正则表达式打印”。它搜索文件中与模式匹配的行并返回结果。它是区分大小写的。
grep -i
$ grep -i "Mount" mountains.txt
grep -i
使命令不区分大小写。
grep -R
$ grep -R Arctic /home/ccuser/workspace/geography
grep -R
搜索图片搜索目录中的所有文件,并输出包含匹配结果的文件名和行。-R
代表“递归”。
grep -Rl
$ grep -Rl Arctic /home/ccuser/workspace/geography
grep -Rl
搜索功能搜索目录中的所有文件,并仅输出包含匹配结果的文件名。-R
代表“递归”,l
代表“包含匹配的文件”。
HOME
$ echo $HOME
HOME
变量是一个环境变量,显示主目录的路径。
ls
$ ls
2024 2025 hardware.txt
ls
列出工作目录中的所有文件和目录。
ls -a
$ ls -a
. .. .preferences action drama comedy genres.xt
ls -a
列出工作目录中的所有内容,包括隐藏文件和目录。
ls -l
$ ls -l
drwxr-xr-x 5 cc eng 4096 Jun 24 16:51 action
drwxr-xr-x 4 cc eng 4096 Jun 24 16:51 comedy
drwxr-xr-x 6 cc eng 4096 Jun 24 16:51 drama
-rw-r--r-- 1 cc eng 0 Jun 24 16:51 genres.txt
ls -l
以长格式列出目录中的所有内容。以下是每列的含义。
ls -t
ls -t
按最后修改时间对文件和目录进行排序。
mkdir
$ mkdir media
mkdir
接受一个目录名作为参数,然后在当前工作目录中创建一个新目录。这里我们使用 mkdir 创建了一个名为 media/ 的新目录。
mv
$ mv superman.txt superhero/
要将文件移动到目录中,使用 mv
,并将源文件作为第一个参数,目标目录作为第二个参数。这里我们将 superman.txt 移动到 superhero/。
nano
$ nano hello.txt
nano
是一个命令行文本编辑器。它就像桌面文本编辑器(如 TextEdit 或 Notepad)一样工作,只是它可以从命令行访问,并且只接受键盘输入。
PATH
$ echo $PATH
/home/ccuser/.gem/ruby/2.0.0/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
PATH
是一个环境变量,存储了一系列由冒号分隔的目录。每个目录都包含命令行要执行的脚本。PATH 列出哪些目录包含脚本。
pwd
$ pwd
/home/ccuser/workspace/blog
pwd
打印工作目录的名称。
rm
$ rm waterboy.txt
rm
删除文件。这里我们从文件系统中删除文件 waterboy.txt。
rm -r
$ rm -r comedy
rm -r
删除一个目录及其所有子目录。
sed
$ sed 's/snow/rain/' forests.txt
sed
代表“流编辑器”。它接受标准输入,并根据一个表达式对其进行修改,然后将其显示为输出数据。
在表达式 's/snow/rain/'
中:
s
: 代表“替换”。snow
: 搜索功能搜索字符串,要查找的文本。rain
: 替换字符串,要添加的文本。
sort
$ sort lakes.txt
sort
接受一个文件名或标准输入,并按字母顺序对每一行进行排序,然后将其打印到标准输出。
standard error
标准错误
,简称为 stderr
,是一个失败进程输出的错误消息。
source
source ~/.bash_profile
source
激活 ~/.bash_profile 中的更改,以便在当前会话中使用。这样就不需要关闭终端并需要启动一个新会话,source
会立即在我们当前的会话中应用更改。
standard input
标准输入
,简称为 stdin
,是通过键盘或输入设备输入到终端的信息。
standard output
标准输出
,简称为 stdout
,是一个进程运行后输出的信息。
touch
$ touch data.txt
touch
在工作目录中创建一个新文件。它接受一个文件名作为参数,然后在当前工作目录中创建一个新空文件。这里我们使用 touch 在 2025/dec/ 目录中创建了一个名为 keyboard.txt 的新文件。
如果文件已存在,touch 用于更新文件的修改时间。
uniq
$ uniq lakes.txt
uniq
,代表“唯一”,接受一个文件名或标准输入,并打印出每一行,删除任何完全相同的重复项。
课程推荐
希望这篇文章能帮助你更好地理解命令行命令!如果你有任何问题或需要进一步的帮助,请随时访问 编程狮 。 😊