第一部分
一、shell和导航
- Shell可以理解为是命令行,终端仿真器的程序与shell进行交互;启动仿真器后,如果shell提示符最后一个为“#”,那么为超级用户特权,一般为“$”。
- 使用向上箭头,会输入历史命令记录;按住左键移动光标,然后按住鼠标中键,则会复制所选中区域到输入位置;双击文件名为复制,鼠标中键粘贴。
- 几个常见命令: date日期,cal当月的日历 ,free显示可用内存(显示的swap为虚拟内存),df看磁盘驱动器可用空间,pwd查看当前工作目录,cd改变目录,ls列出目录内容,exit结束终端会话
- 第一次登录系统时(或启动终端仿真器会话时),当前工作目录被设置成主目录。每个用户账号都有一个主目录,作为普通用户操作时,这是唯一一个允许用户写文件的地方。
- 绝对路径名,从根目录开始,接着一个又一个文件树分支,直到到达目标目录或文件(如cd /usr/bin);相对路径名,从工作目录开始,通常使用“.”代表工作目录,或“..”代表工作目录的父目录(如cd ./bin或cd ..),一般可省略“./”,它是隐含的。
- cd将工作目录变为主目录,cd - 将工作目录变为先前的工作目录,cd ~username 将工作目录改变为用户username的主目录
- 以“.”字符开头的文件名是隐藏的,仅仅ls是不会列出这些文件,除非ls -a,在创建用户账号时,主目录会放置一些隐藏文件,用来配置账号信息。
- 与Unix一样,在Linux中,文件名与命令是区分大小写的;与其他操作系统一样,Linux没有文件扩展名的概念,文件的内容或用途由其他方式来决定;Linux支持长文件名,文件名可能包含了嵌入的空格和标点符号,但是在创建文件名的时候,仅句号、连字符和下划线是可以使用的,文件名中不要使用空格,因为在使用中会变的困难,可以用下划线代表空格。
二、Linux系统
- ls列出目录内容,file确定文件类型,less查看文件内容
- ls ~列出主目录内容,ls /usr列出usr目录内容(可以指定列出的目录),ls ~ /usr则列出主目录和usr目录(可以指定多个目录),ls -l以长格式显示
- 通常,命令后面跟有一个或多个选项,带有不同的选项的命令其功能也不一样,一般可以是这样的形式:command -option argument,一般是单字符前加连字符,也可两个连字符,也可两个短选项串在一起,如-lt,其中l选项产生长格式输出,t选项按文件修改时间先后排序;加上长选项--reverse,则会以相反的顺序输出
- 长格式输出中,第一个字段代表对文件的访问权限,第一个字符表示文件的类型,开头的“-”代表普通文件,开头的d代表目录;紧接着的三个字符表示文件所有者的访问权限,再接着的三个字符表示文件所属组中成员的访问权限,最后三个表示其他人的访问权限。第二个字段表示文件硬链接数目。第三个字段表示文件所有者的用户名。第四个字段表示文件所属用户组的名称。第五个字段以字节数表示文件大小。第六个字段表示上次修改的日期和时间。最后一个字段为文件名。
- file命令确定文件类型,会打印出文件内容的简短说明;Unix系统有个普遍的观念,“所有的东西都是一个文件”。
- less命令是查看文本文件的程序(系统使用的许多实际程序/脚本)也是以这种格式存储的。less filename,查看文件,可以向上向下、page up/down、G跳转到文本文件末尾、1G或g跳转到文本文件的开头、/charecters向前查找指定的字符串、n向前查找下一个出现的字符串(这个字符串是之前所指定查找的)、h显示帮助屏幕、q退出less
- 符号链接,在看目录信息的时候可能会看到文件名是这样libc.so.6 -> libc-2.6.so,这就是显示了一个指向 libc-2.6.so共享文件库的符号链接libc.so.6,实际上访问的是 libc-2.6.so,当升级时只需要把文件添加到系统,删除符号链接文件libc.so.6,创建一个指向新版本的符号链接即可,而且要是升级的程序错误,可以删除符号链接,重新创建指向旧版本的符号链接即可,解决了版本回退的问题。
常用的ls命令
选项 | 长选项 | 含义 |
-a | --all | 列出所有文件,包括以点号开头的隐藏文件 |
-d | --directory | 通常,如果指定了一个目录,ls会列出目录内容而不是目录本身,将此选项与-l结合,可查看目录的详细信息,而不是目录中的内容 |
-F | --classify | 会在每个所列出的名字后面加上类型指定符(如果名字是目录名,则会加上一个斜杠) |
-h | --human-readable | 以长格式列出,以人们可读的方式而不是字节数来显示文件大小 |
-l |
| 使用长格式显示结果 |
-r | --reverse | 以相反的顺序显示结果,通常ls按照字母升序排列显示 |
-S |
| 按文件大小对结果排序 |
-t |
| 按修改时间排序 |
三、操作文件与目录
- cp复制文件和目录,mv移动或重命名文件和目录,mkdir创建目录,rm移除文件和目录,in创建硬链接和符号链接
- 通配符(文件名替换)允许用户依据字符模式选择文件名,*为匹配任意多个字符(包括0和1个),?为匹配任一单个字符(不包括0),[characters]匹配任意一个属于字符集中的字符,[!Characters]匹配任意一个不属于字符集中的字符,[[:class:]]匹配任意一个属于指定字符类中的字符
- 常用的字符类:[:alnum:]匹配任意一个字母或数字,[:alpha:]匹配任意一个字母,[:digit:]匹配任意一个数字,[:lower:]匹配任意一个小写字母,[:upper:]匹配任意一个大写字母
- 示例,*所有文件,g*以g开头的任一文件,b*.txt以b开头并中间任意多个字符并以.txt结尾的任一文件,Data???以Data开头并后面跟3个字符的任一文件,[abc]*以abc中的任一开头的任一文件,BACKUP.[0-9][0-9][0-9]以BACKUP.开头并紧跟3个数字的任一文件,[[:upper:]]*以大写字母开头的任一文件,[![:digit:]]*不以数字开头的任一文件,*[[:lower:]123]以小写字母或数字123中的任一个结尾的任一文件
- mkdir创建目录,mkdir directory...(即mkdir dir1或mkdir dir1 dir2 dir3等一个或多个目录)
- cp复制文件和目录,cp item1 item2或cp item... directory(将单个文件或目录item1复制到文件或目录item2中,或将多个项目(文件或目录)复制进一个目录中)
选项 | 含义 |
-a,--archive | 复制文件和目录及其属性,包括所有权和权限。通常来说,复制的文件具有用户所操作文件的默认属性 |
-i,--interactive | 在覆盖一个已存在的文件前,提示用户进行确认。如果没有指定该选项,cp会默认覆盖文件 |
-r,--recursive | 递归地复制目录及其内容,复制目录时需要这个选项(或-a选项) |
-u,--update | 当将文件从一个目录复制到另一个目录时,只会复制那些目标目录中不存在的文件或是目标目录相应文件的更新文件 |
-v,--verbose | 复制文件时,显示信息性消息(information message) |
命令 | 结果 |
cp file1 file2 | 将file1复制到file2,如果file2存在,则会被file1的内容覆盖,如果file2不存在,则创建file2 |
cp -i file1 file2 | 同上,区别在于当file2存在时,覆盖之前通知用户确认 |
cp file1 file2 dir1 | 将file1和file2复制到目录dir1里,dir1必须已经存在 |
cp dir1/* dir2 | 通过使用通配符,将dir1中的所有文件复制到dir2中,dir2必须已经存在 |
cp -r dir1 dir2 | 将dir1目录(及其内容)复制到dir2目录中,如果dir2不存在,创建dir2,且包含与dir1目录相同的内容 |
7. mv可以执行文件移动和文件重命名操作,mv的使用方法与cp基本相似,mv item1 item2将文件(或目录)item1移动(或重命名)为item2,或是mv item... directory将一个或多个条目从一个目录移动到另一个目录下
选项 | 含义 |
-i,--interactive | 覆盖一个已存在的文件之前,提示用户确认,如果没有指定该选项,mv会默认覆盖文件 |
-u,--update | 将文件从一个目录移动到另一个目录,只移动那些目标目录中不存在的文件或是目标目录里相应文件的更新文件 |
-v,--verbose | 移动文件时显示信息性消息 |
命令 | 结果 |
mv file1 file2 | 将file1移到file2,如果file2存在,则会被file1的内容覆盖;如果file2不存在,则创建file2,无论哪种,file1不再存在 |
mv -i file1 file2 | 同上,仅当file2存在时,覆盖之前通知用户确认 |
mv file1 file2 dir1 | 将file1和file2移到目录dir1下,dir1必须已经存在 |
mv dir1 dir2 | 将目录dir1(和其内容)移到目录dir2下,如果目录dir2不存在,创建目录dir2,将目录dir1的内容移到dir2下,同时删除目录dir1 |
8. rm删除文件和目录,rm item...(一旦删除,无法撤销还原),rm *删除目录中所有文件,同样有-i,-v和-r(删除目录必须指定该选项),多了一个-f
选项 | 含义 |
-f,--force | 忽略不存在的文件并无需提示确认,该选项会覆盖-i选项 |
9. ln创建硬链接或符号链接,ln file link创建硬链接,ln -s item link创建符号链接(这里item可以使文件也可以是目录)。符号链接更先进。
默认情况下每个文件有一个硬链接,该硬链接会给文件起名字。当创建一个硬链接的时候,也为这个文件创建了一个额外的目录条目,硬链接有两个重要的局限性:硬链接不能引用自身文件系统之外的文件,也就是说,链接不能引用与该链接不在同一磁盘分区的文件;硬链接无法引用目录。(硬链接和文件本身没有什么区别,与包含符号链接的目录列表不同,包含硬链接的目录列表没有特别的链接指示说明。当硬链接被删除时,指示删除了这个链接,文件本身的内容依然存在,该空间没有释放,除非改文件的所有链接都被删除了,现在大多数使用的是符号链接。)
符号链接是通过创建一个特殊类型的文件来起作用的,包含了指向引用文件或目录的文本指针(类似于快捷方式);符号链接指向的文件与符号链接自身几乎没有区别,将一些东西写进符号链接那么同时也写进了引用文件,删除符号链接则不会删除文件本身,先删除文件则这个链接依然存在但不指向任何文件(称为坏链接,ls会显示为不同的颜色如红色)。