Linux学习(二)

来源:互联网 发布:数据库设计谁来负责 编辑:程序博客网 时间:2024/05/26 02:19

继续学习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>EOFhelloBye
输入重定向(立即文档)  <<  ,<<从键盘接受输入,并传递给程序,分隔符使用 EOF  END eof 等

$  cat << EOF > hello>hello world!>Bye>END
让cat命令以立即文档的方式获得输入,然后再把cat的输出重定向到hello文件

9)管道   |

$  ls | grep ay
ls列出所有当前目录下的所有文件名,“|”接收这些输出,并把它们发送给grep命令作为其输入

管道将重定向再向前推进一步,将一个命令的输出连接到一个命令的输入

基本命令到此学完了 ,下一步学习Vim 编程 加油O(∩_∩)O

	
				
		
原创粉丝点击