Linux 7 Base NO.3
大家好!想学习LINUX,或者对Linux感兴趣想入门的,请持续关注……每周都会进行更新。。。
从浅到深,循序渐进,一步一步学Linux……
【如果有哪里写得不好,请多多包容并提出,主要以学习为主,一起学习进步希望大家乐在其中】
本节讲解从bash shell提示符操作Linux系统的文件,如复制、创建、移动、删除、重命名文件和目录
本节需要用到的知识点补充
1) Bash Shell提示符有两种#和$符号,如下,一般root为Linux系统的超级用户,UID=0,提示符为#
普通用户的UID一般都是大于等于1000,提示符为$
一般通过查看提示符即可知道是否为普通用户或超级用户
su - student——su为switch user,用于切换用户
2) Linux系统中的目录结构——文件系统层次结构
如下,Linux中的目录结构为树形结构,以根目录为/为起点,一直向往延伸,就像树杈一样
注意点:
在Red Hat Enterprise Linux 7中,根目录/ 中的四个较旧的目录如下,现在与它们在/usr中对应的目录拥有完全相同的内容:/bin和/usr/bin
/sbin和/usr/sbin
/lib和/usr/lib
/lib64和/usr/lib64
在Red Hat Enterprise Linux的较早版本中,返些是不同的目录,包含几组不同的文件。在RHEL 7 中,这些目录是/usr中对应的符号链接。
1 文件(目录)的复制——cp (copy)
可以通过whatis这个命令查看一下其简单的描述
[root@desktop0 ~]# whatis cp
cp (1) - copy files and directories
cp (1p) - copy files
语法:
cp 源文件 目标(目录或文件)
eg:
1) 拷贝到目标目录
如下图,将root用户家目录下的一个文件拷贝到目标目录tmp中
备注:
命令提示符前面为~时,代表为当前用户的家目录[root@desktop0 ~]root超级用户的家目录为/root
普通用户的家目录为/home/用户名
可以使用pwd命令查看当前所在目录,如下图
2) 拷贝到目标文件
如下图,在root用户家目录下,拷贝文件并重命名
3) 拷贝源目录到目标目录
如下图,将目录etc拷贝到目录tmp下,需要使用到参数-r,即--recursive(递归),否则会报错,大家可以使用man手册查找一下帮助
补充:
由于我们拷贝时是使用命令,不像Windows,为图形界面,可以看到滚动条,即拷贝的进度,那么Linux在拷贝较大文件时,如何查看其进度?
可以使用下面的方式进行拷贝
rsync: 一般用于同步数据,远程同步备份,也可以进行本机同步(复制) ,最主要能看到文件的同步进度,适合大文件,因为有校验机制。
eg:rsync -P 文件名 /tmp/
参数-P就是显示传输进度
参数-a可以用于拷贝文件夹
2 文件(目录)剪切&重命名——mv(move)
可以通过whatis这个命令查看一下其简单的描述
[root@desktop0 ~]# whatis mv
mv (1) - move (rename) files
mv (1p) - move files
eg:
1) 文件重命名(相同目录下为重命名)
如下图,在当前目录下,有两个文件,我们将fs.cfg重命名为web.cfg
2) 文件剪切(不同目录下为剪切)
如下图,将当前目录下的web.cfg移动到tmp目录下
3 删除文件(目录)——rm(remove)
可以通过whatis这个命令查看一下其简单的描述
[root@desktop0 ~]# whatis rm
rm (1) - remove files or directories
rm (1p) - remove directory entries
eg:
1) 删除文件
如下图,我们在删除文件的时候出现了交互的窗口,需要我们输入y进行确认,为什么?
在第1章节中,介绍bash shell时,提到了别名alias的用途,如下图
因为我们在执行删除命令时,是有风险的,特别是在root用户下面,所以,通过这种交互窗口来确保安全性,否则,已删除不该删除的文件,后果可想而知,特别是目录,rm这个命令可以删除整个目录
通过man手册,可以看到-i,为--interactive(交互的)
至于cp和mv的-i参数的作用是拷贝和剪切文件时,如果目标存在同名的文件或目录会提示是否覆盖,这些都是文件的安全着想,人为的疏忽总是避免不了的,因此,在执行命令,特别是rm这个删除命令时,必须小心,如确认一下当前目录是否正确(pwd),以免造成不堪的后果
2) 删除目录
在删除目录时,需要使用参数-r,即--recursive(递归),如下图,
如果目录下有很多文件,需要一个一个进行交互式删除,很麻烦,可以使用参数-f,即--force(强制), 一次性删除
rm -rf /pub/,参数-rf很可怕,命令一下,整个文件夹均被删除,并且不会存放于回收站,就像在Windows中删除文件时,使用Ctrl+shift+delete进行彻底删除,请三思而后行
备注:删除的过程中,可以使用Ctrl+C进行终止,该操作对于交互式较为有用。
在Linux中,大多数操作都可以使用Ctrl+C进行终止。
4 创建文件&修改文件的时间戳——touch
可以通过whatis这个命令查看一下其简单的描述
[root@desktop0 ~]# whatis touch
touch (1) - change file timestamps
touch (1p) - change file access and modification times
该命令很少用于文件的创建,主要是用于修改文件的时间戳
eg:
1) 创建文件
2)修改文件时间戳
如果我们再次执行touch pw1,将是对文件pw1进行时间戳的更改
如果当前目录下有很多文件需要修改时间戳,可以使用*进行代替,*可以代表所有
[root@desktop0 ~]# touch *
5 创建目录——mkdir(make directory)
可以通过whatis这个命令查看一下其简单的描述
[root@desktop0 ~]# whatis mkdir
mkdir (1) - make directories
mkdir (1p) - make directories
mkdir (2) - create a directory
mkdir (3p) - make a directory
eg:
1) 创建目录时,如果没有加/,表示在当前目录创建目录(绝对路径);如果加/,表示在根目录/下或者根目录下的其它目录创建目录(相对路径)
可以使用ls命令,加参数-dl,查看是否为文件夹
2) 在创建目录时,如创建目录/u1/u2/u3/u4时,如果父目录不存在,将无法创建,需要使用参数-p,--parents,即我们在创建目录u4时,使用-p参数,可以将u1,u2,u3中不存在的父目录一起创建(因为创建目录时,会查找上一级目录是否存在)
6 绝对路径 &相对路径
1) 绝对路径:以根开始,如访问目录doc时,[root@desktop0 ~]# cd /usr/share/doc/
Linux中目录切换命令为cd(change directory),cd ..为返回上一级目录,根目录/为Linux系统中目录的顶级目录,如下图
2) 相对路径:顾名思义,就是相对于当前目录的路径
如下,在切换到目录doc时,前面不需要加/
[root@desktop0 share]# pwd
/usr/share
[root@desktop0 share]# cd doc/
以下为路径会用到几个特殊符号及其意义:./:代表目前所在的目录
../:代表上一层目录
以"/"开头:代表根目录
~:代表用户家目录
本节到此结束……
下一节更新中:管理Linux本地用户和组