鸟哥的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私房菜笔记第六章(一)的更多相关文章
- 鸟哥的Linux私房菜笔记第六章(二)
文件内容查询 直接查询文件内容 查阅一个文件的内容可以使用指令cat/tac/nl. # [cat|tac|nl] 文件 区别: 1.cat是直接把文件内容输出到屏幕上,并且从第一行开始输出到末行 2 ...
- 鸟哥的Linux私房菜笔记第四章
前言 对着<鸟哥的Linux私房菜-基础版>做了简化笔记.不想让自己知其然而不知其所然.所以写个博客让自己好好巩固一下,当然不可能把书中的内容全部写下来.在这里就简化一点把命令写下来. 让 ...
- 鸟哥的Linux私房菜笔记第五章,文件权限与目录配置(二)
Linux目录配置的依据--FHS 因为利用Linux来开发产品的公司太多,例如,CentOS.Ubuntu.ReHat...,导致了配置文件存放的目录没有统一的标准.后来就有了FHS(Filesys ...
- 鸟哥的linux私房菜——第十六章学习(程序管理与 SELinux 初探)
第十六章.程序管理与 SE Linux 初探 在 Linux 系统当中:"触发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个 ID ,称为 PID,同时依据启发这个程序的 ...
- 鸟哥的Linux私房菜——第十六章:学习Shell Scripts
视频链接:http://www.bilibili.com/video/av10565321/ 1. 什么是 Shell Script (shell写的脚本)1.1 干嘛学习 shell s ...
- 学习鸟哥的Linux私房菜笔记(1)——Linux系统入门
今天在阿里云申请了一个centos系统的云服务器,以前对linux了解的只是皮毛,记了几个命令还给忘了,整了半天都弄不好,作为一个做过javaweb开发的coder实在是惭愧啊,决定从今天开始学习Li ...
- [置顶] 学习鸟哥的Linux私房菜笔记(6)——过滤器、输入输出及管道
一.过滤器 Linux中的应用工具分为三种: 交互工具 过滤器 编辑器 能够接受数据,过滤再输出的工具,称之为过滤器 对过滤器和进程,存在着输入源与输出对象 二.输入.输出.重定向 输入:过滤器的数据 ...
- 学习鸟哥的Linux私房菜笔记(17)——Linux引导流程
一.系统引导流程 第一步:固件fireware(CMOS/BIOS)--POST加点自检(与操作系统无关) 这一步主要是检查硬盘等硬件是否能正常工作 CMOS:是固化在主板上,详细:http://sc ...
- 学习鸟哥的Linux私房菜笔记(16)——Ubuntu中建立ftp服务
1.安装vsftpd,如下图所示:sudo apt-get install vsftpd 2.查看本机是否可以连接ftp 如上图所示,发现login failed了,怎么办呢?我们来看看vsftpd的 ...
随机推荐
- 171129-workaround on ubuntu-seting up piston for steem
setup ubuntu environment variables sudo vi /etc/environment Then set all below variables: percentCha ...
- oracle 命令记录
监听程序启动停止查看名利: 1.切换到oracle用户:su - oracle 2.查看监听状态:lsnrctl status 3.停止监听:lsnrctl stop 4.启动监听:lsnrctl s ...
- dubbo之多版本
当一个接口实现,出现不兼容升级时,可以用版本号过渡,版本号不同的服务相互间不引用. 可以按照以下的步骤进行版本迁移: 在低压力时间段,先升级一半提供者为新版本 再将所有消费者升级为新版本 然后将剩下的 ...
- **ML : ML中的最优化方法
前言: 在机器学习方法中,若模型理解为决策模型,有些模型可以使用解析方法.不过更一般的对模型的求解使用优化的方法,更多的数据可以得到更多的精度. AI中基于归纳的方法延 ...
- IronPython中共享的C#基类如何向下转型
在项目中,我们使用IronPython来定义工作流脚本来以应对科研多变的需求.项目使用的主要语言仍然是C#,使用C#封装了各种基础服务与基础设施.Python脚本只使用C#提供的服务,或者说只定义了逻 ...
- efcore 控制台迁移架构
添加 nuget 包: Microsoft.EntityFrameworkCore.Design Microsoft.EntityFrameworkCore.SqlServer Microsoft.E ...
- Node.js 常用Mongoose方法
Node.js 手册查询-Mongoose 方法 一.Schema 一种以文件形式存储的数据库模型骨架,无法直接通往数据库端,也就是说它不具备对数据库的操作能力.可以说是数据属性模型(传统意义的表结构 ...
- 使用JAVA写一个简单的日历
JAVA写一个简单的日历import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateF ...
- html 报告页面样式
修改了下HTML页面样式 页面代码 <!DOCTYPE html> <html lang="en"> <head> <meta chars ...
- BZOJ 3744 Gty的妹子序列 (分块+树状数组+主席树)
题面传送门 题目大意:给你一个序列,多次询问,每次取出一段连续的子序列$[l,r]$,询问这段子序列的逆序对个数,强制在线 很熟悉的分块套路啊,和很多可持久化01Trie的题目类似,用分块预处理出贡献 ...