内部命令与外部命令的区别:
内部命令是Shell自带能用help查看的命令。
外部命令为第三方软件安装的命令
一些快捷键:
Tab:自动补全命令。
反斜杠“\”:强制换行后在下一行出现的“>”提示符后可以延续上一行命令。
Ctrl+U: 删除当前光标处之前的所有字符内容。
Ctrl+K: 删除从当前光标处到行尾的所有字符内容。
Ctrl+L: 清屏。
Ctrl+C: 取消当前的命令。
获得帮助命令:
1) help //提示简单的命令格式 例子:help pwd
2) –help //显示应用命令字的格式及选项等帮助信息。例子: ls –help
3) man //手册页常用于外部软件在安装时为执行程序,配置文件的详细的帮助手册页,例子:man file // file命令用于判断文件的类型
阅读man手册页时将以全屏幕的文本方式显示,使用方向键滚动一行文本,使用Page Up和Page Down键上下翻页,按Q或q退出手册页。按“/”可查找内容例子:“/-v”查找-v的帮助信息。按n或N进行上下定位选择。
4)info //信息页(info Page)比man更详细的帮助手册,提供了不少主题间的跳转功能帮助。
例子:将ls命令的man手册页保存为文本文件lshelp.txt
# man ls | col –b > lshelp.txt
该命令中col命令用于过滤文本中的一些特殊控制字符。
| 管道符:类似水管,将该命令交给下一个命令处理。
>重定向输出:前面的命令成功执行后,其屏幕输出结果将保存到 > 号后边指定的文件中。
文件和目录管理
绝对路径与相对路径区别:
绝对路径全加“/”可是非常准确地表示一个目录或文件的所在位置。
相对路径开头使用“.”或“..”或“~”,一般用于表示当前工作目录作为起点。例子:“grub.conf”可表示当前目录下的grub.conf文件。
“./grub.conf”可表示同上。
“../vmlinuz”等同于/boot/vmlinuz。
“~teacher”可表示当前用户的宿主目录。
1 目录操作命令
pwd //查看当前的工作目录
cd //切换工作目录,进入文件夹。
ls //列表形式显示目录内容:
-l:以长格式(Long)显示文件和目录的列表。
-a:显示所有(ALL)子目录和文件的信息,包括“.”开头的隐藏目录和文件。
-d:显示目录(Directory)本身的属性。
-A:与-a选项的作用基本类似,但不会显示“.”(表示当前目录),“..”(表示父目录)隐藏目录。
-h:以更人性化的方式显示出目录或文件的大小,默认单位为字节显示为K或M等单位。需要和-l选项结合使用。例子:ls –lh /etc/ns*.conf
-R:以递归(Recursive)的方式显示指定目录及其子目录中的所有内容。
–color:在字符模式中以颜色区分不同的文件,例子:–color=tty表示使用预定义的颜色方案。
mkdir //新建文件夹(目录)
du //统计目录及文件的空间占用情况
-a:统计磁盘空间占用时包括所有的文件。
-h:便于人性化阅读,单位K或M等。
-s:只统计每个参数所占用空间总的(Summary)大小。
例子:#du -ah /boot/vmlin* //统计以“vmlin”开头的各文件所占用的大小。
#du -sh /var/log/ //统计该目录所占用空间的总大小。
文件操作命令
touch //新建空文件
file //查看文件类型
cp //复制(Copy)
-f:强制复制,直接覆盖目标同名文件或目录
-i:覆盖目标同名文件或目录时进行确认提醒。
-p:复制时保持源文件的权限,属主及时间标记等属性不变。
-r:复制目录时必须使用,表示递归复制所有文件及子目录。
例子: #cp /bin/touch ./mytouch //复制/bin/touch目录到当前目录下,并命名为 ./mytouch
#cp -r /boot/grub/ /etc/httpd/conf/ ./ //将这两个目录复制到当前目录中进行备份。
rm //删除文件或目录
-f:强制删除文件或目录,不提醒。
-i:删除文件或目录并提醒用户确认。
-r:删除目录必须用此选项,表示递归删除整个目录树(谨慎使用)
mv //移动文件或目录
例子:#mv mytouch tfile.exe //将当前目录中的mytouch文件改名为tfile.exe
which //查找命令文件并显示所在的位置
-a:在所有搜索路径中查找
例子:#echo $PATH
#which ls //显示当前默认搜索路径,并查找ls命令文件所在的位置。
find //查找文件或目录
按名称查找:关键字“-name”,根据目标文件的部分名称查找可以使用“*”“?”通配符。
按文件大小查找:关键字“-size”一般使用“+”“-”号设置超过或小于指定的大小作为查找条件。常用的容量单位包括 k ,M ,G。
按文件属主查找:关键字“-user”,根据文件是否属于目标用户进行查找。
按文件类型查找:关键字“-type”,这里的类型指的是普通文件(f),目录(d),块设备文件(b), 字符设备文件(c)等。块为硬盘,内存等,字符为键盘,鼠标等。
例子:#find /etc -name “resol*.conf” //查找名称以resol开头,以.conf结尾的文件。
#find /boot -type d //在/boot目录中查找所以的目录。
#find /var/log -user lp //在/var/log目录中查找属于用户lp的文件或目录。
#find /boot -size +1024k –a name “vmlinuz*” //在/boot目录中查找超过1024KB而且文件名以“vmlinuz”开头的文件。可用运算符“-a”或“-o”,-a为And ,-o为Or。
Find命令还可以对查找到的结果进行过滤处理,在表达式后添加一个“-exec”关键字,并设置过滤用的命令即可。在过滤命令中使用“{ }”表示find命令的查询输出结果,最后必须添加“ \”表示命令结束。注前面有一个空格!
例子:#find /var/log -user lp –exec ls –ld { } \ ; //在/var/log目录中查找属于用户lp的文件或目录,并以长格式显示其详细信息。
ln //为文件或目录建立链接(Link)
链接文件分为符号链接,硬链接两种类型,区别是:硬链接不能跨越不同分区创建的硬链接。
符号链接(软连接),需要添加“-s”选项。两个链接与直接访问原始文件的效果基本相同。
例子:#ln -s /etc/httpd/conf/httpd.conf /etc/ //为文件httpd.conf创建符号链接文件并保存到/etc目录中,以便需要时查找该文件,ls -lh /etc/httpd.conf
#ln /usr/sbin/system-config-network /sbin /mynetconfig //为网卡配置脚本文件创建名为 mynetconfig的硬链接文件,以便通过它对网卡参数进行配置。
文件内容操作命令
cat //显示并连接(Concatenate)文件的内容
more和less 命令 //分页查看文件内容
head和tail命令 //查看文件开头或结尾的部分内容
-f:默认开头或最后十行内容。
wc //统计文件内容中的单纯数量等信息
-c:统计文件内容中的字节数
-l:统计文件内容中的行数
-w:统计文件内容中的单词个数
例子:#ls -l /etc/*.conf | wc -l //统计/etc目录中.conf配置文件的个数。
grep //检索,过滤文件内容(正则表达式)
-i:查找内容时忽略大小写
-v:反转查找,即输出与查找条件不相符的行
例子:#grep –v “^#” /etc/vsftpd/vsftpd.conf | grep -v “^$” //查看vsftpd.conf文件中除了以#号开头的行和空行以外的内容。$:用于结束。
#lspci | grep -i “Ethernet” //执行“lspci”命令查看主机中的PCI设备信息,并过滤出其中以太网卡设备的信息。
归档与压缩命令
gzip和bzip2命令 //制作压缩或解压缩的文件
-9:可以有效提高压缩的比率
-d:解压缩专用命令。
例子:#gzip -9 tfile.exe //创建压缩文件
#gzip -d tfile.exe.gz //解压缩文件
tar //制作归档或释放文件
-c:创建(Create).tar格式的包文件
-C:解包时指定释放的目标文件夹
-f:表示使用归档文件
-j:调用bzip2程序进行压缩或解压缩
-p:打包时保留文件及目录的权限
-t:列表查看包内的文件
-v:输出详细信息
-x:解开.tar格式的包文件
-z:调用gzip程序进行压缩或解压
例子:#tar zcf sysfile.tar.gz /etc /boot //备份/etc和/boot目录为sysfile.tar.gz包文件。
#tar zxf sysfile.tar.gz //将sysfile.tar.gz包文件释放或解压到当前目录中。
Vi文本编辑器
#alias vi =’ /usr/bin/vim’
#which –a vi vim //设置命令别名vi,以便执行vi命令时加载增强版的vim程序。
工作模式:命令模式,输入模式,末行模式。
模式切换:a , i , o , A ,I ,O
光标操作:方向键调整位置, Page UP(Ctrl+B) Page Down(Ctrl+F)翻页,行内快速跳转“^”或“0”跳转到首行,End或$跳转到本行结尾。行间快速跳转gg跳转到第一行G跳转到文件最后一行,#G跳转到文件中第#行(#用具体数字替换),:set nu显示行号,:set nonu取消显示行号。
复制粘贴删除:使用x或Del按键删除光标处的单个字符
Dd删除光标前内容,#dd删除从光标处开始第#行内容(#以具体数字代替)
Yy复制当前行整行的内容到剪贴板,#yy意思同上。
按p键可将内容粘贴到光标处之前。
U或u撤销编辑及保存退出,u:用于取消最近一次的操作,可进行多步恢复,U:取消对当前行所作的所有编辑。可按ZZ命令保存退出。
末行模式基本操作:
:w //保存,另存为
:q! //强行退出不保存
:wq //保存并退出也可用:X
打开新文件或读入其他文件内容:
:e ~/install.log //打开当前目录下该文件进行编辑
:r /etc/filesystems //将该文件的内容复制到当前目录中
文件内容替换:
:替换范围 sub /旧的内容/新的内容 /g
%:在整个文件内容中进行查找替换
n,m:在指定行数范围以内的文件内容中进行查找并替换
/g:可选内容结尾处,省略的话只替换每行中的第一个匹配结果
例子::sub /i/r //将当前行中的第一个i字母替换为大写I
:10,20 sub /initdefault/DEFAULT/g //把10~20行内的initdefault字符串替换为DEFAULT字符串。
:% sub /initdefault/DEFAULT/g //把文件所有的initdefault字符串全部替换为DEFAULT字符串。