目录的基本操作
切换目录(cd命令)
cd [相对路径或绝对路径]
cd ~ //代表进入家目录
cd //也是代表回到家目录
cd .. //代表回到上层目录
cd - //回到刚刚的目录
cd [绝对路径] //代表回到指定的路径
pwd(显示当前所在目录)
pwd //目前所在的工作目录的绝对路径名称。
mkdir(建立新目录)
mkdir [-mp] 目录名称
-m 设置文件权限 ,直接设置,不使用默认权限
mkdir -m 777 目录名称
-p 递归的创建所有的目录
mkdir test/test1/test2
rmdir(删除空目录)
rmdir [-p] 目录名称
-p 连同上层的“空目录也一起删除”
文件的基本操作
ls(文件与目录的查看)
-a //全部的文件,包含隐藏文件(开头为点. 的文件)
-A //全部的文件,连同隐藏文件,但不包括. 和 ..这两个文件
-d //只列出目录本身
-i //列出inode号码
-r //将排序结果反向输出,例如原本文件名是由小到大,现在由大到小
-l //列出文件的详细信息,包含文件属性权限
-R //显示该目录下所有文件(包括子目录的)
-S //以文件容量大小排序,而不是文件名
--full-time //以完整的时间格式输出(年月日时分秒)
ls -al --full-time//列出文件的所有属性,包含隐藏文件
复制(cp)
cp [选项] [源文件] [目标文件]
-a //把文件的所有信息都复制过去
-d //若为链接属性,则复制文件而非文件本身
-i //若目标文件已经存在,则覆盖前会先询问
-p //连同文件的属性(权限,用户,时间)一起复制过去
-r //递归复制,用于目录的复制操作
cp -r /目录名称/ /目录名称(复制该目录下所有文件到目标目录中去)
注意:若不加-a 或者 -p选项则在复制的目标文件的用户用户组就是你当前的账号,所以要注意。
删除(rm)
-i //删除前询问是否删除
-r //递归删除,最常用于目录删除
rm -r 目录名称 //删除该目录下的所有文件
移动(mv)
-f //若目标文件已存在,不询问直接覆盖
-i //若目标文件已存在,询问是否覆盖
-u //若目标文件已存在,且资源是最新的,才会更新
mv 文件名 目录名
还可以更名目录名称和文件名称
mv 目录名 新的目录名称
mv 文件名称 新的文件名称
rename 改多个文件的名称
basename 获取文件名
dirname 获取目录名
文件内容的查看(cat)
-b //打印出行号,不打印空的行
-n //打印出行号,打印空的行。
-v //列出一些看不出来的特殊符号
文件数据的截取
取出前几行(head)
head -n 数字 文件名称//数字代表取出几行的意思,不写默认为10行
特殊时数字为负数时,则取的是所有的行数加上该数字
取出后几行(tail)
-f //持续刷新文件中的内容
tail -n 数字 文件名称 //同head
特殊时tail -n +100 文件名称 //代表取出从100行到结束
创建文件
Touch
Touch 文件名 //在当前目录建一个文件
文件的查找
which 查看可执行文件的位置。
which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
-n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p 与-n参数相同,但此处的包括了文件的路径。
-w 指定输出时栏位的宽度。
-V 显示版本信息
输入 which pwd
输出 /bin/pwd
输入 which which
输出 alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
竟然会有两个 which ,其中一个是 alias 这就是所谓的『命令别名』,意思是输入 which 会等於后面接的那串命令!
输入 which cd
cd 这个常用的命令竟然找不到啊!为什么呢?这是因为 cd 是bash 内建的命令! 但是 which 默认是找 PATH 内所规范的目录,所以当然一定找不到的!
find 实际搜寻硬盘查询文件名称。
find -name 文件名
find -name “f*” //以f开头的所有文件
find -name “*.c” //以点c结尾的所有文件
find -perm 文件权限 //所有文件权限为输入的文件都会输出
find -empty //查找空白文件、空白文件夹、没有子目录的文
find -mtime 天数 //<- n>查询n天内文件更改过的的文件
<+n>查询n天前文件更改过的的文件
结尾加上这个“-exec {} ;"(注意 “{}” 与 “\” 之间有个空格)是让查询出来的结果显示出来,一条一条刷出来,如果还想查看详细信息的话,可以在添加一个“-ls”;
locate 配合数据库查看文件位置。
-l num(要显示的行数)
-f 将特定的档案系统排除在外,如将proc排除在外
-r 使用正则运算式做为寻找条件
locate 文件名
whereis
该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。
-b 只查找二进制文件。
-B 目录 只在设置的目录下查找二进制文件。
-f 不显示文件名前的路径名称,在是使用-S 、–M、-B选项时,必须使用这个选项。
-m 只查找说明文件。
-M 目录 只在设置的目录下查找说明文件。
-s 只查找原始代码文件。
-S 目录 只在设置的目录下查找原始代码文件。
-u 查找不包含指定类型的文件。
该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。
文件中搜索文本
grep -n 查找文本(显示匹配文本所在的行内容,且显示所在行号)
grep -n 正则表达式文本(模式查找)