第3章-目录和文件管理(一)
一,linux命令概述
# 在字符操作界面中输入能够完成特定操作和任务的字符串,都可以称为"命令"。
# "命令"通常只代表了实现某一类功能的指定或程序的名称。
二,命令的分类
# Linux命令的执行必须依赖于shell命令解释器。
# shell是在Linux系统中运行的一种特殊程序,它位于操作系统内核与用户之间,
负责接收用户输入的命令并进行解释,将需要执行的操作传递给系统内核执行,
Shell在用户和内核之间充当了一个"翻译官"的角色。
# Bash是Linux系统中默认使用的shell程序,文件位于/bin/bash。
内部命令
是没有文件的,自动载入在内存里,集成在shell解释器程序内部的一些特殊指令,也称"内建命令",存储在内存条上的命令。
外部命令
能找到文件的命令,存储在硬盘里面的

三,Linux命令行的格式
命令字 [ 选项 ] [ 参数 ]
命令字:区分英文字符的大小写
选项:调节命令的具本功能,决定这条命令如何执行
-:1个杠,表示单词简写,"例如:-a"
--:2个杠,表示完整的单词,"例如:--help"
3,参数:参数是命令字的处理对象
Tab键:可以将输入不完整的命令字、文件、目录名自动补全
\反斜杠:自动换行
Ctrl+u:快速删除当前光标处之前的所有字符内容
Ctrl+k:快速删除从当前光标处到行尾的所有字符内容
Ctrl+l:快速清空当前屏幕
Ctrl+c:取消当前命令行的编辑,并切换为新的一行命令提示符
四,获得命令帮助
help命令
# 查看各shell内部命令的帮助信息(如:help pwd)
2,--help
# 会显示中文帮助信息,不过是在图形界面下操作(如:ls --help)
man手册页
# 只显示英文(如:man file可以查看file命令的手册页信息)
4,"|"和">"
# 例:man ls | col -b > lshelp.txt
"col":是一个命令程序,用于过滤文本中的一些特殊控制字符。
"|": 管道,把前面的命令交给后面的命令进一步处理。
">":重定向输出,前面的命令成功执行后,其屏幕输出结果将保存到">" 后边指定的文件中(有点类似于另存为的功能)。
五,查看及切换目录
pwd:查看当前工作目录(print working directory)
cd:切换工作目录(change directory)
绝对路径:以"/"作为起点,如"/boot/grub"。
相对路径:在开头不使用"/"符号,一般以当前工作目录作为起点
#直接使用目录名或文件名,用于表示当前工作目录中的子目录,文件位置
例如:"grub.conf"可以表示当前目录下的grub.conf文件。
#使用一个点"."开头,可以明确表示以当前的工作目录作为起点,
例如:"./grub.conf"。
#使用两个点".."开头,表示以当前目录的上一级目录(父目录)作为点
例如:"../vmlinuz"等同于"/boot/vmlinuz"。
#使用"~用户名"的形式开头,表示以指定用户的宿主目录作为起点,省
略用户名时缺省为当前用户
3,cd - :两个运行过的目录直接来回切换
4,ls:列表(List)显示目录内容
-l:以长格式(long)显示文件和目录的列表,包括权限、大小、最后更新时间等
-a:显示所有(All)子目录和文件的信息,包括名称以点"."开头的隐藏目录、文件
-A:与-a的作用基本类似,但是"."和".."的文件将不会显示
-d:显示目录(Directory)本身的属性,而不是显示目录中的内容
-h:以更人性化(Human)的方式显示出目录或文件的大小,默认大小单位为字节
使用-h后,将显示为K、M等单位,需要结合-l选项一起死回生使用"-lh"。
-R:以递归(Recursive)的方式显示指定目录及其子目录中的所有内容
--color:在字符模式中以颜色区分不同的文件
#如果使用"—color=tty",表示使用终端预定义的颜色方案
#深蓝色:表示目录
#白色:表示一般文件
#绿色:表示可执行文件
#×××:表示设备文件
#红色:表示压缩文件
组合键:
ls –lh:可以同时查看多个文件的信息
ls -ld:可以只显示当前目录的详细信息,而不显示目录下的内容
通配符:"?"、"*"
?:可以匹配文件名中的一个未知字符
*:可以匹配文件名中的任意多字符
例如:ls -lh /etc/ns*.conf(列出/etc/目录下以"ns"开头,"conf"结尾文件)
du:统计目录及文件的空间占用情况
-a:统计磁盘空间占用时包括所有的文件,而不仅仅是目录
-h:显示单位的方式(默认以KB计数),使用-h后,以K、M等单位显示
-s:只统计每个参数所占用空间总的大小,而不是统计子目录、文件的大小
-sh:统计某个目录所占用的空间大小(常用组合键)
-ah:统计某个目录中所有文件、子目录各自占用的空间大小
6,df:查看以挂接磁盘使用情况
六,创建目录和文件
mkdri:创建新的目录
-p:一次性创建嵌套的多层目录
touch:创建空的文件
3,ln:创建链接(Link)文件
软链接格式:ln -s 源文件或目录 链接文件或目标位置
例如:ln -s /etc/httpd/conf/httpd.conf /etc/
ls -lh /etc/httpd.conf
含义:为文件/etc/httpd/conf/httpd.conf创建一个软链接文件/etc/httpd.conf
硬链接格式:ln 源文件 链接文件或目标位置
#软链接:又称符号链接,删除原始文件后,软链接失效
适用于文件或目录
与原始文件可以位于不同的文件系统中
#硬链接:删除原始文件后,硬链接仍旧可以用
只适用于文件,不能为目录建立硬链接
必须与原始文件在同一个文件系统中(如Linux一个分区内)
七,复制、删除、移动目录和文件
cp:复制(copy)文件或目录
格式:cp [选项] 源文件或目录 目标文件或目录
-f:覆盖目标同名文件或目录时不进行提醒,而直接强制(force)复制
-i:覆盖目标同名文件或目录时提醒用户确认(interactive,交互式)
-p:复制时保持(preserve)源文件的权限、属主及时间标记等属性不变
-r:表示递归复制所有文件及子目录
2,rm:删除(remove)文件或目录
格式:rm [选项] 文件或目录
-f:删除文件或目录时不进行提醒,而直接强制删除
-i:删除文件或目录时提醒用户确认
-r:表示递归删除整个目录树
-rf:通常结合这两个一起用
3,mv:移动(move)文件或目录/还可用于改名
格式:mv 源文件或目录.. 目标文件或目录
八,查找录和文件
which:查找Linux命令文件并显示所在的位置
#搜索范围主要由用户的环境变量PATH决定
#可以执行echo $PATH命令查看
#which -a 在所有搜索路径中查找
#shell内置的命令并没有对应的程序文件,因此使用which查找内部命令时,将找不到对应的程序,例如查找cd , "which cd"将查找不到
find:查找文件或目录
格式:find 查找范围 查找条件表达方式
例如:find / -name initab
-name:按名称查找,根据目标文件的名称进行查找,允许使用* ?号通配符
-size:按文件大小查找,用"+ -"号设置超过或小于指定的大小作为查找条件
-user:按文件属主查找,根据文件是否属于目标用户进行查找
-type:按文件类型查找,(f)普通文件,(d)目录,(b)块设备文件
(c)字符设备文件。
注意:
使用*?通配符时,最好将文件名用双引号括起来
需要同时使用多个查找条件时,各表达之间可以使用逻辑运算符:-a -o
-a:表示而且(And),表示两个条件必须同时满足
-o:表示或者(or),表示两个只需满足其中任何一个条件即可
格式:find /boot -size +1024k -a -name "vmlinuz"
find /boot -size +1024k -o -name "vmlinuz"