环境变量 PATH
which 可以查看到命令所在的路径, 包括别名
之前还有一个 find 命令 (查找文件的起始目录) 可以把所有文件从头到位变量了一遍
但是 which 不会, 它速度很快, 实际是从以下目录里面去找的, 命令如果在目录里, 去敲命令时就不用去敲绝对路径
真正用一个命令, 应该使用绝对路径命令其实也是一个文件, 你想使用这个命令, 就要先找到这个命令在哪里
我们可以把 ls 命令做一个特殊处理, 改个名字, 使用 cp (也就是拷贝) 再使用 / tmp/ls2 和 ls 的命令一个效果, 但是直接使用 ls2 却找不到这个命令, 因为它不在 usr/local/sbin 的目录里面 想直接用 就要改一下环境变量
ls2 在 tmp 下面, 是可以加入到 / usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
里面的, 输入 PATH=$PATH:/tmp/ 再查看, 你会发现路径下, 多了一个 tmp 再用 which ls2 就发现有了 这个就是环境变量
再打开一个终端, 输入 ls2 发现没有了, 文件目录下也没有 tmp(说明只是暂时生效, 从新启动系统后又消失) 想要每次都生效, 需要把环境变量改为永久的
变为永久的方法就是 输入 vi /etc/profile 编写 在最后一行加上 PATH=$PATH:/tmp/ 然后: wq 退出
然后用 cat /etc/profile 查看发现已经加入了最后一行, 再打开一个终端, 输入 echo PATH 查看发现已经有了 tmp ls2 也生效了
如果不想它生效了 就可以把它删掉, 输入 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
或者使用 vi /etc/profile 再编辑一下, 把 PATH=$PATH:/tmp/ 给删除掉, 这里可以使用 dd 快速删除
cp 命令
cp 就是 copy 拷贝的意思, 就是拷贝原文件成目标文件做个实验, cp 一个 txt 文件 和 cp 一个目录 (这里和 rm 一样 加 - r )用 tree 查看, 发现都是一样的
这里有个问题, 在拷贝原文件的时候, 加了斜杠, 拷贝的目标没有加斜杠
拷贝目录的时候有点特殊, 拷贝文件无所谓, 文件本身没有斜杠, linux 系统里目录是有斜杠的一个目录相当于 windows 的文件夹, 里面是有东西的
比如 ls / ls /tmp / 都是带斜杠, 用 tab 补全的时候也会自动带上斜杠 不加也没事, 但是我们要统一化的约定因为后面的课程有一个命令 加不加斜杠是有区别的 不管这个目录存不存在, 都最好加上斜杠(养成一个习惯)
这里又用到一个命令 !$ 这个表示上一条命令的最后一个参数, 正常应该是(tree /tmp/yingxinlinux1)
我们使用 which cp 查看, 发现 有 - i rm 也有 - i cp 其实也是一个别名, -i 的意思就是一个安全参数 选项, 会询问
我们也可以让它不询问, 直接使用 / usr/bin/cp /etc/passwd /tmp/1.txt
- 继续做实验, 正常拷贝文件的时候 会询问是否覆盖, 但是拷贝目录的时候是不会询问的, 它会在原目录下创建一个新的目录, 就是刚才拷贝的目录
这说明当目标目录已经存在的时候, 它会把原目录放在目标目录下面去, 如果目标目录不存在, 会把原目录拷贝过来, 改个名字
mv 命令
mv move 把文件挪动地方, 在同一个位置下, 它是改名字
比如我们把文件改名字, 如下操作
也可以把一个文件放在另一个文件下面, 然后修改名字
实验操作, 把 ls2 放在 yingxin 目录下面
我们再创建 touch ls2 再去挪动, 它会出现提示是否覆盖, 因为在 yingxin 下面已经有了一个 ls2 这和 rm cp 一样, 都有 - i 选项, 不想让提示 还是使用绝对路径, 就直接覆盖了
有时候会有特殊用法比如我们把一个目录放到一个不存在的目录, 那么会发现还是生效了, 它其实就是改名字了
如果目标目录存在, 它就会把原目录放在目标目录下面, 和 cp 的一样
文档查看 cat_more_less_head_tail
之前讲到一个 cat 命令 是查看文件内容的没什么特殊的用法
有一个和他对应的是 tac , 可以倒叙查看
可以 man 查看一下有时候可能用一下 - A 显示有所字符, 在 windows 和 linux 下编辑一个文件是不一样的
可以 cat -A /etc/passwd, 会发现后面有 $ 符号, 这个表示文件的这一行的行尾结束符
还有 - n 也可能用到, 会显示出行号
还有一个 more 就 i 是多的意思, 它也是查看文件内容的, 不会像 cat 全部显示, 然后使用空格键就可以往下看没显示到的文件
wc 命令 可以查看一个文件的行数
实验一下, 手动给文件的内容增加一些东西 cat /etc/passwd>> anaconda-ks.cfg.1 anaconda-ks.cfg.1 这个文件是系统自带的 是可以改的, 这个文件是自动装系统的, 平时用不到, 不用管他
它的作用是, 把 cat /etc/passwd 追加到 anaconda-ks.cfg.1, 每运行一次都会追加
追加后, 再去看效果就明显了空格键, 一屏一屏往下走按 Ctrl+B 往上看还有个对应的 Ctrl+F 往下看
除了 more 还有个类似的命令, 是 less 也可以空格键往下看, 但是它也支持用方向键往上查看但是并不像 more 一样直接退出来, 需要按一个 q 键
less 还有个功能, 可以搜索, 先按一个 / 然后输入想搜索的东西, 它会高亮显示(演示的是 cdrom)
想看还有没有其他地方有 可以按 n 键 提示没有存在了
做个实验, 搜索 root 按 n 往后看, 有很多, 也可以往前 n(第一张图是 n, 第二张是 shift n)
/ 是从前往后搜, 也可以从后往前搜就是? 问号的操作和 / 的操作恰恰相反, n 是往前看, shift n 是往后
现在想看后面的文件要按空格 这样太慢, 可以用 shift+G 往后看定位到行尾, g 的话就可以定位到行首
less 可以使用 more 所有的功能, 就用 less 就可以了有时候文件很多, 用 less 方便
我们还常用 head 和 tail (head 头的意思, tail 尾的意思), 可以查看头十行和尾十行
head 和 tail 是可以指定数字的(不是非得十行)
tail 经常用来查看一个动态的文件, 比如一个文件经常写内容, 可以用 tail -f 来查看, 但是会发现并没有退出命令
我们从新复制个, 然后输入命令 再回来, 发现文件有所增加(红色框之后的) 这个就是动态显示, 看日志的时候会用到
来源: http://www.bubuko.com/infodetail-2541125.html