隨筆-159  評論-114  文章-7  trackbacks-0

          touch命令

          如果文件不存在,創(chuàng)建新文件。
          文件存在,同時(shí)更新訪問和修改時(shí)間。

          注意文件的更新時(shí)間和訪問時(shí)間不一樣。

          touch file1
          vi file1

          添加內(nèi)容。

          ls -lt 會看到該文件的最后修改時(shí)間。
          過一些時(shí)候,執(zhí)行more file參看一下該文件,也就是訪問一下。
          ls -lu會看到該文件最后訪問的時(shí)間。

          這是再touch file1,ls -lt和ls -lu會看到同樣的時(shí)間。


          做不了事(執(zhí)行不了動作),你要檢查幾件事!

          1.你是誰 (id命令)

          openlab.tarena.ca% id
          uid=25791 gid=103(tarena)

          2.你在哪(pwd),你對某個(gè)文件的關(guān)系(owner group同組者 other)

          3.你是否能在某目錄里做事(讀ls 寫創(chuàng)建文件 執(zhí)行cd),看看這個(gè)目錄的權(quán)限
             
                在該目錄下,執(zhí)行 ls -ld,查看該目錄
                注意:回上一級,執(zhí)行l(wèi)s -l lujl,是查看該目錄下文件和子目錄的權(quán)限。

          ls -al lujl 可以查看隱藏文件。

          ls -R 將該目錄下所有文件夾遞歸展開

          su - somebody 就是將環(huán)境變量也更換為somebody的,否則不更新,cd時(shí)回原來的用戶的主目錄。



          一些基本命令。

          mkdir -p dir6/dir7/dir8 可創(chuàng)建層級目錄

          cp -i beans apple 文件存在,會提示,-i作用

          ===============================
          openlab.tarena.ca% cp -r dir3 dir4

          注意:如果dir4不存在,那么就先建立dir4,在將dir3中內(nèi)容拷貝過去,如果dir4存在,則是將整個(gè)dir3包括dir3本身,整個(gè)目錄結(jié)構(gòu)拷貝過去。

          openlab.tarena.ca% ls
          dir3   file1
          openlab.tarena.ca% cp -r dir3 dir4
          openlab.tarena.ca% ls -R
          .:
          dir3   dir4   file1

          ./dir3:
          a.txt

          ./dir4:
          a.txt
          openlab.tarena.ca% cd dir4   
          openlab.tarena.ca% rm *
          openlab.tarena.ca% cd
          openlab.tarena.ca% ls
          dir3   dir4   file1
          openlab.tarena.ca% cp -r dir3 dir4
          openlab.tarena.ca% ls -R
          .:
          dir3   dir4   file1

          ./dir3:
          a.txt

          ./dir4:
          dir3

          ./dir4/dir3:
          a.txt


          mv 命令相當(dāng)于給文件改名稱

          mv 源 目標(biāo)

          目標(biāo)不存在,相當(dāng)于給源改名稱

          目標(biāo)存在,對于文件,覆蓋
                              對于目錄,移動整個(gè)目錄結(jié)構(gòu)到目標(biāo)目錄中。

          openlab.tarena.ca% ls
          dir3   file2
          openlab.tarena.ca% mkdir dir4
          openlab.tarena.ca% ls
          dir3   dir4   file2
          openlab.tarena.ca% mv dir3 dir4
          openlab.tarena.ca% ls -R
          .:
          dir4   file2

          ./dir4:
          dir3

          ./dir4/dir3:
          a.txt

          rm -r[i] directory_name(s)
          rmdir只能刪除空目錄

          題外話

                /tmp 每個(gè)系統(tǒng)根下都有一個(gè)臨時(shí)文件夾,查看該目錄權(quán)限,

                openlab.tarena.ca% cd /tmp
                openlab.tarena.ca% ls -ld
                total 64
                drwxrwxrwt   4 0        sys          753 11月 15 20:06 .
                openlab.tarena.ca% 

               看好了,那不是777,而是后面有個(gè)t,1777,它表示/tmp里,誰都能寫,讀,刪。但是必須是該文件的owner。

               chmod 1777 dir



          ln

          兩種鏈接,

          硬連接和符號連接(軟連接)

          openlab.tarena.ca% ls -l
          total 4
          drwxr-xr-x   3 25791    tarena       512 11月 15 20:03 dir4
          -rw-r--r--   1 25791    tarena        13 11月 15 19:38 file2

          蘭色表示硬鏈接數(shù),對于目錄,那個(gè)數(shù)字表示該目錄下文件和子目錄數(shù)總和。

          openlab.tarena.ca% cp file2 file2.bak
          openlab.tarena.ca% ln file2 file2.ln
          openlab.tarena.ca% ls -il
          total 8
              858670 drwxr-xr-x   3 25791    tarena       512 11月 15 20:03 dir4
              409639 -rw-r--r--   2 25791    tarena        13 11月 15 19:38 file2
              409792 -rw-r--r--   1 25791    tarena        13 11月 15 20:23 file2.bak
              409639 -rw-r--r--   2 25791    tarena        13 11月 15 19:38 file2.ln
          openlab.tarena.ca%

          注意硬鏈接后,被鏈接文件和鏈接文件的inode號,是相同的,他們是同一個(gè)inode,硬鏈接號加1。

          =================================================
          inode i節(jié)點(diǎn) 關(guān)鍵概念

             touch beans這個(gè)命令執(zhí)行時(shí),創(chuàng)建一個(gè)文件時(shí)到系統(tǒng)中申請一個(gè)i節(jié)點(diǎn),如果申請不到,就不會創(chuàng)建成功。

            i節(jié)點(diǎn)保存這除文件名以外的關(guān)于這個(gè)文件的所有屬性。大小,屬主,屬組,權(quán)限,數(shù)據(jù)塊指針。

          那么那個(gè)數(shù)據(jù)塊(data block)指針,指向一個(gè)數(shù)據(jù)塊。

          一個(gè)目錄也有inode,inode中數(shù)據(jù)塊指針指向的數(shù)據(jù)塊保存著該目錄的文件名與inode的對應(yīng)信息。

          ==================================================

          軟鏈接

          ln -s beans beans.sln

          openlab.tarena.ca% ls -il beans*
          total 10
              409793 -rw-r--r--   1 25791    tarena         0 11月 15 20:52 beans
              409794 lrwxrwxrwx   1 25791    tarena         5 11月 15 20:53 beans.sln -> beans
          openlab.tarena.ca%

          注意,beans和beans.sln的inode號不同,說明是兩個(gè)文件。那么beans.sln的大小是5,基本可以理解為保存著beans的名稱,以便能夠找到它。

          這時(shí),more beans.sln實(shí)際上 先找到beans.sln的inode-〉數(shù)據(jù)塊-〉5個(gè)字母beans->more beans

          系統(tǒng)中就有軟鏈接的例子,

          openlab.tarena.ca% cd /
          openlab.tarena.ca% ls -l|grep bin
          lrwxrwxrwx   1 0        root           9  5月 28  2002 bin -> ./usr/bin
          drwxr-xr-x   2 0        sys         1024  5月 16  2004 sbin
          openlab.tarena.ca%

          可以看到 bin就是./usr/bin的軟鏈接。



          man name 查看命令
          man -k function 查看函數(shù)    man -k setuid

          空格
          b back
          f forward
          q
          /string search
          n 查找一個(gè)

          ls d??=ls dat
          ls [a-f]b*

          cd;ls

          標(biāo)準(zhǔn)輸出重定向
          cal 5 2007>a.txt
          cal 5 2007>>a.txt追加

          ls -l /etc|more

          cal 5 2007|tee cal.lst
          tee是個(gè)3向頭,既顯示,又重定向到cal.lst文件中。

          cal 5 2007|tee -a cal.lst
          追加

          cat /dev/null > ~/b.txt
          清空文件,回收datablock

          cat /etc/passwd | awk -F: '{print $1 "\t" $6}' \
          |sort >~/userinfo

          \是指要換行繼續(xù)寫命令
          然后就是awk和sed有很強(qiáng)的文本處理能力。


          tail -30 a.txt
          head -30 a.txt
          tail -f ServiceStartupLog.txt

          more filename(s)操作和man一樣!

          openlab.tarena.ca% who am i
          lujl       pts/2        11月 15 19:27   (219.236.137.165)

          查看登陸用戶

          whoami顯示有效用戶。su后,會看到結(jié)果。

          ==========================================================

           VI

            底行模式 :/? 命令模式 i a o 輸入模式(Esc退出)

          kljh 上右下左

          i插入
          a后
          o當(dāng)前行下插入新行 大寫O當(dāng)前行上插入新行

          vi file1

          i

          some words

          Esc

          :w!

          直接輸入vi

          編輯到最后

          Esc
          :wq! file2

          保存file2,并退出

          不保存直接退
          :q!

          保存后直接退
          :wq!
          :x!
          ZZ


          命令模式下

          G 最后一行
          1G第一行,輸入沒有時(shí)間限制

          當(dāng)前屏幕

          Shift +L 最下
          Shift +H 嘴上
          Shift +M中間

          Ctrl D 滾下半屏
          Ctrl U 滾上半屏
          Ctrl F 滾下整屏
          Ctrl B 滾上整屏

          r 修改一個(gè)字母
          cw 修改某個(gè)單詞
          cc 整行
          C 替換光標(biāo)到行尾

          yw
          yy
          p
          :1,8co6
          :1,6m8

          x
          dw
          dd
          5dd
          :5,10d

          u UNDO

          ~
          大小寫
          J 連接下一行
          :set nu
          :21=21G
          /
          ?
          n 繼續(xù)查找
          :r file2

          :1,$/要替換/新串/g
          g表示全部替換

          :1,19/^/#/
          表示1到19行開頭加入#,注釋掉


          ^表示行首,這也是為什么Shift +6回到當(dāng)前行行首,(Shift+4行尾)

















          posted on 2005-11-15 21:51 北國狼人的BloG 閱讀(440) 評論(0)  編輯  收藏 所屬分類: 達(dá)內(nèi)學(xué)習(xí)總結(jié)
          主站蜘蛛池模板: 竹北市| 柘荣县| 富平县| 改则县| 冷水江市| 丹江口市| 旬阳县| 嘉峪关市| 临安市| 东丰县| 抚松县| 大兴区| 兴义市| 康乐县| 湘乡市| 浑源县| 丰都县| 高碑店市| 延安市| 泰和县| 朝阳区| 三门县| 阿克苏市| 合山市| 东乡| 溧水县| 安龙县| 米脂县| 昆山市| 镇赉县| 武城县| 宜丰县| 鄂州市| 新密市| 宜春市| 绍兴市| 五家渠市| 米林县| 顺昌县| 河津市| 新田县|