linux 目录相关操作
. 代表当前目录
.. 代表上一层目录
- 代表上一个目录
~ 代表 当前用户身份 家目录
~account 代表 account 家目录
1.cd: 变换目录
cd后什么都不加默认代表~家目录
2.pwd(Print Working Directory): 显示当前目录路径
加 -p后显示实际目录(如果是当前是link路径的话)
3.mkdir: 建立一个新的目录
-p 自动生成上层目录,如果上层目录已存在直接使用(不加的话,只能一
层一层建立)
mkdir -p t1/t2/t3/t4
-m 配置档案权限,直接设定(默认的是预设权限umask)
mkdir -m 711 t1
4.rmdir: 删除一个空目录(只能删除空目录)
-p 将路径中所有的空目录都删除
rmdir -p t1/t2/t3/t4(如果4个目录全为空,就相当于删除t1整个目录)
如果要删除目录下所有东西(不管是否为空)
rm -r t1
5.$PATH: 执行文件路径的变量
我们输入的一些指令比如 ls ,系统会依照PATH的设定去每个PATH定义的
目录下搜寻文件名为ls的可执行文件,如果在PATH定义的目录中含有多个
文件名为ls,则先找到的先执行!
echo $PATH
echo表显示、印出,$后面接的是变量,上面会显示出目前的PATH。
PATH(一定大写),这个变量的内容由一堆目录组成,每个目录中间用
(:)冒号隔开,有序。
如果你修改了PATH且PATH中不能搜索到可执行命令,那么只能用绝对路
径,如 /bin/ls 来执行。比如将ls命令移动到root下
mv /bin/ls root
如果PATH中别的目录不包含ls只能用/root/ls 或 如果在root目录下./ls
如果要在任何目录下执行,就要设置PATH
PATH="$PATH":/root
注:上面在命令行进行快速设置,只在本次登录shell有效。也就是说重新
登录后就会在PATH中消失,如果想永久存在就要修改.bashrc文件
6.ls 档案与目录的检视
常用:
-a : 全部的档案,包含隐藏档(.开头的档案)一起列出来
-d : 仅列出目录本身,而不是列出目录内的档案数据
-l : 长数据串行,包含档案的属性权限与权限等等数据.
7.cp 复制
常用:
-a : 相当于-pdr 复制所有特性
-i : 若目标文件(destination)已经存在,在覆盖时会先询问动作的进行
-p : 连同的档案的属性一起复制过去,而非使用默认属性(备份常用)
-r : 递归持续复制,用于目录的复制行为
8.rm 移除档案或目录
常用:
-f : force的意思,忽略不存在的档案,不会出现警告讯息
-i : 互动模式,在删除前会询问使用者是否动作
-r : 递归删除,常用目录删除(非常危险)
假定/tmp/etc下不为空
rmdir /tmp/etc/ 不为空无法删除
rm -r /tmp/etc 如果是root用户预设了-i,所以会一直询问是否删除
\rm -r /tmp/etc 指令前加反斜杠,可以忽略掉alias的指定选项,就不
会询问了
touch ./-aaa- 建立带-开头的空档案
rm -aaa- 系统会误认为是选项
rm ./-aaa- 或 rm -- -aaa- 这样就是当前目录下的-aaa-目录
9.mv 移动档案与目录,或更名
-f : force 强制,如果目标档案已存在,不会询问而直接覆盖
-i : 若目标档案已经存在,询问是否覆盖
-u: 若目标档案已经存在,且source比较新,才会更新
10.basename 取得文件名称
11.dirname 取得目录名称
12.档案内容查阅:
cat : (concatenate)由第一行开始显示档案内容,显示行号-n显示-b不显示
tac : 从最后一行开始显示,可以看出tac是cat的倒着写!
nl : 显示的时候,顺道输出行号!
more : 一页一页的显示档案内容, /abc搜索abc n继续搜索abc,
:f显示文件名及目前行数,b:往回翻页,只对档案有效,管线无效
less : 与 more 类似,但是比more更好的是,他可以往前翻页
head : 只看头几行
tail : 只看尾巴几行
od : 以二进制的方式读取档案内容
13.umask 档案预设权限
umask
0022 (后三位对应要删除的权限)
目录和档案不一样(档案不需要执行权限x):
转换后(目录:drwxr-xr-x 档案: -rw-r--r--)
umask -S
u=rwx, g=rx, o=rx
umask 002 (修改预设将0022改为0002)