鸟哥的Linux私房菜笔记第六章(一)

目录与路径

相对路径与绝对路径

上一章简单的提到绝对路径和相对路径

绝对路径:路径的写法一定是由根目录(/)写起的,例如:/home/user 这个目录
相对路径:路径的写法不是由根目录(/)写起,例如:我当前所在目录 /home/user,我要切换到/home/user2 目录下。那么写法就是 cd ../user2,其实相对路径指的意思是:相对于当前目录的路径。


目录的相关操作

特殊的目录:

.   //代表当前目录
..  //代表上一次目录
-   //代表前一个工作目录(其实就是上一个操作的目录)
~   //代表当前用户的家目录,例如当前用户是user,那么user的家目录就是在/home/user下
~username   //代表用户名为username的用户的家目录。


常见的处理目录的指令

cd     //切换目录
pwd    //显示当前目录
mkdir  //创建目录
rmdir  //删除空目录,注意是空目录!不空的目录后面再讲

简单指令用法如下

cd /home/user //使用绝对路径切换目录
pwd           //显示当前所在目录,只会显示绝对路径
mkdir dir     //创建一个名为dir的目录(可以理解为文件夹)
rmdir dir     //删除一个名为dir的空目录


执行文件路径变量:$PATH

ls为查阅文件属性的指令,起对应完整文件名为:/bin/ls(这是绝对路径),那么为什么我们输入ls就会执行/bin/ls这个指令呢?这是因为环境变量PATH所致的。相当于我们Window下的环境变量path。

echo $PATH   //打印PATH变量,$号后面接的是变量。
/home/vagrant/bin:/home/vagrant/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

可以看到每个目录中间用冒号(:)来隔开,每个目录都会有顺序之分。我们之所以可以执行ls命令,那是因为ls指令存在/bin目录下,我们可以看到$PATH有/bin这个目录,所以ls指令就可以直接执行啦。
例举常用添加环境变量的两种方式,需要把/home/vagrant添加到环境变量:
1.只对当前用户生效:
修改家目录下的 .bashrc文件,然后在文件的最下方加入:

export PATH=/home/vagrant:$PATH
///保存后执行
source ~/.bashrc

2.修改/etc/environment文件,直接使用vim命令在后面添加就可以了。

cat /etc/environment //查看该文件
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"


文件与目录管理

文件与目录的管理,其实主要就是显示属性、复制、删除、移动等操作。
选项:

文件与目录的查看:ls

ls可以说是最常用的指令了,而ls指令一些常用的选项如下:
-a : 列出全部文件,包括隐藏文件(开头为 . 的文件)
-d : 仅列出目录本身,而不列出目录内的文件数据
-l : 列出的文件或目录,一个占一行,并且显示文件的属性、权限等等数据。
使用方式如下:

ls -[options]


复制、删除与移动:cp,rm,mv

cp(复制文件或目录)
cp指令也非常重要,因为我们也经常进行文件的复制,所以也会常常用到这个指令。如果要去复制别人的文件,我们必须有read(读)权限。一般来说复制别人的文件后,该文件的拥有者就会变成自己的啦。
常用选项:
-i : 若文件已经存在时,询问是否需要覆盖文件。
-p : 把文件的属性(权限、用户、时间)一起复制过去。
-r :递归复制,例如复制非空的目录,就需要使用这个指令啦。

使用方式如下:

cp [-options] 源文件 目标文件
cp -i /usr/bin /tmp/bin //例子



rm(移除文件和目录)
选项:
-f : 忽略不存在的文件,不会出现警告信息
-i : 执行删除动作时会询问你是否真的需要删除
-r : 递归删除,常用在目录的删除上,使用这命令要再三确认啊。危险!

使用方式如下:

rm [-options] 文件或目录



mv(移动/更名 文件或目录)
相似于window下的剪切和重命名操作。
选项:
-f :如果文件已存在,不会询问而只是直接覆盖。
-i :如果文件已存在,则会询问是否需要覆盖。
-u :如果文件已存在,且复制的文件比已存在的文件新,就会覆盖。

mv -[options] 源文件 目标文件
mv /home/vagrant /tmp/vg  //此命令就会把home下vagrant目录移动到tmp目录下,并且改名为vg啦。

扩展:其实更名还有一个命令,叫做rename。需要详细了解的话可以 man rename看一看。

你可能感兴趣的:(鸟哥的Linux私房菜笔记第六章(一))