继续学习Linux的一些基本命令,针对于Linux的文件目录管理:
Linux没有像Windows提供 \ 这样的系统目录,Linux是基于文件系统结构的。首先建立一个根“/”文件系统,并在这个文件系统中建立一系列空目录。
建立文件和目录
1)建立目录 mkdir
$ mkdir ../picture/temp ##若picture目录不存在,则提示出错
$ mkdir -p ../picture/temp ## -p表示picture目录不存在时会自动创建这个目录
2)建立一个空文件 touch
$ touch test.php
touch可用于更新一个文件的建立日期和时间
$ touch test.php
$ ls -l test.php ##更新文件的建立时间
移动、复制和删除文件目录等
1)移动和重命名 mv
$ mv hello bin/ ##自动覆盖目标目录下的同名文件
$ mv -i hello test/ ## -i 提示是否覆盖同名文件 y表示覆盖,n表示跳过此文件
$ mv -b hello test/ ## -b 表示在目标目录的同名文件名后加“~”
mv可以在移动文件和目录的同时对其重命名
$ mv hello~ hello ##实现Linux文件的重命名,hello为重命名后的文件
2)复制文件和目录 cp
$ cp test.php test/ ##默认会覆盖目标目录下的同名文件
$ cp -i test.php test/ ## -i -b同mv命令
$ cp -r test/ temp/ ##将子目录连同文件一起复制到另外一个目录,否则cp会自动略过目录“test/”
3)删除目录和文件 rmdir和rm
$ mkdir remove
$ rmdir remove
rmdir 只能删除目录,只能删除空目录,删除一个目录之前,需要将该目录下的文件和子目录都删除掉,很少使用;
rm用来删除文件,一次删除一个或多个文件,也可以删除目录
$ rm test/*.cpp ##删除的文件将永远从系统中消失
$ rm -i test/hello ##对于只读文件不加-i也会提示,y 表示确认删除,n 表示跳过这个文件
$ rm -f hello ## -f 避免进行交互操作,rm 自动回复 y
$ rm -r test/ ##递归删除目录下所有的文件和子目录
应小心使用rm,特别以root身份执行该命令时。
文件的目录和权限
Linux下有三种权限:文件的所有者(属主)、文件属组用户和其他人,root拥有控制一台计算机的完整权限。
文件和目录的三种权限:读取(r)、写入(w)、执行(x) 。
1)查看文件和目录的属性
$ ls -l ##可查看文件和目录的属性
-rw-rw-r-- 1 zrh zrh 6 05-31 20:38 hello
- 第一个字段表示文件类型,- 表示一个普通文件;
- 接下来是文件属主、属组和其他人的权限,这个9个字符间断为rw-、rw-和r--,某个权限被禁用了,使用“-”代替;
- 第3个字段和第4个字段分别表示文件的属主和属组;
- 3组权限后的数字表示该文件的链接数目;
- 最后4个字段分别表示文件的大小、最后修改日期和时间、以及文件的完整路径;
2)改变文件的所有权 chown和chgrp
chown改变文件的属主和属组
$ sudo chown zrh:root hello ##可以修改属主和属组之一
$ sudo chown zrh hello ##修改属主
$ sudo chown :root hello ##修改属组,:不可省
$ sudo chown -R zrh:root test/ ## -R 用于改变一个目录下以及其下的所有文件(和子目录)的所有设置
chgrp仅改变属组,-R 的使用也同上
$ chgrp -R nogroup test/ ## 设置nogroup组
3)改变文件的权限 chmod
chmod改变文件的权限,使用“用户组 +/- 权限”的表达方式来增加/删除相应的权限
$ chmod u+x days
各种表示:
- 文件属主:u
- 文件属组:g
- 其他人:o
- 所有人:a
- 读取:r
- 写入:w
- 执行:x
$ chmod ug=rw,o=r days $ chmod o=u days
4)文件权限的八进制表示
$ chmod 711 days
rwx占用三个二进制位,711分别对应属主、属组和所有人对文件的权限
只有文件的属主和root用户才有修改文件的权限
5)文件的类型
- - 普通文件
- c 字符设备文件
- d 目录
- b 块设备文件
- s 本地域套接口
- p 有名管道
- l 符号设备
字符设备又被称为顺序访问设备,块设备如磁盘,随机访问设备
6)建立链接 ln
$ ln -s days my_days
称为符号链接,又称为软链接。相当于是快捷方式,建立别名,通过名称进行引用,删除my_days,不影响days,也适合目录
$ ln days my_days
称为硬链接,两个独立的文件联系在一起,是直接引用,改变一个文件影像另外一个文件,不指向目录
7)输出重定向 > >>
$ ls > ~/ls_out/ ##若ls_out文件不在会试图建立这个文件,存在则删除文件中原有的内容
$ ls >> ~/ls_out/ ## >> 会保留原有的内容
程序默认输出结果的地方称为标准输出,指向显示器
8)输入重定向 < <<
$ cat
等待键盘的输入,每输入一行就立即显示在屏幕上,使用组合键ctrl+D 提供一个文件结束符
$ cat < days
程序从一个文件获取输入,可以用$ cat days 代替 输入重定向不经常使用。标准输入指向键盘
$ cat << EOF
> hello
> Bye
>EOF
hello
Bye
输入重定向(立即文档) << ,<<从键盘接受输入,并传递给程序,分隔符使用 EOF END eof 等
$ cat << EOF > hello
>hello world!
>Bye
>END
让cat命令以立即文档的方式获得输入,然后再把cat的输出重定向到hello文件
9)管道 |
$ ls | grep ay
ls列出所有当前目录下的所有文件名,“|”接收这些输出,并把它们发送给grep命令作为其输入
管道将重定向再向前推进一步,将一个命令的输出连接到一个命令的输入
基本命令到此学完了 ,下一步学习Vim 编程 加油O(∩_∩)O