ch3 基本的bash shell
本章内容:
- 使用shell
- bash手册
- 浏览文件系统
- 文件和目录列表
- 管理文件和目录
- 查看文件内容
Ubuntu
ctrl+alt+T,调出命令行窗口
ctrl+L,清除控制台
Ubuntu默认使用的是dash
如果要修改默认的sh,可以采用命令
sudo dpkg-reconfigure dash
然后选择【否】
====
3.2 shell提示符
christine@server01: ~$
当前用户ID名christine。另外还包括系统名server01。
默认bash shell提示符是美元符号,这个符号表明shell在等待用户输入。
shell CLI:shell command line interface
3.3 bash手册
利用man或者info,来查看手册
或者用 –help or -h (选项如果是缩写的话,前面只有一个-,如果是全名,则有–)
tip:如果你是新接触bash shell,可能一开始会觉得手册页并不太有用。但是,如果养成了阅读手册的习惯,尤其是阅读第一段或是DESCRIPTION部分的前两段,最终你会学到各种 技术行话,手册页也会变得越来越有用。
当使用man命令查看命令手册页的时候,这些手册页是由分页程序(pager)来显示的。分页程序是一种实用工具,能够逐页显示文本。可以通过点击空格键进行翻页,或是使用回车键逐行查看。
帮助文档中第一行括号里的数字意义:
man page中常用的按键:
3.4浏览文件系统
3.4.1 Linux 文件系统
Linux将文件存储在单个目录结构中,这个目录被称为虚拟目录(virtual directory)。虚拟目录将安装在PC上的所有存储设备的文件路径纳入单个目录结构中。
Linux虚拟目录结构只包含一个称为根(root)目录的基础目录。
与Windows不同,Linux使用正斜线( / )而不是反斜线( \ )在文件路径中划分目录。没有物理磁盘的概念。
一块硬盘和虚拟目录的根目录(由正斜线/表示)关联起来。剩下的硬盘就可以挂载到虚拟目录结构中的任何地方。在这个例子中,第二块硬盘被挂载到 了/home位置,用户目录都位于这个位置。
3.4.2 遍历目录
cd [目录名]:进入想去的目录(可以是绝对路径或相对路径)
pwd命令可以显示出shell会话的当前目录
cd .. :回到父目录
cd : 回到主目录
3.5 文件和目录列表
基本命令:ls
会显示当前目录下的文件和目录,支持彩色终端的会有颜色区分
$ ls -F
Desktop/ Downloads/ Music/ Pictures/ Templates/ Videos/ Documents/ examples.desktop my_script* Public/ test_file
“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接,软链接;“|”表示FIFOs;
-a:要把隐藏文件和普通文件及目录一起显示出来,就得用到-a参数。
-R:-R参数是ls命令可用的另一个参数,叫作递归选项。
-l:显示附加信息。
文件类型,比如目录(d)、文件(-)、字符型文件(c)或块设备(b);
文件的权限(参见第6章);
文件的硬链接总数;
文件属主的用户名;
文件属组的组名;
文件的大小(以字节为单位);
文件的上次修改时间;
 文件名或目录名。
$ ls -l my_script
-rwxrw-r– 1 christine christine 54 May 21 11:26 my_script
当用户指定特定文件的名称作为过滤器时,ls命令只会显示该文件的信息。有时你可能不知 道要找的那个文件的确切名称。ls命令能够识别标准通配符,并在过滤器中用它们进行模式匹配:
 问号(?)代表一个字符;
星号(*)代表零个或多个字符。
3.6 处理文件
touch [文件名]: 用于创建文件
cp [source][destenation] :复制文件
1.当source和destination参数都是文件名时,cp命令将源文件复制成一个新文件,并且以 destination命名。
2.若destination是目录名,也可以将文件复制到某目录下。
3.cp命令的-R参数威力强大。可以用它在一条命令中递归地复制整个目录的内容。
tab键:补全命令,~$ ca[tab][tab] 可以得到ca开头的所有命令
链接文件
链接文件是Linux文件系统的一个优势。如需要在系统上维护同一文件的两份或多份副本, 除了保存多份单独的物理文件副本之外,还可以采用保存一份物理文件副本和多个虚拟副本的方法。这种虚拟的副本就称为链接。链接是目录中指向文件真实位置的占位符。在Linux中有两种不同类型的文件链接:
符号链接
硬链接
符号链接就是一个实实在在的文件(类似windows中的快捷方式),它指向存放在虚拟目录结构中某个地方的另一个文件。彼此的内容并不相同。可以使用ln(link)命令以及-s选项来 创建符号链接。
硬链接会创建独立的虚拟文件,其中包含了原始文件的信息及位置。但是它们从根本上而言是同一个文件。
mv[文件名][文件名/目录]:可以重命名文件,或者移动文件位置(move)
rm -i [文件名]:删除(remove),加上i,可以得到一次提示,因为没有回收站,所以这样更慎重
3.7 处理目录
$ mkdir New_Dir :创建目录
$ mkdir -p New_Dir/Sub_Dir/Under_Dir:要想同时创建多个目录和子目录,需要加入-p参数
$ rmdir New_Dir:删除目录,默认只能删除空目录
$ rm -ri My_Dir
rm: descend into directory ‘My_Dir’? y
rm: remove regular empty file ‘My_Dir/another_file’? y
rm: remove directory ‘My_Dir’? y
也可以在整个非空目录上使用rm命令。使用-r选项使得命令可以向下进入目录,删除其中 的文件,然后再删除目录本身。
tips:对rm命令而言,-r参数和-R参数的效果是一样的。-R参数同样可以递归地删除目录中的 文件。shell命令很少会就相同的功能采用不同大小写的参数。(所以shell命令是区分大小写的)
$ rm -rf Small_Dir:删除该目录和目录下的所有文件(没有警告信息)
3.8 查看文件
file [文件名]:查看文件类型(文件,目录,包括链接文件类型)
eg:$ file sl_data_file
sl_data_file: symbolic link to ‘data_file’
cat [文件名]:查看整个文件内容
cat命令的主要缺陷是:一旦运行,你就无法控制后面的操作。为了解决这个问题,开发人 员编写了more命令。
more命令和less命令:查看整个文件
$ tail log_file:文件最后10行
$ tail -n 2 log_file:最后2行
$ head log_file:文件开头10行