Unix基础操作与效率提升指南
在Unix系统中,有许多实用的命令和操作技巧可以帮助我们更高效地完成工作。下面将为大家介绍一些Unix的基础操作和提升效率的方法。
1. 时间戳与命令行选项
在Unix系统中,时间戳是从1970年1月1日开始计算的秒数。例如,使用date -r命令可以根据时间戳显示对应的日期和时间:
$ date -r 123456789 Thu Nov 29 13:33:09 PST 1973这个例子展示了一些命令行选项可以单独使用,而有些则需要提供数据。对于如何了解某个命令的可用选项,后续会详细介绍。
我们可以尝试使用ls命令的不同选项来列出主目录和根目录的内容。通过组合不同的选项,观察输出的变化。
2. Man手册页
Unix系统中的每个命令都有对应的“手册页”(Man pages),它详细描述了命令的使用方法和功能。我们可以使用man命令来查看这些手册页。
例如,查看whoami命令的手册页:
$ man whoami执行该命令后,Unix会将手册内容发送到一个文本查看程序(通常是less),我们可以通过基本的控制键来滚动文档和搜索特定文本。以下是whoami手册页的部分内容:
WHOAMI(1) BSD General Commands Manual WHOAMI(1) NAME whoami – display effective user id SYNOPSIS whoami DESCRIPTION The whoami utility has been obsoleted by the id(1) utility, and is equivalent to ”id -un”. The command ”id -p” is suggested for normal interactive use. The whoami utility displays your effective user ID as a name. EXIT STATUS The whoami utility exits 0 on success, and >0 if an error occurs. SEE ALSO id(1) BSD June 6, 1993 BSD (END)Unix的手册页采用标准布局,通常包括“名称”、“概要”和“描述”等部分。whoami命令的手册页很短,因为它的功能很简单,就是显示当前用户的有效ID。
在使用less查看手册页时,有一些常用的键盘快捷键:
| 操作 | 快捷键 |
| ---- | ---- |
| 向下滚动一页 | b |
| 向上滚动一页 | j |
| 向下滚动一行 | k |
| 向上滚动一行 | 无(原文未提及合适对应) |
| 退出less程序 | q |
再来看ls命令的手册页:
$ man ls手册页的“概要”部分显示了很多命令行选项:
LS(1) BSD General Commands Manual LS(1) NAME ls – list directory contents SYNOPSIS ls [-ABCFGHLOPRSTUW@abcdefghiklmnopqrstuwx1] [file …]这里方括号表示可选内容,即38个命令行选项和指定文件或目录名都是可选的。当我们不确定如何使用某个命令时,首先应该查看它的手册页。
此外,man命令还可以用于搜索所有Unix命令的文档。使用-k选项加上关键字,就可以查找包含该关键字的命令。例如,查找与文件压缩相关的命令:
$ man -k compress compress(1), uncompress(1) - compress and expand data gzexe(1) – compress executable files in place gzip(1), gunzip(1), zcat(1) – compress or expand files zcmp(1), zdiff(1) – compare compressed files zip(1) – package and compress (archive) files zlib(3) – compression/decompression library znew(1) – recompress .Z files to .gz files zopen(3) – compressed stream open function输出结果列出了包含关键字的命令及其简要描述。需要注意的是,手册页搜索可能会返回大量结果,如果输出超过一页,需要使用手册页查看程序的命令退出回到命令行提示符(按q退出)。
下面是查看手册页和搜索手册页的流程图:
graph TD; A[开始] --> B[使用man命令查看指定命令手册页]; B --> C[使用less程序查看手册内容]; C --> D{是否需要搜索手册页}; D -- 是 --> E[使用man -k关键字搜索]; D -- 否 --> F[结束]; E --> G[查看包含关键字的命令列表]; G --> F;3. 目录操作
在开始使用Unix进行实际操作之前,我们需要选择一个合适的地方来存储文件和目录。建议在主目录下创建一个单独的目录,后续可以在其中添加更多子目录。
3.1 目录命名
在图形文件管理器中,我们习惯在文件名或文件夹名中使用空格。在Unix系统中也可以这样做,但会带来一些额外的复杂性。为了避免问题,建议在创建文件或目录时使用下划线代替空格。例如,将“My important text file.txt”改为“My_important_text_file.txt”。
3.2 创建目录
使用mkdir命令可以创建新目录。以下是创建目录的示例:
$ cd $ pwd /Users/nigel $ mkdir Unix_and_Perl $ ls -lp drwx------+ 5 nigel staff 170 Feb 5 12:48 Desktop/ drwx------+ 4 nigel staff 136 Oct 19 2009 Documents/ drwx------+ 4 nigel staff 136 Oct 19 2009 Downloads/ drwx------+ 27 nigel staff 918 Jan 14 13:43 Library/ drwx------+ 3 nigel staff 102 Oct 19 2009 Movies/ drwx------+ 3 nigel staff 102 Oct 19 2009 Music/ drwx------+ 4 nigel staff 136 Oct 19 2009 Pictures/ drwxr-xr-x+ 6 nigel staff 204 Jan 14 13:44 Public/ drwxr-xr-x+ 5 nigel staff 170 Oct 19 2009 Sites/ drwxr-xr-x 2 nigel staff 68 Jul 8 14:10 Unix_and_Perl/首先使用cd命令回到主目录,使用pwd命令确认当前位置,然后使用mkdir命令创建“Unix_and_Perl”目录,最后使用ls -lp命令列出目录的详细信息,并在目录名后添加斜杠。
还可以在现有目录中创建子目录,使用-p选项可以一次性创建嵌套目录:
$ mkdir Unix_and_Perl/Code $ mkdir -p Unix_and_Perl/Temp/Inside_temp $ cd Unix_and_Perl如果不使用-p选项创建嵌套目录,会出现错误,如:
mkdir: Temp: No such file or directory“Code”目录可用于存储后续编写的Unix或Perl脚本,“Temp”目录可用于尝试各种Unix命令。
3.3 删除目录
使用rmdir命令可以删除空目录。例如,删除“Inside_temp”目录:
$ cd Temp $ ls Inside_temp $ rmdir Inside_temp也可以不进入“Temp”目录,使用相对路径或绝对路径删除目录:
$ rmdir Temp/Inside_temp $ rmdir /Users/nigel/Unix_and_Perl/Temp/Inside_temp需要注意的是,rmdir命令只能删除空目录,且不能在要删除的目录内部执行删除操作。
下面是目录操作的流程图:
graph TD; A[开始] --> B[选择存储目录的位置]; B --> C[使用mkdir命令创建目录]; C --> D{是否需要创建嵌套目录}; D -- 是 --> E[使用mkdir -p命令创建嵌套目录]; D -- 否 --> F[继续操作]; F --> G{是否需要删除目录}; G -- 是 --> H[使用rmdir命令删除空目录]; G -- 否 --> I[结束]; E --> G; H --> I;通过以上操作,我们可以更好地管理Unix系统中的目录。在后续的操作中,还有一些提升效率的技巧值得我们学习。
4. 节省按键次数的重要性及方法
在与Unix系统交互时,大部分操作通过键盘完成。减少按键次数有两个重要好处:一是提高工作效率,让我们有更多时间运行命令和获取结果,而不是花费大量时间输入命令名;二是减少打字量,降低患上重复性劳损(RSI)的风险。除了命令名本身较短外,Unix还提供了一些减轻打字负担的方法。
4.1 命令行补全
命令行补全是一项重要的省时技巧,它可以自动补全文件、目录和程序的名称。当我们输入足够的字母能唯一确定某个名称后,按下Tab键,Unix会自动完成剩余部分。
以下是一些命令行补全的示例:
-补全命令名:
$ tou<tab> $ touch在这个例子中,输入“tou”后按Tab键,自动补全为“touch”命令。如果没有其他以“tou”开头的标准Unix命令,就会完成补全。若补全失败,可能是系统中有非标准的以“tou”开头的命令,或者当前目录下有以“tou”开头的文件或目录。当没有可能的补全时,可能会听到提示音。
-补全目录名:
$ cd U<tab> $ cd Unix_and_Perl/这里只输入了“U”和Tab键,就完成了“Unix_and_Perl”目录名的输入,相比输入完整的16个字符,只需要输入5个字符,大大节省了时间。如果补全不成功,可能是当前目录下还有其他以“U”开头的文件或目录,可以逐个多输入一个字母,每次输入后按Tab键尝试补全。
-显示所有可能的补全:按两次Tab键可以显示所有可能的补全列表。例如:
$ ls<tab><tab> ls lsbom lsdistcc lsm lsof lsvfs在输入“ls”后按两次Tab键,显示了所有以“ls”开头的Unix命令。
命令行补全不仅能节省时间,还能减少输入错误。例如,不使用补全输入长路径时容易出错:
$ ls -l /home/nigel/Work/Project_x/important_file.txt如果输入错误,如将“nigel”写成“ngiel”,Unix会提示文件或目录不存在,但不会明确指出错误位置。而使用命令行补全,只能输入能补全的目录名,从而避免输入错误。
下面是命令行补全的操作步骤列表:
1. 输入部分文件、目录或程序名称。
2. 按下Tab键尝试补全。
3. 如果补全不成功,多输入一个字母后再次按Tab键。
4. 若想查看所有可能的补全,按两次Tab键。
4.2 命令历史
Unix会存储每次会话中输入的所有命令列表,我们可以使用history命令查看命令历史:
$ history 1 ls 2 cd /home/nigel/Work/Project_x 3 ls -l 4 ls -l /usr 5 ls /bin 6 pwd要重新执行历史列表中的某个命令,在感叹号后输入该命令的编号即可。例如,重新执行第二条命令:
$ !2 cd /home/nigel/Work/Project_xUnix会先打印出完整的命令,然后重新执行该命令。
4.3 命令历史的键盘导航
通常我们希望重复最近执行的命令,使用上下箭头键可以更方便地访问命令历史。按一次上箭头键可以访问上一条命令,按两次可以访问倒数第二条命令,依此类推。按向下箭头键可以向前浏览历史记录。
4.4 命令行的快速键盘导航
当使用上箭头键调出上一条命令时,光标会位于命令的末尾。如果想修改命令的某个部分,例如在ls /home/nigel/Work/命令中添加-l选项,可以使用以下快捷键:
| 操作 | 快捷键 |
| ---- | ---- |
| 移动到行首 | Ctrl + a |
| 移动到行尾 | Ctrl + e |
| 删除命令行上一个单词 | Ctrl + w |
| 清屏 | Ctrl + l |
下面是节省按键次数相关操作的流程图:
graph TD; A[输入部分内容] --> B{是否按下Tab键}; B -- 是 --> C{是否补全成功}; C -- 是 --> D[完成输入]; C -- 否 --> E[多输入一个字符再按Tab]; E --> C; B -- 否 --> F{是否使用上下箭头访问历史命令}; F -- 是 --> G[选择历史命令]; G --> H{是否需要修改命令}; H -- 是 --> I[使用快捷键修改]; H -- 否 --> J[执行命令]; F -- 否 --> K[手动输入命令]; K --> J; I --> J; D --> J;总结
通过本文的介绍,我们了解了Unix系统中的时间戳与命令行选项、Man手册页的使用、目录操作以及节省按键次数的方法。掌握这些基础操作和技巧,能够帮助我们更高效地使用Unix系统,提高工作效率,减少输入错误,同时降低患上重复性劳损的风险。在实际操作中,建议大家多练习这些技巧,养成良好的使用习惯。例如,在输入Unix命令时始终使用命令行补全,利用命令历史和快捷键来提高操作速度。希望这些内容对大家在Unix系统的使用中有所帮助。