PATH,CP,MV,CAT,MORE,LESS命令學習

[toc]linux

PATH,CP,MV,CAT,MORE,LESS命令學習

1、 環境變量

環境變量PATH, 不用絕對路徑便可執行的命令,這些命令所在的目錄就是環境變量,用echo $PATHc查看

[root@xavi-001 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  • 查看命令所在的路徑,絕對路徑,以及別名,用「which 命令」
[root@xavi-001 /]# which ls 
alias ls='ls --color=auto' //顯示了該命令的別名
	/usr/bin/ls  //命令的絕對路徑
[root@xavi-001 /]# ls /usr/bin/ls
/usr/bin/ls   
[root@xavi-001 /]# cp /usr/bin/ls /tmp/ls2   //複製命令文件的絕對路徑
[root@xavi-001 /]# ls
1    boot  etc   lib    media  opt   root  sbin  sys  usr
bin  dev   home  lib64  mnt    proc  run   srv   tmp  var
[root@xavi-001 /]# /tmp/ls2
1    boot  etc	 lib	media  opt   root  sbin  sys  usr
bin  dev   home  lib64	mnt    proc  run   srv	 tmp  var
[root@xavi-001 ~]# ls2
bash: ls2: 未找到命令...
  • 上述代碼中,咱們先用which找到了ls的定義,其存放位置在/usr/bin/ls 下。(命令其實也是一個文件)咱們能夠複製一個ls命令,取名爲ls2,把他放在/tmp文件下,因而咱們執行/tmp/ls2效果等同於ls,可是執行ls2是不行的,由於/tmp不在PATH路徑中,如何添加到環境變量中去呢,運行如下代碼
[root@xavi-001 ~]# PATH=$PATH:/tmp/
[root@xavi-001 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/   //出現了/tmp/
[root@xavi-001 ~]# ls2
anaconda-ks.cfg  initial-setup-ks.cfg  [root@localhost
[root@xavi-001 ~]# which ls2
/tmp/ls2
  • 當你從新打開新窗口,或者再次登入是,發現ls2又失效了,是由於你沒有修改到系統文件中,系統裏有這樣的文件,在每次開機是都會加載

mark

這個環境變量只是在當前終端存在,不能永久存在;如今須要配置一個文件profile;

在/etc/profile下編輯一段指令bash

vi /etc/profile,進入按大「G"進入到最後一行,再按"A"讓光標到最後一個字符末尾,回車;

[root@xavi-001 ~]# vi /etc/profile

mark

  • 輸入cat命令查看是否已經修改在裏面保存成功
[root@xavi-001 ~]# cat /etc/profile  //輸入該命令查看是否已經修改在裏面保存成功,

再複製一個ssh通道,輸入:echo $PATH,/tmp/已經保存在PATH之下。

mark

[root@xavi-001 ~]# ls2
anaconda-ks.cfg  initial-setup-ks.cfg  [root@localhost   //ls2生效
  • 如何將ls2不生效呢,輸入如下命令,從新定義PATH
[root@xavi-001 ~]# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
[root@xavi-001 ~]# ls2
bash: ls2: 未找到命令...

mark

mark

--勘誤:上圖複製SSH Channel時,未正當操做,只點了複製,因此是錯誤示例。 ==問下老師區別複製和複製ssh Channel==less

  • 完全刪除的辦法是,用vi進入vi /etc/profile,把剛纔的代碼PATH=$PATH:/tmp/刪除便可。
[root@xavi-001 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/

或者能夠用vi刪除,在以後的課程裏面解釋說明ssh

2、 cp命令

cp copy 拷貝文件或目錄,下面拷貝文件,cp /源文件或目錄 /目標文件或目錄

[root@xavi-001 ~]# touch /tmp/xavilinux/2/3/4/1.txt
[root@xavi-001 ~]# cp /etc/passwd  /tmp/1.txt
cp:是否覆蓋"/tmp/1.txt"? y
[root@xavi-001 ~]# tree /tmp/xavilinux
/tmp/xavilinux
└── 2
    └── 3
        └── 4
            └── 1.txt

3 directories, 1 file

cp -r 拷貝目錄需加上r,且被拷貝源後要加斜槓

cp -r /原目錄路徑/ /目標存儲目/(可自定義重命名)

[root@xavi-001 ~]# cp -r /tmp/xavilinux/ /tmp/xavi

mark

mark

[root@xavi-001 ~]# tree !$
tree /tmp/xavi
/tmp/xavi
└── 2
    └── 3
        └── 4
            └── 1.txt

3 directories, 1 file
[root@xavi-001 ~]# cp -r /tmp/xavilinux/ /tmp/xavi/
[root@xavi-001 ~]# ls /tmp/xavi
2  xavilinux    //複製的目標目錄裏不存在xavilinux時,將其複製在目標目錄之下
[root@xavi-001 ~]# cp -r /tmp/xavilinux/ /tmp/xavi/
cp:是否覆蓋"/tmp/xavi/xavilinux/2/3/4/1.txt"? n

3、 mv命令

mv 若是原文件和目標文件都是在同一個目錄,就是重命名

mv 若是目標的文件已存在,就問是否覆蓋!

mv 若是目標的目錄已存在,就會把原目錄放在目標目錄下

mv 若是目錄的目錄已存在,目標目錄下也和原目錄同名,就會提示是否覆蓋了

[root@xavi-001 ~]# mv anaconda-ks.cfg anaconda-ks.cfg.1  //這裏至關於直接更名字了
[root@xavi-001 ~]# ls
anaconda-ks.cfg.1  initial-setup-ks.cfg  [root@localhost
[root@xavi-001 ~]# cd /tmp/  //切換到/tmp/目錄
[root@xavi-001 tmp]# ls
1.txt
ls2
systemd-private-326256f65ea943dd8a67183d93dfe298-cups.service-AeQUKR
systemd-private-326256f65ea943dd8a67183d93dfe298-vmtoolsd.service-4S9XrS
xavi
xavi1
xavilinux
[root@xavi-001 tmp]# mv 1.txt /root/2.txt
[root@xavi-001 tmp]# mv ls2 xavi/
[root@xavi-001 tmp]# ls xavi/
2  ls2  xavilinux
[root@xavi-001 tmp]# touch ls2
[root@xavi-001 tmp]# mv ls2 xavi/
mv:是否覆蓋"xavi/ls2"? n
[root@xavi-001 tmp]# which mv
alias mv='mv -i'
	/usr/bin/mv
  • 同理,若是不須要詢問,能夠直接輸入該命令的所在目錄

mark

  • 上圖中xavi1已經放入在xavi目錄下

mark

mark

[root@xavi-001 tmp]# mv xavi2/ xavilinux/
mv:是否覆蓋"xavilinux/xavi2"? y
mv: 沒法將"xavi2/" 移動至"xavilinux/xavi2": 文件已存在

4、 文檔查看cat_more_less_head_tail

[root@xavi-001 tmp]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync

cat -A 在行尾加了$做爲結束符

[root@xavi-001 tmp]# cat -A /etc/passwd
root:x:0:0:root:/root:/bin/bash$
bin:x:1:1:bin:/bin:/sbin/nologin$
daemon:x:2:2:daemon:/sbin:/sbin/nologin$
adm:x:3:4:adm:/var/adm:/sbin/nologin$
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin$
sync:x:5:0:sync:/sbin:/bin/sync$

cat -n 查看文件內,首字符顯示行號

more只顯示一屏,剩餘的不顯示,按下空格顯示剩餘,按下ctrl+b,back看以前的

mark

wc -l 1.txt 查看文件內容的總行數

less,輸入命令,按上下光標鍵能夠查看,按ctrl+B,ctrl+F,向前前後看,按Q退出,

  • 在less裏面輸入/字符串,能夠按N查找相應只付出,N往下看,shift+N,能夠向前查看 [root@xavi-001 tmp]# less /etc/passwd

mark

less裏面用「?字符串」

mark

mark

  • 從前(上)日後(下)搜索關鍵詞:/跟關鍵詞 (搜索到的關鍵詞會高亮顯示) 向後(向下)查看高亮的關鍵詞:n鍵 向前(向上)查看高亮的關鍵詞:Shift+n
  • 從後(下)往前(上)搜索關鍵詞:?跟關鍵詞 (搜索到的關鍵詞會高亮顯示) 向前(向上)查看高亮的關鍵詞:n鍵 向後(向下)查看高亮的關鍵詞:Shift+n
  • 定位到首行:g 定位到末行:Shift+g

head指令

[root@xavi-001 tmp]# head /etc/passwd

head -n :指定查看文件內容前2行

[root@xavi-001 tmp]# head -n 2 /etc/passwd  // 2 即爲制定行數
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

tail命令

[root@xavi-001 tmp]# tail /etc/passwd
[root@xavi-001 tmp]# tail -n 2 /etc/passwd
xavidsf:x:1001:1001:xavi:/home/xavidsf:/bin/bash
user1:x:1002:1002::/home/user1:/bin/bash

tail-f 查看某個不斷在寫入的日誌文件,head也有此功能。

相關文章
相關標籤/搜索