linux系统不存在盘这个概念,用户通过操作目录来实现磁盘读写,Linux需要首先建立一个根‘“/”文件系统,并在这个文件系统中建立一系列空目录,然后将其他硬盘分区中的 文件系统挂载到这些目录中。

用户间共享文件
1 2 3 4 5 6 7 8
| ##新建一个名为workgroup的用户组 $ sudo groupadd workgroup ##新建用户,并归入workgroup组 $sudo useradd -G workgroup lucy $sudo passwd lucy ##为用户lewis设置登录密码 $sudo useradd -G workgroup lewis $sudo passwd lewis ##为用户peter设置登录密码
|
建立文件和目录
1 2 3 4 5
| $ cd ~ ##进入用户主目录 $ mkdir document picture ##新建两个目录 $ mkdir ~/picture/temp ##在主目录下新建名为temp的目录 ##如果没有中间的目录也就无法在下面创建一个新的文件或目录为此,使用-p选项 $ mkdir -p ~/tempx/job ##创建一个tempx文件夹在下面创建一个job文件夹
|
建立一个空文件
1 2 3
| $ touch hello ##新建一个hello的文件 $ touch hello ##已经有hello的文件,所以可以更新hello文件的创建日期
|
移动和重命名
1 2 3 4
| $ mv hello bin/ ##移动hello到bin/中 $ mv photos/桌面/ ##移动photos目录到桌面 $ mv -i hello test/ ##使用防止替换同名文件并加以提示. $ mv -b hello test/ ##在目标目录的同名文件后面加上~,相当于重命名
|
复制文件和目录
1 2 3
| $ cp test.php test/ ##将test.php 放入到test下 $ cp -i test.php test/ ##提示是否覆盖同名文件 $ cp -r test/ 桌面/ ##连子目录带文件一起复制到下面
|
删除目录和文件
1 2 3 4 5
| $ rmdir remove ##删除目录 $ rmdir text/*.php ##删除test目录下的所有php文件 $ rmdir -r test ##删除前有提示 $ rmdir -f ##避免交互直接回答y
|
改变文件所有权
chown语法如下
1
| chown [OPTION]... [OWNEr][:[GROUP]] FILE..
|

sudo 提供-R选项用于改变一个目录及其下所有文件的所有权设置。
1
| $ sudo chown -R lewis iso/ ##将iso/和下面所有文件交给lewis
|
改变目标文件权限
chmod用于改变一个文件的权限。使用用户组+/-权限的表达方式,来增加/删除权限。用户组包括文件属主(u)、文件数组(g)、其他人(o)和所有人(a),权限包括读取(r)、写入(w)和执行(x)
1 2 3
| $ chmod u+x days ##增加属主对文件的执行权限 $ chmod a-x days ##删除所有人对days的执行权限 $ chmod o=u days ##将其他人的权限和属主一致
|
chmod(change mode)命令是控制用户对文件的权限的命令,文件类型和文件权限由 10 个字符组成:
第 1 位表示文件的类型;
第 2 - 4 位表示文件所有者对文件的权限;
第 5 - 7 位表示文件所有者所在组的用户对文件的权限;
第 8 - 10 位表示其他用户对文件的权限;
其中 r 表示可读,w 表示可写,x 表示可执行,- 表示没有权限。
如果可读,权限二进制为 100,十进制是4;
如果可写,权限二进制为 010,十进制是2;
如果可执行,权限二进制为 001,十进制是1;
文件类型

Linux有两类设备文件:字符设备和块设备文件。字符设备指的是能够从他那里读取成字符序列的设备,如磁带和串行线路,块设备指的是用来存储数据并对其各部分内容提供同等访问权的设备。如磁盘。
建立链接
符号链接
1
| $ ln -s days my_days ##建立一个my_days的符号链接指向文本文件days
|
访问my_days就相当于访问days了。可以看作快捷方式删除并不会对源文件有影响
1
| $ ln -s /usr/local/share/ local_share ##建立一个指向/usr/local/share的符号链接local_share
|
硬链接:将两个独立的文件联系在一起。
1
| $ ln days hard_days ##建立一个链接到days的新文件hard_days
|
两个文件的改动会相互影响。
输入输出重定向和管道
1
| $ ls > ~/ls_out ##将ls的输出重定向到lsout文件中,ls的输出不显示在屏幕上
|
如果ls_out不存在那么会尝试建立这个文件,如果已经存在会替换原来的文件内容。
1
| $ cat < days ##让程序从一个文件中获取输入
|

管道
