我的 linux 常用命令

百度、google都能搜得到,但是很雜。這裏記錄下我記不清的,但是又比較常用的一些linux命令用法。

mount

掛載設備命令,一般掛載存儲設備就用這個了(硬盤、U盤等)。

mount [-t vfstype] [-o options] device dir

其中:

  • -t vfstype 指定文件系統的類型,通常不必指定。mount 會自動選擇正確的類型。常用類型有:
    • 光盤或光盤鏡像:iso9660
    • DOS fat16文件系統:msdos
    • Windows 9x fat32文件系統:vfat (一般U盤的是這種文件系統)
    • Windows NT ntfs文件系統:ntfs
    • Mount Windows文件網絡共享:smbfs
    • UNIX(LINUX) 文件網絡共享:nfs

  • -o options 主要用來描述設備或檔案的掛接方式。常用的參數有:
    • loop:用來把一個文件當成硬盤分區掛接上系統
    • ro:採用只讀方式掛接設備
    • rw:採用讀寫方式掛接設備
    • iocharset:指定訪問文件系統所用字符集

  • device 要掛接(mount)的設備。
  • dir設備在系統上的掛接點(mount point)。

具體的可以去看 man mount 。在掛載 samba 的時候如果說啥 mount 格式錯誤,一般是沒有裝 smbfs , apt-get install 裝一個就好。

查看電腦上的文件系統:fdisk -l 或 more /proc/partitions (一般要有root權限)。一般的用法是:

// /mnt/windows 必須存在
// 用完了卸載用 sudo umount /mnt/windows
sudo mount -t ntfs /dev/sda1 /mnt/windows 

// 掛載 samba 網絡設備(以 192.168.0.8 爲例)
sudo mount -t smbfs -o username=****,password="****" 192.168.0.8:/xx /mnt/samba


要想在一開機就讓linux自己掛載某個硬盤分區可以這樣:編輯/etc/fstab,加入以下一行:

/dev/sda1 /mnt/windows ntfs defaults 0 0

卸載命令是:umount

find

查找文件命令。常用的形式: find path -type f -name filename -depth 。
  • path: 路徑,一般當前路徑可以用 "." 表示。
  • -type:查找的文件類型,f 表示普通文件。其他的可以看 man find。
  • -name:查找文件的名字,可以用正則表達式(不過我基本上只會用*而已)。
  • -depth:表示遞歸查找(查找子目錄),好像可以設置深度的,具體的看 man 吧。

grep

查找文件內容命令。常用的形式: grep -Irn findstrings filenames。
  • I:表示忽略小寫。
  • r: 表示查找子目錄。
  • n:表示顯示行號。
  • v:這個表示方向查找,就是顯示不包含查找內容的文件。例如 grep -Irn xx . | grep -v svn 就可以不去查找可惡的svn目錄下的的東西。
  • findstrings:要查找的字符串,同樣支持正則表達式。
  • filenames:要查找的文件。

sed

流編輯器,功能十分強大,但是我目前就會用它的一點點功能而已,簡單的說它能將輸入文件一行一行的做處理。這樣它和 grep , find 配合起來做替換的話,就十分方便了。常用形式:sed 's/old/new/g' -i files 。
  • 's':這個是替換命令,和vim的替換命令差不多。
  • -i:將輸出寫入原文件,也就是修改原文件的內容;如果不加的話就會輸出到標準輸出(一般是終端)。
  • files:輸入的文件,可以是多個。

這裏與 grep 配合一個就可以在一個工程項目裏做全局的替換了:(在工程的根目錄弄)

# grep -r old * | sed 's/old/new/g' -i

apt-get install

從網上下載並安裝軟件包。用法很簡單,一般就是 sudo apt-get install xx ,但是一般會記不住包的名字。可以使用 aptitude search 關鍵字 (apt-cache search xx)來搜索。軟件源可以修改 /etc/apt/source.list (不過一般用圖形界面比較方便點),然後使用 sudo apt-get update 來更新。還有 apt-get install xx 的下載包的緩存地址在 /var/cache/apt/archives 裏,這裏其實可以備份起來,下次重裝系統的時候就不用再重新下載了。

aptitude dist-upgrade xx 可以單獨更新某個包。

chmod 和 chown

chmod 是修改文件權限的,例如添加所屬組的讀寫權限、添加其它用戶的讀寫權限等。chown 是修改文件的擁有者,擁有者對該文件擁有所有權限。

可以 chmod 777 file 的形式來修改某個文件的權限,但是一般數字不太好記,可以使用 chmod -R g+rw file 的形式來改(其中 -R 代表遞歸,g+rw  代表給 file 所屬組的人添加讀寫權限,其他 a+rw 代表所有人,o+rw 代表其他組的人)。

mkswap, swapon

用來創建和掛載swap分區(linux下的虛擬內存),一般在板子上開發時,可以拿U盤做swap分區(事先要格式化成swap分區格式的)。一般用法是: mkswap /dev/sda 創建swap分區(假設/dev/sda是你的U盤),然後 swapon /dev/sda 掛載上就可以了。然後可以用 free 查看結果。

刪除不需要的內核

  • dpkg --get-selections | grep linux :可以查看自己安裝了多少內核。用 uname -a 可以看到自己目前用的是哪個內核。
  • 然後用 apt-get remove xxxx 就可以把自己不要的內核刪掉(刪掉後會自動把 grub 中對應的啓動項目也刪掉)。
  • 不過某些時候 grub 會檢測到一些沒有辦法啓動的啓動項目,這個時候可以修改 grub 的菜單文件把無用的項目去掉:
    • grub1(ubuntu 9.10 之前):/boot/grub/menu.lst
    • grub2(ubuntu 10.04 之後): /boot/grub/grub.cfg

patch

linux打補丁命令。由 vim diff 等工具生成的 .patch 文件可由該命令對源代碼打補丁。一般形式爲: patch -p0 < xx.patch 。p0 代表是源代碼目標的第幾層(文件夾深度),0就代表是根目錄。一般是把 .patch 文件複製到源代碼包的根目錄,然後用上面的形式進行打補丁。更多的用 man patch 自己看吧。

ftp

用 ftp 上傳東西的時候,如果發的不是文本文件,在上傳之前要使用 binary 命令,轉化爲二進制傳輸模式,否則上傳後的文件可能無法正常使用。

解壓 rpm 包

rpm 包可以使用 rpm -i 直接安裝,也可以使用 rpm2cpio xxx.rpm | cpio -div 進行解壓。

修改用戶權限

  • useradd
添加一個新用戶,一般新建立一個用戶就會相應的建立這個用戶同名的用戶組。如果要新建立用戶組的話,可以用 groupadd 。

  • usermod
修改指定用戶的信息。可以修改這個用戶的用戶目錄(home目錄)、shell 環境(bash 還是 sh)、所屬於的用戶組等。其中修改說屬的用戶組就可以賦予和刪除用戶相應的用戶組的權限。使用
usermod -a -G group1 user1
就可以將 user1 添加到 group1 組中。具體的用法可以看 man。其中
// 可以看到有哪些組, 組裏有哪些用戶
cat /ect/groups

// 可以看到用戶的一些信息
cat /ect/passwd
  • chgrp
chgrp -R file 可以改變這個文件的所屬於組。

修改用戶密碼

passwd user 可以修改指定用戶的登陸密碼,當然如果修改別的用戶要有 root 權限。


發佈了37 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章