[Linux Bible] Linux命令行和Shell代码圣经学习之路3
本帖最后由 旧城欺烟 于 2017-7-19 16:04 编辑第三章:bash shell基本指令
大多数Linux的默认shell是GNU bash shell,这章主要是介绍bash shell的基本特征,如bash手册,标签的自动补全(tab auto-completion),以及如何显示文件内容。主要是如何获取文件及其路径。
man指令能够获取存储在系统里的手册,q退出。当忘记指令名称的时候,可以通过man -k keyword来查找,如man -k terminal来查找和terminal相关的指令。
文件系统
和windows不同,Linux保存文件在一个单独的文件夹结构,叫虚拟文件夹(virtual directory),它包含了文件的来自已安装在电脑上的不同存储设备的所有路径。虚拟文件夹结构包含了一个基本文件夹,叫root。如 /X/Y/Z.doc,表示root里有X文件夹,X里有Y文件夹,Y里面有Z.doc。
当登录进linux后,shell启动在home文件夹。用cd指令可以改变文件夹。(和windows的很相似)
pwd指令用来显示现在工作的文件夹(present working directory)。当只输入cd时,会自动回到home文件夹下。如果工作在home文件夹下,提示符的冒号后面会显示~号。
. 表示现在的文件夹, ..表示父文件夹。
ls 显示当前文件夹下的文件和文件夹。ls -F 区分哪些是文件(如果带星号表示这是个可执行文件),哪些是子文件夹(带斜杠)。ls -a 显示隐藏文件。
ls -F -R 显示子文件夹包含的文件。ls -l 显示详细信息。man ls 可以获取更多关于ls的参数。ls -l x 只显示x文件。
? 表示一个字母,* 表示任意多个字母, i或x, i到x, [!x]排除x,如 ls -l x?z , ls -l x* ,ls -l yz,ls -l yz。
文件处理
touch test创建空文件test。如果test文件已经存在,则touch指令修改文件的最后一次修改的时间(默认显示)。
ls -l --time=atime test查看文件的最后一次使用的时间。
cp test_one test_two 复制test_one的内容到test_two。如果test_two已经存在,建议使用指令cp -i test_one test_two,会提示你是否覆盖掉test_two里的内容。将test_two换成文件夹,即可将文件复制到该文件夹下。cp -i/etc/NetworkManager/NetworkManager.conf. 即将文件复制到现在的文件夹下
cp -R x/ y 即是将x文件夹下的所有文件复制到y下,如果y不存在,则创建y后在复制。
自动补全 $ ls really*得到 really_ridiculously_long_file_name,输入完really后按tab。
连接文件(linking files)
分为象征的连接(symbolic link)和硬连接(hard link),象征连接操作后生成的文件是不同的,生产的sl_*文件(大小为9)是指向源文件(大小为1092)的文件,而硬连接操作后生成的文件是相同的。
象征连接
第二个指令为其指令。
硬连接指令ln code_file hl_code_file,硬连接只能在同一个物理中介上使用,而象征连接不用。
文件改名
mv fall fzll 将fall改为fzll,如果fzll改为文件夹,则会将fall文件移动至该文件夹下。
rm -i fall 移除文件
管理文件夹
mkdir New_Dir 新建文件夹New_Dir。
mkdir -p New_Dir/Sub_Dir/Under_Dir 新建文件夹和子文件夹。
rmdir New_Dir 删除文件夹New_Dir。但是只能删除空文件夹。
rm -ri My_Dir 删除非空文件夹。
tree Small_Dir 将文件夹和文件按树状图的形式显示。(tree工具不是linux系统自带的)
查看文件
file my_file 查看文件类型。
cat test1 查看test1里的内容。(-n 会显示行数, -b 有字的行的行数,-T 去除缩进)
more test1,less test1,按不同方式查看内容。q 退出。
tail test1 显示最后10行。tail -n 2 test1 显示最后两行。(-f 显示新写入的行)
head test1 显示头10行, head -2 test1 显示头两行。
页:
[1]