环境变量PATH ,cp、 mv命令,文档查看cat/more/less/head/tail2.10-2.13

2.10环境变量
一、环境变量PATH 
 1、先说下which, 它用来查找某个命令的绝对路径,包括它有没有别名,比如:
which rm
alias rm='rm -i'
               /usr/bin/rm


2、那么它为什么能这么快查出路径呢?它是从哪里查到的呢?实际系统是从环境变量里查到的
例如:echo $PATH#打印环境变量
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
当我们敲命令时是直接打出来的命令而不用先输命令的绝对路径,是因为环境变量PATH在起作用了,当我们们输入一个命令时,系统会自动到环境变量里去查找这个命令,也是就上面这些路径中去查找。echo其实就是打印的意思,而PATH前面的$表示后面接的是变量。
 
3、因为/bin 在PATH的设定中,所以我们平时输出ls的时候是可以找到的。如果将 ls 移到 /tmp 下就不行,因为 PATH 里没有 /tmp 这个目录,而你又将 ls 移动到 /tmp 底下了,系统会提示:找不到这个命令‘command not found!’ 


要解决这个问题的话,有两个方法,一种方法是直接将 /tmp 的路径加入 $PATH 当中,另一种方法就是使用绝对路径 
例如:
PATH=$PATH:/tmp/    #在环境变量中加入/tmp/   
echo @PATH  #输出环境变量
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/ #/tmp/ 已加入环境变量
可测试一下:
which ls
/tmp/ls  #ls的路径在/tmp/ 下"
ls
anaconda-ks.cfg
也可以直接用
/tmp/ ls
anaconda-ks.cfg


4、如果想把环境变量的设置应用到另一个终端,可以把它设置成永久的
可以编辑系统文件/etc/profile
vi /etc/profile,按i
PATH=$PATH:/tmp/ #增加路径
:wq
这时用cat查看一下文件内容
cat /etc/profile

会发现最后一行,已经加上了


如果想取消之前的设置,就重新设置一下
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin#在环境变量里删除tmp
或者vi /etc/profile里,按两个d键删掉,:wq


2.11cp命令
1,拷贝文件
cp=copy,把源文件拷贝到目标路径并改名成新文件,比如我们将/etc/passwd文件拷贝到/tmp/下改名叫1.txt,那么
cp /etc/passwd /tmp/1.txt


2,拷贝目录 
把 /tmp/aminglinux/拷贝到/tmp/aming/下,加-r
cp -r /tmp/aminglinux/ /tmp/aming


which cp
alias cp='cp -i'自带参数,拷贝时默认会询问是否覆盖,用绝对路径就不会询问了,
比如/usr/bin/cp /etc/passwd /tmp/1.txt#passwd会直接变成/tmp下的1.txt


当目标目录已经存在的时候,它会把原目录拷贝过来直接放到目标目录下去,
如要将/tmp/aminglinux拷贝到/tmp/aming1/,/tmp/aminglinux下有一个子目录2和子目录文件2.txt 若aming1 已经存在,会有什么结果呢,
cp -r /tmp/aminglinux/  /tmp/aming1/
可得 2 aminglinux


2.12、mv命令 
move的简写,即移动。格式为 mv [ 选项 ] [源文件] [目标文件] ,介绍几个常用的选项:
如果直接在同一个文件夹中移动,就等于重命名
比如想把anaconda-ks.cfg改名为anaconda-ks.cfg.1
使用mv anaconda-ks.cfg anaconda-ks.cfg.1即可


也可以在不同文件夹中移动并改名
比如想把/tmp/1.txt放到/root/并改名为2.txt
使用mv /tmp/1.txt /root/2.txt即可


mv命令使用时也有-i选项
-i : 和cp的-i 一样,当目标文件存在时会问用户是否要覆盖。在Redhat/CentOS系统中,我们使用的mv其实是mv -i


该命令有几种情况: 
1) 目标文件是目录,而且目标文件不存在; 
2) 目标文件是目录,而且目标文件存在; 
3) 目标文件不是目录不存在; 

目标文件是目录,是否存在,移动的结果是不一样的


1、目标文件为目录,并且目标目录不存在,相当于把 ‘a’ 重命名为 ‘b’。 
例如
mv aming/ aming2/#把aming移到aming2,aming2不存在的话,移完之后查看,目标目录下只就aming2
ls
aming2
aminglinux


2、目标文件为目录,且目标目录存在,则会把 ‘源文件’ 移动到 ‘目标’ 目录里 
tmp/下有aming2/和amingliux/
若mv aming2/ aminglinux/
ls aminglinux/
2 aming2#可以看出aming2/放在了amingliux/下


3、目标文件为目录,且目标目录存在,则会把 ‘dira’ 移动到 ‘dirb’ 目录里 ,并且会问是否要覆盖




2.13、文档查看cat/more/less/head/tai 
1、命令: cat 
比较常用的一个命令,即查看一个文件的内容并显示在屏幕上, 后面可以不加任何选项直接跟文件名,有两个常用的选项:
-n : 查看文件时,把行号也显示到屏幕上: 
-A : 显示所有东西出来,包括特殊字符: 


tac可以倒叙查看文件的内容


2、more 
也是用来查看一个文件的内容,后面直接跟文件名,当文件内容太多,一屏幕不能占下,而你用 ‘cat’ 肯定是看不前面的内容的,那么使用 ‘more’ 就可以解决这个问题了,当看完一屏后按空格键继续看下一屏。按ctrl+b回看上一屏,看完所有内容后就会退出,如果你想提前退出,只需按 ‘q’ 键即可。


3、less 
作用跟more一样,后面直接跟文件名,但比more方便的地方在于,可以按方向皱键上下来翻,空格键同样可以翻页,而按 ‘j’ 键可以向下移动(按一下就向下移动一行),按 ‘k’ 键向上移动。按 ‘q’ 键退出。


还可以用


在使用more和less查看某个文件时,你可以按一下 ‘/’ 键,然后输入一个cdrom回车,这样就可以搜索这个cdrom这个词了。如果是搜索有没有多个cdrom?可以按 ‘n’ 键继续向下搜索,按shift+"n"键,可以向上搜索。


另外也可以按 ‘?’ 来搜索,比如搜索root,可用
? root
与用‘/’ 搜索不同的是,是在当前行向下搜索,而 ‘?’ 是在当前行向上搜索,搜索方向相反。如果我想直接查看最后一行可用 shift+g,直接查看第一行,可能用"g"定位。


4、head 
后直接跟文件名,则显示文件的前十行。如果加 -n 选项则显示文件前n行。‘-n’后可以有空格也可以无空格。
也可以指定显示文件的前6行,则可以用
head -n 6 anaconda-ks.cfg# 指定查看文件的前6行


5、tail 
和head一样,后面直接跟文件名,则显示文件最后十行。如果加-n 选项则显示文件最后n行。 也可以指定查看文件的最后6行,则可以用
tail -n 6 anaconda-ks.cfg# 指定查看文件的最后6行


tail -f : 动态显示文件的最后十行,这个在查看日志的时候比较常用,如果文件是不断增加的,则用-f 选项。如:tail -f /var/log/messages #查看日志的最后十行






tips:
!$上一条命令的以空格或tab 键分割的最后一个参数



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值