Linux下的命令总结笔记(一)
說在前面的話:
本文是以筆記的形式呈現,那么其內容也將會有一個更新的過程。其命令也為親測內容,大家可以放心使用(藍色字體部分除外,藍色部分為未測試或測試后未驗證)。如果有一些什么問題,可以給我留言。
1.查看歷史記錄:
history 查看最近使用過的命令記錄
2.網絡 - (以太網和WIFI無線)
ifconfig eth0 顯示一個以太網卡的配置
ifconfig eth0 顯示一個以太網卡的配置?
ifup eth0 啟用一個 'eth0' 網絡設備
ifdown eth0 禁用一個 'eth0' 網絡設備
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址
ifconfig eth0 promisc 設置 'eth0' 成混雜模式以嗅探數據包 (sniffing)
dhclient eth0 以dhcp模式啟用 'eth0'
route -n show routing table?
route add -net 0/0 gw IP_Gateway configura default gateway?
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 configure static route to reach network '192.168.0.0/16'?
route del 0/0 gw IP_gateway remove static route?
echo "1" > /proc/sys/net/ipv4/ip_forward activate ip routing?
hostname show hostname of system?
host www.example.com lookup hostname to resolve name to ip address and viceversa(1)?
nslookup www.example.com lookup hostname to resolve name to ip address and viceversa(2)?
ip link show show link status of all interfaces?
mii-tool eth0 show link status of 'eth0'?
ethtool eth0 show statistics of network card 'eth0'?
netstat -tup show all active network connections and their PID?
netstat -tupl show all network services listening on the system and their PID?
tcpdump tcp port 80 show all HTTP traffic?
iwlist scan show wireless networks?
iwconfig eth1 show configuration of a wireless network card?
hostname show hostname?
host www.example.com lookup hostname to resolve name to ip address and viceversa?
nslookup www.example.com lookup hostname to resolve name to ip address and viceversa?
whois www.example.com lookup on Whois database?
3.APT 軟件工具 (Debian, Ubuntu 以及類似系統)
sudo apt-get install package_name 安裝/更新一個 deb 包
apt-cdrom install package_name 從光盤安裝/更新一個 deb 包
sudo apt-get update 升級列表中的軟件包
apt-get upgrade 升級所有已安裝的軟件
apt-get remove package_name 從系統刪除一個deb包
apt-get check 確認依賴的軟件倉庫正確
apt-get clean 從下載的軟件包中清理緩存
apt-cache search searched-package 返回包含所要搜索字符串的軟件包名稱
4.關機:
(注:這里如果你是ubuntu的系統,那么請在命令前面加上一個sudo)
shutdown -h now 立即關機
shutdown -r now 立即重啟
shutdown -r +3 三分鐘后重啟
shutdown -h +3 "The System will shutdown after 3 minutes" 提示使用者將在三分鐘后關機
shutdown -r +3 "The System will restart after 3 minutes" 提示使用者將在三分鐘后重啟
shutdown -r 20:23 在20:23時將重啟計算機
shutdown -r 20:23 & 系統返回系統編碼?可以將在20:23時重啟的任務放到后臺去,用戶可以繼續操作終端
kill?系統返回系統編碼 對于設置了上面的重啟或是關機的指令后,使用這個可以中止重啟或關機指令
logout 注銷
reboot 重啟(此命令也同樣需要root權限的)
5.查看網絡系統啟動信息
dmesg|grep eth
6.查看日歷相關
cal 查看當前月份的日歷
cal [month] [year] 查看year年month月的日歷
cal [year] 查看year年一年的日歷
7.查看日期相關
date 查看當前日期和時間
date +%Y-%m-%d 查看當前日期
date +%H-%M 查看當前時間
date mmddHHMMYYYY.ss 設置日期和時間 - 月日時分年.秒
8.查看磁盤空間
查看文件系統磁盤使用情況 df -h
查看當前文件夾下的磁盤使用情況?du --max-depth=1 -h
查看某一指定文件夾的大小
du -sk * | sort -rn 以容量大小為依據依次顯示文件和目錄的大小
ls -lSr |more 以尺寸大小排列文件和目錄
du -sh dirName 查看目錄 'dirName' 已經使用的磁盤空間
dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 以大小為依據顯示已安裝的deb包所使用的空間 (ubuntu, debian類系統)
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n 以大小為依據依次顯示已安裝的rpm包所使用的空間 (fedora, redhat類系統)
9.查看所有的進程和端口使用情況
netstat -apn
10.查看系統相關信息
arch 顯示機器的處理器架構
uname -m 顯示機器的處理器架構
uname -r 顯示正在使用的內核版本?
dmidecode -q 顯示硬件系統部件 - (SMBIOS / DMI)?
cat /proc/cpuinfo
cat /proc/swaps 顯示哪些swap被使用
cat /proc/version 顯示內核的版本
cat /proc/net/dev 顯示網絡適配器及統計
cat /proc/interrupts 顯示中斷
cat /proc/meminfo 校驗內存使用
cat /proc/mounts 顯示已加載的文件系統
lspci -tv 羅列 PCI 設備
lsusb -tv 顯示 USB 設備
11.文件與目錄操作系列
cd /home 進入 '/home' 目錄'
cd .. 返回上一級目錄
cd ../.. 返回上兩級目錄
cd 進入個人的主目錄
cd ~username 進入個人的主目錄
cd - 返回上次所在的目錄
pwd 顯示工作路徑
ls:
顯示目錄內容
最常用參數:
? -a:顯示指定目錄所有文件,包括文件名以 . 開頭的文件
? -l:顯示文件詳細信息(包括文件類型,權限,修改時間,訪問時間,大小,文件名…)
? -h:將文件大小以方便閱讀的形式表示出來,配合 -l 參數使用,常有奇效
ls 查看目錄中的文件
ls -f 查看目錄中的文件
同是查看目錄中的文件,這里我們可以看一下ls和ls -f的區別
通過上的圖片,可以看到ls -f列的更全一些,它還羅列了一些隱藏文件
ls -l 顯示文件和目錄的詳細資料
ll 顯示文件和目錄的詳細資料
再有顯示文件和目錄的詳細資料中,ls -l和ll的區別是一樣的,不過這里與上面的剛好相反
ls -a 顯示隱藏文件
ls *[0-9]* 顯示包含數字的文件名和目錄名
tree 顯示文件和目錄由根目錄開始的樹形結構
mkdir [dirname] 創建一個叫做 'dirname' 的目錄'
mkdir [dir1] [dir2] 同時創建兩個目錄
mkdir -p dir0/dir1/dir2 創建一個目錄樹
文件復制命令:cp
? ? 命令格式:cp [-adfilprsu] 源文件(source) 目標文件(destination)
? ? ? ? ? ? ? cp [option] source1 source2 source3 ... ?directory
? ? 參數說明:
? ? -a:是指archive的意思,也說是指復制所有的目錄
? ? -d:若源文件為連接文件(link file),則復制連接文件屬性而非文件本身
? ? -f:強制(force),若有重復或其它疑問時,不會詢問用戶,而強制復制
? ? -i:若目標文件(destination)已存在,在覆蓋時會先詢問是否真的操作
? ? -l:建立硬連接(hard link)的連接文件,而非復制文件本身
? ? -p:與文件的屬性一起復制,而非使用默認屬性
? ? -r:遞歸復制,用于目錄的復制操作
? ? -s:復制成符號連接文件(symbolic link),即“快捷方式”文件
? ? -u:若目標文件比源文件舊,更新目標文件
? ? 如將/test1目錄下的file1復制到/test3目錄,并將文件名改為file2,可輸入以下命令:
? ? cp /test1/file1 /test3/file2
cp dir/file1 file2 復制一個文件
cp dir/* . 復制一個目錄下的所有文件到當前工作目錄
cp -a /tmp/dir1 . 復制一個目錄到當前工作目錄
cp -a dir1 dir2 復制一個目錄
文件移動命令:mv
? ? 命令格式:mv [-fiv] source destination
? ? 參數說明:
? ? -f:force,強制直接移動而不詢問
? ? -i:若目標文件(destination)已經存在,就會詢問是否覆蓋
? ? -u:若目標文件已經存在,且源文件比較新,才會更新
? ? 如將/test1目錄下的file1復制到/test3目錄,并將文件名改為file2,可輸入以下命令:
? ? mv /test1/file1 /test3/file2
mv dir1 new_dir 重命名/移動 一個目錄
文件刪除命令:rm
? ? 命令格式:rm [fir] 文件或目錄
? ? 參數說明:
? ? -f:強制刪除
? ? -i:交互模式,在刪除前詢問用戶是否操作
? ? -r:遞歸刪除,常用在目錄的刪除
? ? 如刪除/test目錄下的file1文件,可以輸入以下命令:
? ? rm -i /test/file1
rm -f file1或rm -f file1 刪除一個叫做 'file1' 的文件'
rmdir dir1 刪除一個叫做 'dir1' 的目錄'
rm -rf dir1 刪除一個叫做 'dir1' 的目錄并同時刪除其內容
rm -rf dir1 dir2 同時刪除兩個目錄及它們的內容
ln -s file1 lnk1 創建一個指向文件或目錄的軟鏈接
ln file1 lnk1 創建一個指向文件或目錄的物理鏈接
touch -t 1403021719 file1 修改一個文件或目錄的時間戳 - (YYMMDDhhmm)
touch fileName?創建一個名為fileName的文件
iconv -l 列出已知的編碼
這個命令有點強啊,執行之后,我天。原來有這么多的程序編碼啊~
12.查看文件內容
直接查看文件內容
gedit fileName或是vim fileName(vim 需要下載安裝 $sudo apt-get install vim)?打開一個文件
cat file1 從第一個字節開始正向查看文件的內容
tac file1 從最后一行開始反向查看一個文件的內容
翻頁查看
more file1 查看一個長文件的內容
如果你的文件夠長,就會出現下面的情況:
此時的狀態是表示正在等待你的指令。主要有以下指令操作:
空格鍵:向下翻一頁
Enter:向下滾動一行
/string:代表在這個顯示的內容當中,向下查詢“string”這個關鍵字
:f:立刻顯示出文件名及目前顯示的行數
q:立刻離開more
b或[ctrl]-b:往回翻頁,不過個操作只對文件有用,對管道無用
less file1 一頁一頁翻動
空格鍵:向下翻一頁
[PageDown]:向下翻動一頁
[PageUp]:向上翻動一頁
/string:向下查詢"string"的功能
?string:向上查詢"string"的功能
n:重復前一個查詢(與/或?有關)
N:反向重復前一個查詢(與/或?有關)
q:立刻離開less
數據選取
head -2 file1 查看一個文件的前兩行tail -2 file1 查看一個文件的最后兩行
tail -f /var/log/messages 實時查看被添加到一個文件中的內容
13.打開一個軟件
例如打開火狐:firefox -search "linux.cn"
14.文件搜索相關
文件搜索?
find / -name fileName 從 '/' 開始進入根文件系統搜索文件和目錄
find / -user userName 搜索屬于用戶 'user1' 的文件和目錄
find /home/userName -name \*.bin 在目錄 '/ home/userName' 中搜索帶有'.bin' 結尾的文件
find /usr/bin -type f -atime +100 搜索在過去100天內未被使用過的執行文件
find /usr/bin -type f -mtime -10 搜索在10天內被創建或者修改過的文件
find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 結尾的文件并定義其權限
find / -xdev -name \*.rpm 搜索以 '.rpm' 結尾的文件,忽略光驅、捷盤等可移動設備
locate \*.ps 尋找以 '.ps' 結尾的文件 - 先運行 'updatedb' 命令
whereis halt 顯示一個二進制文件、源碼或man的位置
which halt 顯示一個二進制文件或可執行文件的完整路徑
15.掛載一個文件系統
(此點中的命令沒有經過測試)
mount /dev/hda2 /mnt/hda2 掛載一個叫做hda2的盤 - 確定目錄 '/ mnt/hda2' 已經存在
umount /dev/hda2 卸載一個叫做hda2的盤 - 先從掛載點 '/ mnt/hda2' 退出
fuser -km /mnt/hda2 當設備繁忙時強制卸載
umount -n /mnt/hda2 運行卸載操作而不寫入 /etc/mtab 文件- 當文件為只讀或當磁盤寫滿時非常有用
mount /dev/fd0 /mnt/floppy 掛載一個軟盤
mount /dev/cdrom /mnt/cdrom 掛載一個cdrom或dvdrom
mount /dev/hdc /mnt/cdrecorder 掛載一個cdrw或dvdrom
mount /dev/hdb /mnt/cdrecorder 掛載一個cdrw或dvdrom
mount -o loop file.iso /mnt/cdrom 掛載一個文件或ISO鏡像文件
mount -t vfat /dev/hda5 /mnt/hda5 掛載一個Windows FAT32文件系統
mount /dev/sda1 /mnt/usbdisk 掛載一個usb 捷盤或閃存設備
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 掛載一個windows網絡共享
16.用戶和群組
groupadd group_name 創建一個新用戶組
groups 查看當前登錄用戶的組內成員(需要root權限)
whoami 查看當前登錄的用戶名
useradd userName 創建一個新用戶
cat /etc/passwd |cut -f 1 -d : 查看當前所有用戶
groupdel group_name 刪除一個用戶組?
groupmod -n new_group_name old_group_name 重命名一個用戶組
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 創建一個屬于 "admin" 用戶組的用戶
userdel -r user1 刪除一個用戶 ( '-r' 排除主目錄)
passwd user1 修改一個用戶的口令 (只允許root執行)
passwd 修改當前用戶口令
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用戶屬性
chage -E 2005-12-31 user1 設置用戶口令的失效期限
pwck 檢查 '/etc/passwd' 的文件格式和語法修正以及存在的用戶
grpck 檢查 '/etc/passwd' 的文件格式和語法修正以及存在的群組
newgrp group_name 登陸進一個新的群組以改變新創建文件的預設群組
17.文件的特殊屬性
使用 "+" 設置權限,使用 "-" 用于取消
chattr +a file1 只允許以追加方式讀寫文件
chattr +c file1 允許這個文件能被內核自動壓縮/解壓
chattr +d file1 在進行文件系統備份時,dump程序將忽略這個文件
chattr +i file1 設置成不可變的文件,不能被刪除、修改、重命名或者鏈接
chattr +s file1 允許一個文件被安全地刪除
chattr +S file1 一旦應用程序對這個文件執行了寫操作,使系統立刻把修改的結果寫到磁盤
chattr +u file1 若文件被刪除,系統會允許你在以后恢復這個被刪除的文件
lsattr 顯示特殊的屬性
18.字符設置和文件格式轉換
dos2unix filedos.txt fileunix.txt 將一個文本文件的格式從MSDOS轉換成UNIXunix2dos fileunix.txt filedos.txt 將一個文本文件的格式從UNIX轉換成MSDOS
recode ..HTML < page.txt > page.html 將一個文本文件轉換成html
recode -l | more 顯示所有允許的轉換格式
19.文本處理
cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUTcat file1 | command( sed, grep, awk, grep, etc...) > result.txt 合并一個文件的詳細說明文本,并將簡介寫入一個新文件中
cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合并一個文件的詳細說明文本,并將簡介寫入一個已有的文件中
grep Aug /var/log/messages 在文件 '/var/log/messages'中查找關鍵詞"Aug"
grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"開始的詞匯
grep [0-9] /var/log/messages 選擇 '/var/log/messages' 文件中所有包含數字的行
grep Aug -R /var/log/* 在目錄 '/var/log' 及隨后的目錄中搜索字符串"Aug"
sed 's/stringa1/stringa2/g' example.txt 將example.txt文件中的 "string1" 替換成 "string2"
sed '/^$/d' example.txt 從example.txt文件中刪除所有空白行
sed '/ *#/d; /^$/d' example.txt 從example.txt文件中刪除所有注釋和空白行
echo 'esempio' | tr '[:lower:]' '[:upper:]' 合并上下單元格內容
sed -e '1d' example.txt 從文件example.txt 中排除第一行
sed -n '/stringa1/p' 查看只包含詞匯 "string1"的行
sed -e 's/ *$//' example.txt 刪除每一行最后的空白字符
sed -e 's/stringa1//g' example.txt 從文檔中只刪除詞匯 "string1" 并保留剩余全部
sed -n '1,5p;5q' example.txt 查看從第一行到第5行內容
sed -n '5p;5q' example.txt 查看第5行
sed -e 's/00*/0/g' example.txt 用單個零替換多個零
cat -n file1 標示文件的行數
cat example.txt | awk 'NR%2==1' 刪除example.txt文件中的所有偶數行
echo a b c | awk '{print $1}' 查看一行第一欄
echo a b c | awk '{print $1,$3}' 查看一行的第一和第三欄
paste file1 file2 合并兩個文件或兩欄的內容
paste -d '+' file1 file2 合并兩個文件或兩欄的內容,中間用"+"區分
sort file1 file2 排序兩個文件的內容
sort file1 file2 | uniq 取出兩個文件的并集(重復的行只保留一份)
sort file1 file2 | uniq -u 刪除交集,留下其他的行文本處理
sort file1 file2 | uniq -d 取出兩個文件的交集(只留下同時存在于兩個文件中的文件)
cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT
cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 合并一個文件的詳細說明文本,并將簡介寫入一個新文件中
cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合并一個文件的詳細說明文本,并將簡介寫入一個已有的文件中
grep Aug /var/log/messages 在文件 '/var/log/messages'中查找關鍵詞"Aug"
grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"開始的詞匯
grep [0-9] /var/log/messages 選擇 '/var/log/messages' 文件中所有包含數字的行
grep Aug -R /var/log/* 在目錄 '/var/log' 及隨后的目錄中搜索字符串"Aug"
sed 's/stringa1/stringa2/g' example.txt 將example.txt文件中的 "string1" 替換成 "string2"
sed '/^$/d' example.txt 從example.txt文件中刪除所有空白行
sed '/ *#/d; /^$/d' example.txt 從example.txt文件中刪除所有注釋和空白行
echo 'esempio' | tr '[:lower:]' '[:upper:]' 合并上下單元格內容
sed -e '1d' result.txt 從文件example.txt 中排除第一行
sed -n '/stringa1/p' 查看只包含詞匯 "string1"的行
sed -e 's/ *$//' example.txt 刪除每一行最后的空白字符
sed -e 's/stringa1//g' example.txt 從文檔中只刪除詞匯 "string1" 并保留剩余全部
sed -n '1,5p;5q' example.txt 查看從第一行到第5行內容
sed -n '5p;5q' example.txt 查看第5行
sed -e 's/00*/0/g' example.txt 用單個零替換多個零
cat -n file1 標示文件的行數
cat example.txt | awk 'NR%2==1' 刪除example.txt文件中的所有偶數行
echo a b c | awk '{print $1}' 查看一行第一欄
echo a b c | awk '{print $1,$3}' 查看一行的第一和第三欄
paste file1 file2 合并兩個文件或兩欄的內容
paste -d '+' file1 file2 合并兩個文件或兩欄的內容,中間用"+"區分
sort file1 file2 排序兩個文件的內容
sort file1 file2 | uniq 取出兩個文件的并集(重復的行只保留一份)
sort file1 file2 | uniq -u 刪除交集,留下其他的行
sort file1 file2 | uniq -d 取出兩個文件的交集(只留下同時存在于兩個文件中的文件)
comm -1 file1 file2 比較兩個文件的內容只刪除 'file1' 所包含的內容
comm -2 file1 file2 比較兩個文件的內容只刪除 'file2' 所包含的內容
comm -3 file1 file2 比較兩個文件的內容只刪除兩個文件共有的部分
sort file1 file2 | uniq -d 取出兩個文件的交集(只留下同時存在于兩個文件中的文件)
comm -1 file1 file2 比較兩個文件的內容只刪除 'file1' 所包含的內容
comm -2 file1 file2 比較兩個文件的內容只刪除 'file2' 所包含的內容
comm -3 file1 file2 比較兩個文件的內容只刪除兩個文件共有的部分
20.其他命令集
clear 清屏
su 進入管理者模式(ubuntu下不適用)
uname -r 查看內核版本
總結
以上是生活随笔為你收集整理的Linux下的命令总结笔记(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux下的一些问题收集及解决方法(一
- 下一篇: Linux中的管道与重定向