1.“~”:当前用户主目录
“.”:当前工作目录
“..”:当前工作目录的父目录
使用pwd命令可以确定当前所在目录的绝对路径
$ pwd
2.shell命令:(which命令判断是否是外部命令)
$ which ls——外部命令,输出命令程序所在的路径
$ which if——内部命令,无输出结果
(1)内部命令:Shell程序的一部分
(2)外部命令:执行过程由Shell控制
3.查看帮助
man命令:查看外部命令——$ man ls
Page Up和Page Down 键翻页,Q键退出man命令
help命令:查看内部命令——$ help if
4.后台运行
在命令后面追加“&”符号
5.文件名以符号“.”开头表示是隐藏文件
软件操作
(1)搜索软件:apt-cache search<字符串>
例:$ apt-cache search gedit
(2)安装软件:apt-get install <软件包名>
例:(安装软件需要管理员权限,要通过sudo命令)
$ sudo apt-get install gedit
(3)删除软件:apt-get remove <软件包名>
例:(同样需要管理员权限)
$ sudo apt-get remove gedit
文本编辑器
(1)Gedit:图形化文本编辑器
功能:语法高亮和编辑多个文件,同时提供良好的中文支持
启动:
①菜单操作:点击面板菜单“应用程序——附件——文本编辑器”。
②命令行启动:在终端输入命令:gedit或gedit&
(2)Vim:在Shell中运行的基于命令行的文本编辑器
三种模式:
正常模式:命令模式,刚启动时处于该模式
文本模式:该模式下进行文本输入
命令行模式:底行模式
操作:
启动Vim:$ vim hello.sh
文本输入:输入“a”或“i”,进入文本模式
保存退出:输入Esc键回到正常模式,接着输入“:wq”存盘退出
标准文件:
stdin:标准输入文件,一般指键盘输入,用0表示
stdout:标准输出文件,一般指显示器,用1表示
stderr:标准错误输出文件,一般指显示器,用2表示
目录操作:
(1)创建新目录:mkdir [选项] <目录名>
例:$ mkdir information
$ mkdir -p information/A/B(在information目录下建立目录A,在A目录下建立目录B)
(2)改变目录:cd [目录名]
例:$ cd information
cd命令小技巧:
cd:进入用户主目录
cd ~:进入用户主目录
cd - :返回进入此目录之前所在的目录
cd .. :返回上级目录
cd ../:返回进入此目录之前所在的目录
(3)删除空目录:rmdir [选项] <目录名>
-p:当子目录被删除后,若其父目录成为空目录,父目录也一并删除
-v:提示删除操作成功
例:$ rmdir -pv information/A/B
注:rmdir只能删除空目录
(4)列目录内容:ls [选项] [目录名或文件名]
选项:
-a 显示指定目录下的所有子目录和文件,包括隐藏文件
-d 将目录名像其他文件一样列出,而不是列出目录里面的内容
-l 采用长格式来显示文件的详细信息
-r 将目录的内容清单以英文字母顺序的逆序显示
-R 若目标目录及子目录中有文件,就列出所有的文件
-t 按时间信息排序。
文本文件操作:
(1)cat命令:查看完整的文件内容
cat [选项] <文件列表>
选项:
-E 在每一行的末尾显示符号$
-n 显示每一行的行号,包括空行
-b 显示每一行的行号,不包括空行
--help 显示这个命令的用途,简要解释每一个选项的作用
例:$ cat -n /etc/passwd
(2)分页显示文件
①more命令:more [选项] <文件列表>
空格键显示下一页,Enter键显示文件下一行,Q键退出命令回到shell
选项:
+number 从第number行开始显示内容
-number 指定每屏幕要显示number行
-s 把重复的空行,压缩成一个空行
-p 不以卷动的方式显示每一页,而是先清除整个屏幕,在显示文本
例:$ more +10 -5 /etc/passwd
②less命令:less [选项] <文件列表>
选项(常用且more命令没有的):
-N 显示行号(注意:N是大写)
-pwant 在文件中查找匹配want的第一处位置
例:$ less -pdh /etc/passwd
cat 、more、less命令的区别
①cat命令功能用于显示整个文件的内容,单独使用没有翻页功能
②more命令让画面在显示满一页时暂停,此时可以按空格键继续显示下一个画面,或按Q键停止显示。
③less命令用法和more命令类似,不同的是less命令除了可以按空格键显示文件外,还可以利用上下键来翻动文件。当要结束浏览时,只要在less命令的提示符“:”下按Q键即可。
(3)查看文件头部内容
head命令:head [选项] <文件列表>
-number 显示开始的number行,若不使用该项,默认是10行
例:$ head -5 /etc/passwd
(4)查看文件尾部内容
tail命令:tail [选项] <文件列表>
-f 当文件增长时,输出后续添加的数据
-n 表示显示文件的最后n行,而非默认的10行
-c n 输出最后的n个字节
例:$ tail -5 /etc/passwd
$ tail -c 40 /etc/passwd
(5)查看文件大小:du [选项] <file>
选项:
-a 对涉及到的所有文件进行统计,而不只是包含子目录
-h 自动以合适的单位输出文件的大小
-b 输出以字节为单位的文件的大小
-k 输出以1024字节为计数单位的文件的大小
-m 输出以兆字节的块为计数单位的文件的大小(就是1048576字节)
-c 给出总计。这个选项被用于给出指定的一组文件或目录使用的空间的总和
例:$ du -k /usr/include/math.h
$ du -b /mnt
(6)文件复制:cp [选项] <file1> <file2>
选项:
-i 如果目的文件存在,会在覆盖前提示
-p 保留文件的权限属性和修改时间
-r 递归复制目录
file1 被复制的文件
file2 要复制到的文件或目录
例:$ cp -i /user/bin/ldd ~
(7)文件移动:mv [选项] <file1> <file2>
mv [选项] <文件列表> <目标目录名>
选项:
-b 不覆盖原有文件,在后加~以区分
-f 在覆盖目的文件前永不提示用户
-i 在覆盖目的文件前提示用户
file1和文件列表 要转移的文件
file2和目录名 要转移到的位置
例:$ mv ldd information/ldd.exe
$ mv ldd.exe ldd.host(同目录下实现对文件或目录的重命名)
(8)文件删除:rm [选项] <文件列表>
选项:
-r 递归地移除目录中的内容及目录本身
-i 在删除文件列表中的文件前给出提示
文件列表,是要删除的文件,若有多个文件,之间由空格分开
例:$ rm -r information
(9)比较文件:diff [选项] [file1] [file2]
选项:
-b 忽略行尾的空,把空白字符串当做作相同的字符串来处理
-h 快速比较
例:$ diff t1.txt t2.txt
三种指令:a(增加)、c(替换)、d(删除)
(10)删除重复行(删除所有连续的重复行,只留下一行。该命令不改变源文件的内容,只是把结果输出到屏幕或文件中):
$ uniq [选项] [input-file] [output-file]
选项:
-c 在每行之前显示它们出现的的次数
-d 只显示重复行
-u 只显示未重复行
input-file 是需要修改的有连续重复行的文件
output-file 是删除重复行后得到的文件,如果省略该选项,删除结果输出在屏幕上
例:$ uniq -c abn
$ uniq -u abn abn.t
(11)文件名查找:find,whereis,locate
find <pathname> [选项] <文件或目录>
pathname是find命令所查找的目录路径。例如用“.”表示当前目录,用“/”表示系统根目录
选项:
-name 按照文件名查找文件
-perm 按照文件权限查找文件
-user 按照文件所有者查找文件
-group 按照文件所属的组查找文件
-mtime -n +n 按照文件的更改时间查找文件,-n 表示文件更改时间距现在n天以内,+n 表示文件更改时间距现在n天以前
-amin n 查找系统中最后N分钟访问的文件
-cmin n 查找系统中最后N分钟改变文件状态的文件
例:$ find /usr/include -name stdlib.h
(12)文件排序:sort [选项] <文件或目录>
选项:
-b 忽略每行前面开始处的空格字符
-c 检查文件是否已经按照顺序排序
-d 排序时,除了英文字母、数字及空格字符外,忽略其他的字符
-f 排序时,忽略大小写字母
-n 依照数值的大小排序
-r 以反向的顺序来排序
-u 排序输出时,去掉重复行
例:$ sort number.txt
$ sort -r number.txt
(13)文件压缩与解压缩
文件压缩命令:gzip、gzexe、zcat
gzip [选项] <文件列表>
选项:
-c 将输出写到标准输出上,并保留原有文档
-d 将压缩文件解压
-r 递归式压缩或解压
-t 测试、检查压缩文档是否完整
-v 对每一个压缩和解压缩的文件显示文件名和压缩比
解压缩:使用gzip命令以及-rd选项对文件进行解压缩
例:
压缩:gzip -r ztest
解压:gzip -rd ztest
(14)文件备份与还原:tar [选项] <文件或目录>
tar:将一个目录压缩成一个普通的文件(档案文件)以及还原
主选项:
-c 创建新的档案文件 ;
-r 追加文件
-t 查看已经备份了哪些文件
-u 更新文件
-x 从档案中释放文件
辅助选项:
-f 指定是要使用的文件名,通常是必选项,选项后面要有文件名
-v 详细报告tar命令处理的文件信息
-z 压缩或解压缩
例:
备份文件:$ tar -cvf 1.test.tar 1.test
文件还原:$ tar -xvf 1.test.tar
压缩备份文件:$ tar -cvzf 1.test.tar.gz 1.test
还原备份文件:$ tar -xvzf 1.test.tar.gz
(15)文件补丁制作
补丁制作:diff [选项] <oldfile> <newfile> <patchfile>
选项:
-r 对目录进行递归比较
-u 以统一格式创建补丁文件
-N 比较目录时,若一个目录或文件缺失,则视之为空文件
-a 将所有文件视为文本文件,逐行比较
oldfile 旧文件或目录
newfile 新文件或目录
> 重定向操作符 将diff的输出结果输出到patchfile
patchfile 补丁文件,存储diff的输出结果
例:$ diff -u t.old t.new > t.patch
打补丁:patch [选项] [源文件 [补丁文件]]
patch [选项] < [补丁文件](使用diff命令的-u选项制作补丁时用)
选项:
-p0 从当前目录查找源文件
-p1 忽略第一层目录,从当前目录开始查找源文件
-E 如果发现空文件,则删除它
例:$ patch -p0 < t.patch
链接文件
链接文件(用于文件的共享访问)
(1)软链接:指向路径
(2)硬链接:指向文件索引节点
创建链接文件:ln [-s] <sourcefile> <newfile>
使用选项-s,是创建软链接,否则是创建硬链接
sourcefile 源文件名
newfile 新创建的链接文件名
例:$ ln -s ~/abn.t lntest/sl.t
$ ln abn.t lntest/hl.t
硬链接文件类型是普通文件 "-" 软链接文件类型是链接文件 "l";
修改硬链接文件内容:用Gedit 给文件追加内容
文件安全
文件安全:基于密码的文件保护、基于文件的密码保护、基于访问权限的密码保护。
访问权限的类型:可读(r),可写(w),可执行(x)
访问权限的用户类型:文件所有者,同组用户,其他用户。
访问权限的表示:共10个字符,第一个字符表示文件类型,剩下的分为三组,每组三个字符:文件所有者的读、写、执行权限;与文件所有者的同组用户的读、写、可执行权限;其他用户的读、写、执行权限。
访问权限设置
访问权限设置:chmod [选项] [mode] <文件或目录>
选项:
-c 权限确实更改,才显示更改动作
-f 权限无法更改也不显示错误信息
-v 显示权限变更的详细资料
-R 权限递归变更
用户:u 同组用户:g 其他用户:o 所有用户:a
添加权限:+ 取消权限:- 赋予给定权限并取消其他权限(设定唯一权限):=
八进制数修改权限:4(可读)2(可写) 1(可执行)
读、写、执行(rwx) 4+2+1=7
读、写 (rw-)4+2=6
读、执行 (r-x) 4+1=5
例:
$ chmod o-rwx abn
$ chmod g=r abn
$ chmod -R a-w test
$ chmod 755 abn
正则表达式
正则表达式:grep,egrep,fgrep
grep [选项] <模式> [文件列表]
egrep [选项] [模式] [文件列表]
fgrep [选项] [模式] [文件列表]
选项:
-c 显示匹配的行数
-n 显示匹配内容所在文档的行号
-i 匹配时忽略大小写
-v 输出不匹配的内容
-x 只选择能匹配完整一行的匹配
模式:
^ 匹配的字符串在行首,如^xyz匹配所有以xyz开头的行
$ 匹配的字符串在行尾,如xyz$匹配所有以xyz结尾的行
\< 指匹配表达式的开始,如\<man匹配manic、man等,但batman不匹配
\> 指匹配表达式的结尾,如man\>匹配batman、man等,但manic不匹配
[] 单个字符(如[A] 即A符合要求)
[-] 范围,如[A-Z] 即从A到Z都符合要求
* 匹配零个或多个字符,如man*匹配manic、batman、man等
例:$ grep '^#ifndef' /usr/include/stdio.h
$ grep 'stdio.h' /usr/include/*.h