GNU bash shell 是一个程序, 提供了对 Linux 系统的交互式访问。它是作为普通程序运行的,通常是在用户登录终端时启动。系统启动的 shell 程序取决于用户账户的配置。
/etc/passwd 文件包含了所有系统用户账户以及每个用户的基本配置信息。
man 命令可以访问 Linux 系统的手册页。在 man 命令之后跟上想要查看的命令名,就可以显示相应的手册页。
当你使用 man 命令查看命令手册页的时候,其中的信息是由分页程序(pager )来显示的。 分页程序是一种实用工具,能够逐页(或逐行)显示文本。你可以单击空格键进行翻页, 或是使用 Enter 键逐行查看。也可以使用箭头键向前和向后滚动手册页的内容(假设你使用的终端仿真软件包支持箭头键功能)。如果阅读完毕,可以按 q 键退出手册页。
输入man man 可以查看与手册页相关的信息。
如果想使用多个命令选项,那么通常可以将其合并在一起。例如,要使用选项-a 和 -b,可以写作-ab。
如果不记得命令名了,可以使用关键字来搜索手册页。语法为 man -k keyword。例如,要查找与终端相关的命令,可以输入 man -k terminal。
手册页中还有不同的节。每节都分配了一个数字,从 1 开始,一直到 9。Linux 手册页的节如下表:
节号 | 所涵盖的内容 |
---|---|
1 | 可执行程序或 shell 命令 |
2 | 系统调用 |
3 | 库调用 |
4 | 特殊文件 |
5 | 文件格式与约定 |
6 | 游戏 |
7 | 概览、约定及杂项 |
8 | 超级用户和系统管理员命令 |
9 | 内核例程(routine) |
man 命令通常显示的是指定命令编号最低的节。(一个命令偶尔会在多个节中都有对应的手册页。)
大多数命令接受-h 或–help 选项。例如,可以输入 hostname --help 来查看简要的帮助信息。
Linux 文件系统
目录 | 用途 |
---|---|
/ | 虚拟目录的根目录,通常不会在这里放置文件 |
/bin | 二进制文件目录,存放了很多用户级的 GNU 实用工具 |
/boot | 引导目录,存放引导文件 |
/dev | 设备目录, Linux 在其中创建设备节点 |
/etc | 系统配置文件目录 |
/home | 主目录, Linux 在其中创建用户目录(可选) |
/lib | 库目录, 存放系统和应用程序的库文件 |
/libname | 库目录, 存放替代格式的系统和应用程序库文件(可选) |
/media | 媒介目录,可移动存储设备的常用挂载点 |
/mnt | 挂载目录,用于临时挂载文件系统的常用挂载点 |
/opt | 可选目录,存放第三方软件包 |
/proc | 进程目录,存放现有内核、系统以及进程的相关信息 |
/root | root 用户的主目录(可选) |
/run | 运行目录,存放系统的运行时数据 |
/sbin | 系统二进制文件目录,存放了很多管理级的 GNU 实用工具 |
/srv | 服务目录,存放本地服务的相关文件 |
/sys | 系统目录,存放设备、驱动程序以及部分内核特性信息 |
/tmp | 临时目录,可以在其中创建和删除临时工作文件 |
/usr | 用户目录,一个次目录层级结构(secondary directory hierarchy) |
/var | 可变目录,存放经常变化的文件,比如日志文件 |
// 例如方括号:方括号代表单个字符位置并给出了该位置上的多个可能的选择。
$ ls -l my_scr[ay]pt
// 也可以指定字符范围,比如字母范围 [a–i]:
$ ls f[a-i]ll
// 还可以使用惊叹号(!)将不需要的内容排除在外:
$ ls -l f[!a]ll
$ cp -i test_one /home/christine/Documents/
cp -R Documents/ NewDocuments/
制表键补全允许你在输入文件名 或目录名的时候,按一下制表键, 让 shell 帮你将内容补充完整。
链接文件
$ ln -s test_file slink_test_file
$ ls -l *test_file
lrwxrwxrwx. 1 christine christine 9 Mar 4 09:46 slink_test_file -> test_file
-rw-rw-r--. 1 christine christine 74 Feb 29 15:50 test_file
$ ls -i *test_file
1415020 slink_test_file 1415523 test_file
$ ls -l *test_one
-rw-rw-r--. 1 christine christine 0 Feb 29 17:26 test_one
$ ln test_one hlink_test_one
$ ls -li *test_one
1415016 -rw-rw-r--. 2 christine christine 0 Feb 29 17:26 hlink_test_one
1415016 -rw-rw-r--. 2 christine christine 0 Feb 29 17:26 test_one
mv OldDocuments NewDocuments
$ rm -i fall
rm: remove regular empty file 'fall'? y
$ mkdir New_Dir
$ ls -ld New_Dir
drwxrwxr-x. 2 christine christine 6 Mar 6 14:40 New_Dir
$ mkdir -p New_Dir/SubDir/UnderDir
$ ls -R New_Dir
New_Dir:
SubDir
New_Dir/SubDir:
UnderDir
New_Dir/SubDir/UnderDir:
$ file .bashrc
.bashrc: ASCII text
$ file Documents
Documents/: directory
$ file slink_test_file
slink_test_file: symbolic link to test_file
$ file my_script
my_script: Bourne-Again shell script, ASCII text executable
$ file /usr/bin/ls
/usr/bin/ls: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2,
for GNU/Linux 3.2.0,[...]
$ tail -n 2 log_file
$ head -3 log_file