linux常用命令如下:
1、查看內核版本:uname -a。
2、控制台-》圖形界面:init 5或者startx。
3、圖形界面-》控制台: init3或者直接注銷。
4、如何查看ip地址:ifconfig。
5、配置ip:ifconfig eth0 ip地址。
6、重啟:reboot 或者 shutdown -r now。
7、普通用戶切換到系統用戶:su。
8、注銷用戶指令:logout。
9、從子機退出:ctrl+alt。
10、全屏:ctrl+alt+enter 。
基本思想:
Linux的基本思想有兩點:第一,一切都是文件;第二,每個文件都有確定的用途。其中第一條詳細來講就是系統中的所有都歸結為一個文件,包括命令、硬體和軟體設備、操作系統、進程等等對於操作系統內核而言,都被視為擁有各自特性或類型的文件。
完全免費:
Linux是一款免費的操作系統,用戶可以通過網路或其他途徑免費獲得,並可以任意修改其源代碼。這是其他的操作系統所做不到的。正是由於這一點,來自全世界的無數程序員參與了Linux的修改、編寫工作,程序員可以根據自己的興趣和靈感對其進行改變,吸收了無數程序員的精華。
以上內容參考:網路--Linux
② bash 全部命令多少個
可以粗略估計一下
這樣就簡單統計出有多少
使用命令如下:
ls -l /usr/sbin /usr/bin /bin | wc -l
③ linux常用命令解釋
linux常用命令有如下:
1、cp命令,作用復制,參數如下:
-a:將文件的特性一起復制。
-p:連同文件的屬性一起復制,而非使用默認方式,與-a相似,常用於備份。
-i:若目標文件已經存在時,在覆蓋時會先詢問操作的進行。
-r:遞歸持續復制,用於目錄的復制行為。
-u:目標文件與源文件有差異時才會復制。
2、rm命令作用為刪除,參數:
-f:就是force的意思,忽略不存在的文件,不會出現警告消息。
-i:互動模式,在刪除前會詢問用戶是否操作。
-r:遞歸刪除,最常用於目錄刪除,它是一個非常危險的參數。
3、mv命令作用為移動文件:
-f:force強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋。
-i:若目標文件已經存在,就會詢問是否覆蓋。
-u:若目標文件已經存在,且比目標文件新,才會更新。
4、pwd命令,作用為查看」當前工作目錄「的完整路徑。
pwd-P#顯示出實際路徑,而非使用連接(link)路徑;pwd顯示的是連接路徑。
5、rmdir命令刪除目錄:
rmdir [選項]... 目錄...
-p:遞歸刪除目錄dirname,當子目錄刪除後其父目錄為空時,也一同被刪除。如果整個路徑被刪除或者由於某種原因保留部分路徑,則系統在標准輸出上顯示相應的信息。
-v:verbose顯示指令執行過程。
④ linux常用的命令有哪些
Linux所能提供的功能通常是通過繁多的各類命令來實現的,每個命令又會有很多細分功能的選項,而每個命令後接的作用對象參數也有所不同,因此有必要詳細闡述一下Linux命令的常見分類方式。
常見的命令分類方式包括:1、按照命令所在系統中的位置,2、按照命令所能提供的功能。
按照命令所在系統中的位置,Linux命令可以分為內部命令和外部命令。內部命令是在磁碟目錄中找不到的命令是shell解釋器的一部分,當用戶連接登錄系統時就會運行系統與用戶的交互程序shell,我們常用的命令如:cd、pwd、jobs、kill等幾十個內部命令就會調入到內存中供登錄用戶使用;而外部命令是放置於磁碟中的命令,如果一個命令能在磁碟中找到其存放路徑,該命令就是外部命令。
按照命令所能提供的功能,Linux常用命令可以分為目錄操作命令、文件操作命令、文件內容查看命令、登錄用戶查看命令、歸檔壓縮命令、系統管理命令等等。例如常見的目錄操作命令有cd、pwd、ls、mkdir、rmdir等;常見的文件操作命令有touch、cp、mv、rm等;文件內容查看命令有cat、tac、more、less、head、tail等,也包括查看文件屬性信息的file和stat等命令;常見的登錄用戶查看命令有w和who;常見的歸檔壓縮命令有zip、unzip、tar、gzip、gunzip、bzip2、bunzip2等;系統管理命令常見有關機命令shutdown、系統重啟命令reboot等。
⑤ linux,unix常用基本命令
1.常用指令
ls 顯示文件或目錄
-l 列出文件詳細信息l(list)
-a 列出當前目錄下所有文件及目錄,包括隱藏的a(all)
mkdir 創建目錄
-p 創建目錄,若無父目錄,則創建p(parent)
cd 切換目錄
touch 創建空文件
echo 創建帶有內容的文件。
cat 查看文件內容
cp 拷貝
mv 移動或重命名
rm 刪除文件
-r 遞歸刪除,可刪除子目錄及文件
-f 強制刪除
find 在文件系統中搜索某文件
wc 統計文本中行數、字數、字元數
grep 在文本文件中查找某個字元串
rmdir 刪除空目錄
tree 樹形結構顯示目錄,需要安裝tree包
pwd 顯示當前目錄
ln 創建鏈接文件
more、less 分頁顯示文本文件內容
head、tail 顯示文件頭、尾內容
ctrl+alt+F1 命令行全屏模式
2.系統管理命令
stat 顯示指定文件的詳細信息,比ls更詳細
who 顯示在線登陸用戶
whoami 顯示當前操作用戶
hostname 顯示主機名
uname 顯示系統信息
top 動態顯示當前耗費資源最多進程信息
ps 顯示瞬間進程狀態 ps -aux
查看目錄大小 -h /home帶有單位顯示目錄信息
df 查看磁碟大小 df -h 帶有單位顯示磁碟信息
ifconfig 查看網路情況
ping 測試網路連通
netstat 顯示網路狀態信息
man 命令不會用了,找男人 如:man ls
clear 清屏
alias 對命令重命名 如:alias showmeit="ps -aux" ,另外解除使用unaliax showmeit
kill 殺死進程,可以先用ps 或 top命令查看進程的id,然後再用kill命令殺死進程。
3.打包壓縮相關命令
tar: 打包壓縮
-c 歸檔文件
-x 壓縮文件
-z gzip壓縮文件
-j bzip2壓縮文件
-v 顯示壓縮或解壓縮過程 v(view)
-f 使用檔名
例:
tar -cvf /home/abc.tar /home/abc 只打包,不壓縮
tar -zcvf /home/abc.tar.gz /home/abc 打包,並用gzip壓縮
tar -jcvf /home/abc.tar.bz2 /home/abc 打包,並用bzip2壓縮
當然,如果想解壓縮,就直接替換上面的命令 tar -cvf / tar -zcvf / tar -jcvf 中的「c」 換成「x」 就可以了。
3.關機/重啟機器
shutdown
-r 關機重啟
-h 關機不重啟
now 立刻關機
halt 關機
reboot 重啟
4.Linux管道
將一個命令的標准輸出作為另一個命令的標准輸入。也就是把幾個命令組合起來使用,後一個命令除以前一個命令的結果。
例:grep -r "close" /home/* | more 在home目錄下所有文件中查找,包括close的文件,並分頁輸出。
5.Linux軟體包管理
dpkg(Debian Package)管理工具,軟體包名以.deb後綴。這種方法適合系統不能聯網的情況下。
比如安裝tree命令的安裝包,先將tree.deb傳到Linux系統中。再使用如下命令安裝。
sudo dpkg -i tree_1.5.3-1_i386.deb 安裝軟體
sudo dpkg -r tree 卸載軟體
註:將tree.deb傳到Linux系統中,有多種方式。VMwareTool,使用掛載方式;使用winSCP工具等;
APT(Advanced Packaging Tool)高級軟體工具。這種方法適合系統能夠連接互聯網的情況。
依然以tree為例
sudo apt-get install tree 安裝tree
sudo apt-get remove tree 卸載tree
sudo apt-get update 更新軟體
sudo apt-get upgrade
6.將.rpm文件轉為.deb文件
.rpm為RedHat使用的軟體格式。在Ubuntu下不能直接使用,所以需要轉換一下。
sudo alien abc.rpm
7.vim使用
vim三種模式:命令模式、插入模式、編輯模式。使用ESC或i或:來切換模式。
命令模式下:
:q 退出
:q! 強制退出
:wq 保存並退出
:set number 顯示行號
:set nonumber 隱藏行號
/apache 在文檔中查找apache 按n跳到下一個,shift+n上一個
yyp 復制游標所在行,並粘貼
h(左移一個字元←)、j(下一行↓)、k(上一行↑)、l(右移一個字元→)
8.用戶及用戶組管理
/etc/passwd 存儲用戶賬號
/etc/group 存儲組賬號
/etc/shadow 存儲用戶賬號的密碼
/etc/gshadow 存儲用戶組賬號的密碼
useradd 用戶名
userdel 用戶名
adser 用戶名
groupadd 組名
groupdel 組名
passwd root 給root設置密碼
/etc/profile 系統環境變數
bash_profile 用戶環境變數
.bashrc 用戶環境變數
su user 切換用戶,載入配置文件.bashrc
su - user 切換用戶,載入配置文件/etc/profile ,載入bash_profile
更改文件的用戶及用戶組
sudo chown [-R] owner[:group] {File|Directory}
例如:還以jdk-7u21-linux-i586.tar.gz為例。屬於用戶hadoop,組hadoop
要想切換此文件所屬的用戶及組。可以使用命令。
sudo chown root:rootjdk-7u21-linux-i586.tar.gz
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
UNIX操作系統(尤尼斯),是一個強大的多用戶、多任務操作系統,支持多種處理器架構,按照操作系統的分類,屬於分時操作系統,最早由KenThompson、Dennis Ritchie和Douglas McIlroy於1969年在AT&T的貝爾實驗室開發。目前它的商標權由國際開放標准組織所擁有,只有符合單一UNIX規范的UNIX系統才能使用UNIX這個名稱,否則只能稱為類UNIX(UNIX-like)。
⑥ linux基礎命令
Linux常用命令大全
系統信息
arch 顯示機器的處理器架構(1)
uname -m 顯示機器的處理器架構(2)
uname -r 顯示正在使用的內核版本
dmidecode -q 顯示硬體系統部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 羅列一個磁碟的架構特性
hdparm -tT /dev/sda 在磁碟上執行測試性讀取操作
cat /proc/cpuinfo 顯示CPU info的信息
cat /proc/interrupts 顯示中斷
cat /proc/meminfo 校驗內存使用
cat /proc/swaps 顯示哪些swap被使用
cat /proc/version 顯示內核的版本
cat /proc/net/dev 顯示網路適配器及統計
cat /proc/mounts 顯示已載入的文件系統
lspci -tv 羅列 PCI 設備
lsusb -tv 顯示 USB 設備
date 顯示系統日期
cal 2007 顯示2007年的日歷表
date 041217002007.00 設置日期和時間 - 月日時分年.秒
clock -w 將時間修改保存到 BIOS
關機 (系統的關機、重啟以及登出 )
shutdown -h now 關閉系統(1)
init 0 關閉系統(2)
telinit 0 關閉系統(3)
shutdown -h hours:minutes & 按預定時間關閉系統
shutdown -c 取消按預定時間關閉系統
shutdown -r now 重啟(1)
reboot 重啟(2)
logout 注銷
文件和目錄
cd /home 進入 '/ home' 目錄'
cd .. 返回上一級目錄
cd ../.. 返回上兩級目錄
cd 進入個人的主目錄
cd ~user1 進入個人的主目錄
cd - 返回上次所在的目錄
pwd 顯示工作路徑
ls 查看目錄中的文件
ls -F 查看目錄中的文件
ls -l 顯示文件和目錄的詳細資料
ls -a 顯示隱藏文件
ls *[0-9]* 顯示包含數字的文件名和目錄名
tree 顯示文件和目錄由根目錄開始的樹形結構(1)
lstree 顯示文件和目錄由根目錄開始的樹形結構(2)
mkdir dir1 創建一個叫做 'dir1' 的目錄'
mkdir dir1 dir2 同時創建兩個目錄
mkdir -p /tmp/dir1/dir2 創建一個目錄樹
rm -f file1 刪除一個叫做 'file1' 的文件'
rmdir dir1 刪除一個叫做 'dir1' 的目錄'
rm -rf dir1 刪除一個叫做 'dir1' 的目錄並同時刪除其內容
rm -rf dir1 dir2 同時刪除兩個目錄及它們的內容
mv dir1 new_dir 重命名/移動 一個目錄
cp file1 file2 復制一個文件
cp dir/* . 復制一個目錄下的所有文件到當前工作目錄
cp -a /tmp/dir1 . 復制一個目錄到當前工作目錄
cp -a dir1 dir2 復制一個目錄
ln -s file1 lnk1 創建一個指向文件或目錄的軟鏈接
ln file1 lnk1 創建一個指向文件或目錄的物理鏈接
touch -t 0712250000 file1 修改一個文件或目錄的時間戳 - (YYMMDDhhmm)
file file1 outputs the mime type of the file as text
iconv -l 列出已知的編碼
iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding.
find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" \; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick)
文件搜索
find / -name file1 從 '/' 開始進入根文件系統搜索文件和目錄
find / -user user1 搜索屬於用戶 'user1' 的文件和目錄
find /home/user1 -name \*.bin 在目錄 '/ home/user1' 中搜索帶有'.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 顯示一個二進制文件或可執行文件的完整路徑
掛載一個文件系統
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網路共享
磁碟空間
df -h 顯示已經掛載的分區列表
ls -lSr |more 以尺寸大小排列文件和目錄
-sh dir1 估算目錄 'dir1' 已經使用的磁碟空間'
-sk * | sort -rn 以容量大小為依據依次顯示文件和目錄的大小
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n 以大小為依據依次顯示已安裝的rpm包所使用的空間 (fedora, redhat類系統)
dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 以大小為依據顯示已安裝的deb包所使用的空間 (ubuntu, debian類系統)
返回頂部索引 ^
用戶和群組
groupadd group_name 創建一個新用戶組
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" 用戶組的用戶
useradd user1 創建一個新用戶
userdel -r user1 刪除一個用戶 ( '-r' 排除主目錄)
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用戶屬性
passwd 修改口令
passwd user1 修改一個用戶的口令 (只允許root執行)
chage -E 2005-12-31 user1 設置用戶口令的失效期限
pwck 檢查 '/etc/passwd' 的文件格式和語法修正以及存在的用戶
grpck 檢查 '/etc/passwd' 的文件格式和語法修正以及存在的群組
newgrp group_name 登陸進一個新的群組以改變新創建文件的預設群組
返回頂部索引 ^
文件的許可權 - 使用 "+" 設置許可權,使用 "-" 用於取消
ls -lh 顯示許可權
ls /tmp | pr -T5 -W$COLUMNS 將終端劃分成5欄顯示
chmod ugo+rwx directory1 設置目錄的所有人(u)、群組(g)以及其他人(o)以讀(r )、寫(w)和執行(x)的許可權
chmod go-rwx directory1 刪除群組(g)與其他人(o)對目錄的讀寫執行許可權
chown user1 file1 改變一個文件的所有人屬性
chown -R user1 directory1 改變一個目錄的所有人屬性並同時改變改目錄下所有文件的屬性
chgrp group1 file1 改變文件的群組
chown user1:group1 file1 改變一個文件的所有人和群組屬性
find / -perm -u+s 羅列一個系統中所有使用了SUID控制的文件
chmod u+s /bin/file1 設置一個二進制文件的 SUID 位 - 運行該文件的用戶也被賦予和所有者同樣的許可權
chmod u-s /bin/file1 禁用一個二進制文件的 SUID位
chmod g+s /home/public 設置一個目錄的SGID 位 - 類似SUID ,不過這是針對目錄的
chmod g-s /home/public 禁用一個目錄的 SGID 位
chmod o+t /home/public 設置一個文件的 STIKY 位 - 只允許合法所有人刪除文件
chmod o-t /home/public 禁用一個目錄的 STIKY 位
返回頂部索引 ^
文件的特殊屬性 - 使用 "+" 設置許可權,使用 "-" 用於取消
chattr +a file1 只允許以追加方式讀寫文件
chattr +c file1 允許這個文件能被內核自動壓縮/解壓
chattr +d file1 在進行文件系統備份時,mp程序將忽略這個文件
chattr +i file1 設置成不可變的文件,不能被刪除、修改、重命名或者鏈接
chattr +s file1 允許一個文件被安全地刪除
chattr +S file1 一旦應用程序對這個文件執行了寫操作,使系統立刻把修改的結果寫到磁碟
chattr +u file1 若文件被刪除,系統會允許你在以後恢復這個被刪除的文件
lsattr 顯示特殊的屬性
返回頂部索引 ^
打包和壓縮文件
bunzip2 file1.bz2 解壓一個叫做 'file1.bz2'的文件
bzip2 file1 壓縮一個叫做 'file1' 的文件
gunzip file1.gz 解壓一個叫做 'file1.gz'的文件
gzip file1 壓縮一個叫做 'file1'的文件
gzip -9 file1 最大程度壓縮
rar a file1.rar test_file 創建一個叫做 'file1.rar' 的包
rar a file1.rar file1 file2 dir1 同時壓縮 'file1', 'file2' 以及目錄 'dir1'
rar x file1.rar 解壓rar包
unrar x file1.rar 解壓rar包
tar -cvf archive.tar file1 創建一個非壓縮的 tarball
tar -cvf archive.tar file1 file2 dir1 創建一個包含了 'file1', 'file2' 以及 'dir1'的檔案文件
tar -tf archive.tar 顯示一個包中的內容
tar -xvf archive.tar 釋放一個包
tar -xvf archive.tar -C /tmp 將壓縮包釋放到 /tmp目錄下
tar -cvfj archive.tar.bz2 dir1 創建一個bzip2格式的壓縮包
tar -xvfj archive.tar.bz2 解壓一個bzip2格式的壓縮包
tar -cvfz archive.tar.gz dir1 創建一個gzip格式的壓縮包
tar -xvfz archive.tar.gz 解壓一個gzip格式的壓縮包
zip file1.zip file1 創建一個zip格式的壓縮包
zip -r file1.zip file1 file2 dir1 將幾個文件和目錄同時壓縮成一個zip格式的壓縮包
unzip file1.zip 解壓一個zip格式壓縮包
返回頂部索引 ^
RPM 包 - (Fedora, Redhat及類似系統)
rpm -ivh package.rpm 安裝一個rpm包
rpm -ivh --nodeeps package.rpm 安裝一個rpm包而忽略依賴關系警告
rpm -U package.rpm 更新一個rpm包但不改變其配置文件
rpm -F package.rpm 更新一個確定已經安裝的rpm包
rpm -e package_name.rpm 刪除一個rpm包
rpm -qa 顯示系統中所有已經安裝的rpm包
rpm -qa | grep httpd 顯示所有名稱中包含 "httpd" 字樣的rpm包
rpm -qi package_name 獲取一個已安裝包的特殊信息
rpm -qg "System Environment/Daemons" 顯示一個組件的rpm包
rpm -ql package_name 顯示一個已經安裝的rpm包提供的文件列表
rpm -qc package_name 顯示一個已經安裝的rpm包提供的配置文件列表
rpm -q package_name --whatrequires 顯示與一個rpm包存在依賴關系的列表
rpm -q package_name --whatprovides 顯示一個rpm包所佔的體積
rpm -q package_name --scripts 顯示在安裝/刪除期間所執行的腳本l
rpm -q package_name --changelog 顯示一個rpm包的修改歷史
rpm -qf /etc/httpd/conf/httpd.conf 確認所給的文件由哪個rpm包所提供
rpm -qp package.rpm -l 顯示由一個尚未安裝的rpm包提供的文件列表
rpm --import /media/cdrom/RPM-GPG-KEY 導入公鑰數字證書
rpm --checksig package.rpm 確認一個rpm包的完整性
rpm -qa gpg-pubkey 確認已安裝的所有rpm包的完整性
rpm -V package_name 檢查文件尺寸、 許可、類型、所有者、群組、MD5檢查以及最後修改時間
rpm -Va 檢查系統中所有已安裝的rpm包- 小心使用
rpm -Vp package.rpm 確認一個rpm包還未安裝
rpm2cpio package.rpm | cpio --extract --make-directories *bin* 從一個rpm包運行可執行文件
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm 從一個rpm源碼安裝一個構建好的包
rpmbuild --rebuild package_name.src.rpm 從一個rpm源碼構建一個 rpm 包
返回頂部索引 ^
YUM 軟體包升級器 - (Fedora, RedHat及類似系統)
yum install package_name 下載並安裝一個rpm包
yum localinstall package_name.rpm 將安裝一個rpm包,使用你自己的軟體倉庫為你解決所有依賴關系
yum update package_name.rpm 更新當前系統中所有安裝的rpm包
yum update package_name 更新一個rpm包
yum remove package_name 刪除一個rpm包
yum list 列出當前系統中安裝的所有包
yum search package_name 在rpm倉庫中搜尋軟體包
yum clean packages 清理rpm緩存刪除下載的包
yum clean headers 刪除所有頭文件
yum clean all 刪除所有緩存的包和頭文件
返回頂部索引 ^
DEB 包 (Debian, Ubuntu 以及類似系統)
dpkg -i package.deb 安裝/更新一個 deb 包
dpkg -r package_name 從系統刪除一個 deb 包
dpkg -l 顯示系統中所有已經安裝的 deb 包
dpkg -l | grep httpd 顯示所有名稱中包含 "httpd" 字樣的deb包
dpkg -s package_name 獲得已經安裝在系統中一個特殊包的信息
dpkg -L package_name 顯示系統中已經安裝的一個deb包所提供的文件列表
dpkg --contents package.deb 顯示尚未安裝的一個包所提供的文件列表
dpkg -S /bin/ping 確認所給的文件由哪個deb包提供
返回頂部索引 ^
APT 軟體工具 (Debian, Ubuntu 以及類似系統)
apt-get install package_name 安裝/更新一個 deb 包
apt-cdrom install package_name 從光碟安裝/更新一個 deb 包
apt-get update 升級列表中的軟體包
apt-get upgrade 升級所有已安裝的軟體
apt-get remove package_name 從系統刪除一個deb包
apt-get check 確認依賴的軟體倉庫正確
apt-get clean 從下載的軟體包中清理緩存
apt-cache search searched-package 返回包含所要搜索字元串的軟體包名稱
返回頂部索引 ^
查看文件內容
cat file1 從第一個位元組開始正向查看文件的內容
tac file1 從最後一行開始反向查看一個文件的內容
more file1 查看一個長文件的內容
less file1 類似於 'more' 命令,但是它允許在文件中和正向操作一樣的反向操作
head -2 file1 查看一個文件的前兩行
tail -2 file1 查看一個文件的最後兩行
tail -f /var/log/messages 實時查看被添加到一個文件中的內容
返回頂部索引 ^
文本處理
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 比較兩個文件的內容只刪除兩個文件共有的部分
返回頂部索引 ^
字元設置和文件格式轉換
dos2unix filedos.txt fileunix.txt 將一個文本文件的格式從MSDOS轉換成UNIX
unix2dos fileunix.txt filedos.txt 將一個文本文件的格式從UNIX轉換成MSDOS
recode ..HTML < page.txt > page.html 將一個文本文件轉換成html
recode -l | more 顯示所有允許的轉換格式
返回頂部索引 ^
文件系統分析
badblocks -v /dev/hda1 檢查磁碟hda1上的壞磁塊
fsck /dev/hda1 修復/檢查hda1磁碟上linux文件系統的完整性
fsck.ext2 /dev/hda1 修復/檢查hda1磁碟上ext2文件系統的完整性
e2fsck /dev/hda1 修復/檢查hda1磁碟上ext2文件系統的完整性
e2fsck -j /dev/hda1 修復/檢查hda1磁碟上ext3文件系統的完整性
fsck.ext3 /dev/hda1 修復/檢查hda1磁碟上ext3文件系統的完整性
fsck.vfat /dev/hda1 修復/檢查hda1磁碟上fat文件系統的完整性
fsck.msdos /dev/hda1 修復/檢查hda1磁碟上dos文件系統的完整性
dosfsck /dev/hda1 修復/檢查hda1磁碟上dos文件系統的完整性
返回頂部索引 ^
初始化一個文件系統
mkfs /dev/hda1 在hda1分區創建一個文件系統
mke2fs /dev/hda1 在hda1分區創建一個linux ext2的文件系統
mke2fs -j /dev/hda1 在hda1分區創建一個linux ext3(日誌型)的文件系統
mkfs -t vfat 32 -F /dev/hda1 創建一個 FAT32 文件系統
fdformat -n /dev/fd0 格式化一個軟盤
mkswap /dev/hda3 創建一個swap文件系統
返回頂部索引 ^
SWAP文件系統
mkswap /dev/hda3 創建一個swap文件系統
swapon /dev/hda3 啟用一個新的swap文件系統
swapon /dev/hda2 /dev/hdb3 啟用兩個swap分區
返回頂部索引 ^
備份
mp -0aj -f /tmp/home0.bak /home 製作一個 '/home' 目錄的完整備份
mp -1aj -f /tmp/home0.bak /home 製作一個 '/home' 目錄的互動式備份
restore -if /tmp/home0.bak 還原一個互動式備份
rsync -rogpav --delete /home /tmp 同步兩邊的目錄
rsync -rogpav -e ssh --delete /home ip_address:/tmp 通過SSH通道rsync
rsync -az -e ssh --delete ip_addr:/home/public /home/local 通過ssh和壓縮將一個遠程目錄同步到本地目錄
rsync -az -e ssh --delete /home/local ip_addr:/home/public 通過ssh和壓縮將本地目錄同步到遠程目錄
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 通過ssh在遠程主機上執行一次備份本地磁碟的操作
dd if=/dev/sda of=/tmp/file1 備份磁碟內容到一個文件
tar -Puf backup.tar /home/user 執行一次對 '/home/user' 目錄的互動式備份操作
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 通過ssh在遠程目錄中復制一個目錄內容
( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 通過ssh在遠程目錄中復制一個本地目錄
tar cf - . | (cd /tmp/backup ; tar xf - ) 本地將一個目錄復制到另一個地方,保留原有許可權及鏈接
find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 從一個目錄查找並復制所有以 '.txt' 結尾的文件到另一個目錄
find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' 結尾的文件並做成一個bzip包
dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一個將 MBR (Master Boot Record)內容復制到軟盤的動作
dd if=/dev/fd0 of=/dev/hda bs=512 count=1 從已經保存到軟盤的備份中恢復MBR內容
返回頂部索引 ^
光碟
cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force 清空一個可復寫的光碟內容
mkisofs /dev/cdrom > cd.iso 在磁碟上創建一個光碟的iso鏡像文件
mkisofs /dev/cdrom | gzip > cd_iso.gz 在磁碟上創建一個壓縮了的光碟iso鏡像文件
mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd 創建一個目錄的iso鏡像文件
cdrecord -v dev=/dev/cdrom cd.iso 刻錄一個ISO鏡像文件
gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - 刻錄一個壓縮了的ISO鏡像文件
mount -o loop cd.iso /mnt/iso 掛載一個ISO鏡像文件
cd-paranoia -B 從一個CD光碟轉錄音軌到 wav 文件中
cd-paranoia -- "-3" 從一個CD光碟轉錄音軌到 wav 文件中(參數-3)
cdrecord --scanbus 掃描匯流排以識別scsi通道
dd if=/dev/hdc | md5sum 校驗一個設備的md5sum編碼,例如一張 CD
返回頂部索引 ^
網路 - (乙太網和WIFI無線)
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
tcpmp 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
GO TOP INDEX ^
Microsoft Windows networks (SAMBA)
nbtscan ip_addr netbios name resolution
nmblookup -A ip_addr netbios name resolution
smbclient -L ip_addr/hostname show remote shares of a windows host
smbget -Rr smb://ip_addr/share like wget can download files from a host windows via smb
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share mount a windows network share
⑦ 求linux基本命令
常用系統服務
============
acpi-support 高級電源管理支持
acpid acpi守護程序.這兩個用於電源管理,非常重要
alsa 聲音子系統
alsa-utils
anacron cron的子系統,將系統關閉期間的計劃任務,在下一次系統運行時執行。
apmd acpi的擴展
atd 類似於cron的任務調度系統。建議關閉
binfmt-support 核心支持其他二進制的文件格式。建議開啟
bluez-utiles 藍牙設備支持
bootlogd 啟動日誌。開啟它
cron 任務調度系統,建議開啟
cupsys 列印機子系統。
dbus 消息匯流排系統(message bus system)。非常重要
dns-clean 使用撥號連接時,清除dns信息。
evms 企業卷管理系統(Enterprise Volumn Management system)
fetchmail 郵件用戶代理,用於收取郵件
gdm gnome登錄和桌面管理器。
gdomap
gpm 終端中的滑鼠支持。
halt 別動它。
hdparm 調整硬碟的腳本,配置文件為「/etc/hdparm.conf」。
hibernate 系統休眠
hotkey-setup 筆記本功能鍵支持。支持類型包括: HP, Acer, ASUS, Sony, Dell,和IBM。
hotplug and hotplug-net 即插即用支持,比較復雜,建議不要動它。
hplip HP列印機和圖形子系統
ifrename 網路介面重命名腳本。如果您有十塊網卡,您應該開啟它
inetd在文件「/etc/inetd.conf」中,注釋掉所有你不需要的服務。如果該文件不包含任何服務,那關閉它是很安全的。
klogd 重要。
linux-restricted-moles-common受限模塊支持。「/lib/linux-restricted-moles/」文件夾中的模塊為受限模塊。例如某些驅動程序,如果您沒有使用受限模塊,就不需要開啟它。
lvm 邏輯卷管理系統支持。
makedev 創建設備文件,非常重要。
mdamd 磁碟陣列
mole-init-tools 從/etc/moles載入擴展模塊,建議開啟。
networking 網路支持。按「/etc/network/interfaces」文件預設激活網路,非常重要。
ntpdate 時間同步服務,建議關閉。
pcmcia pcmcia設備支持。
powernowd 移動CPU節能支持
ppp and ppp-dns 撥號連接
readahead 預載入庫文件。
reboot 別動它。
resolvconf 自動配置DNS
rmnologin 清除nologin
rsync rsync守護程序
sendsigs 在重啟和關機期間發送信號
single 激活單用戶模式
ssh ssh守護程序。建議開啟
stop-bootlogd 在2,3,4,5運行級別中停止bootlogd服務
sudo 檢查sudo狀態。重要
sysklogd 系統日誌
udev & udev-mab 用戶空間dev文件系統(userspace devfilesystem)。重要
umountfs 卸載文件系統
urandom 隨機數生成器
usplash 開機畫面支持
vbesave 顯卡BIOS配置工具。保存顯卡的狀態
xorg-common 設置X服務ICE socket。
adjtimex 調整核心時鍾的工具
dirmngr 證書列表管理工具,和gnupg一起工作。
hwtools irqs優化工具
libpam-devperm 系統崩潰之後,用於修理設備文件許可的守護程序。
lm-sensors 板載感測器支持
mdadm-raid 磁碟陳列管理器
screen-cleanup 清除開機屏幕的腳本
xinetd 管理其他守護進程的一個inetd超級守護程序
系統管理
========
一些細節
--------
Linux是大小寫敏感的系統,所有的命令、路徑、參數、變數……都區分大小寫
您可以使用TAB鍵補全您的命令,無論任何時候,多按幾次TAB總會有所幫助
Shell的功能鍵能夠協助您更高效的編輯命令,請熟悉其鍵綁定,盡量使用它
命令由命令名、分隔符、參數、操作對象構成
命令名標識命令的功能,例如cp()、mv(move)、rm(remove)……
有些命令包含一些子命令,您可以認為它的命令名由兩個單詞構成,例如「apt」軟體包管理系統:
apt-get install 安裝一個軟體
apt-get remove 刪除一個軟體
分隔符為空格,多個連續的空格視為一個空格,下面兩個命令相同:
cp a b
cp a b
有一些特殊符號也屬於分隔符,例如管道(「|」)、重定向(「>」、「>>」、「<」)、後台運行(「&」)、序列執行(「&&」、「;」)。使用這些符號時,您不需要再使用空格作為分隔符,例如:
ls -al|less
我們寫為以下形式,只是為了您更容易的閱讀它:
ls -al | less
參數可以精細調節命令的行為,以「-」引導,通常為參數名的首字母。許多軟體都可以使用「-h」參數來閱讀使用說明,例如:
apt-get -h
您也可以使用參數的全名,一般以「--」引導,例如:
apt-get --help
多數命令中,使用「-」引導多個字元,將會被視為多個參數,例如:
apt-get -help
系統會解讀為以下命令
apt-get -h -e -l -p
少數命令的參數,不需要以「-」引導,或者使用「-」引導參數全名,例如:
ps aux
/etc/init.d/gdm start
mplayer -loop xxx
當您需要對多個對象進行操作時,您可以使用空格分隔符將它們隔開:
touch 1 2 3 4 5 6
使用空格分隔的多個對象,視為一個整體,作為命令的一個操作對象:
mv 1 2 3 4 5 6 /home/
這個命令把「1 2 3 4 5 6」作為一個操作對象,移動到另一個操作對象,「/home/」目錄
遞歸表示在子層次中重復相同操作。例如遞歸復制某目錄,不但復制當前目錄及其下的所有文件;而且對當前目錄的子目錄,也進行遞歸復制的操作。
格式約定
--------
使用「[]」表示可選項,實際輸入為方括弧中的內容,例如
ls [-al]
ls是必須的,參數不需要以方括弧包圍起來。
使用「<>」表示必需項,實際輸入為尖括弧中的內容
使用「|」表示「或」,以「|」分隔的項目不能同時使用,例如
tar [-z|j c|x vf] <歸檔文件> [源文件]
參數通常緊跟命令名,除非必要,在命令格式中,我們通常省略它們
系統信息
--------
uptime
聯機信息-時間,顯示如下
11:27pm up 9 days, 7:12, 3 user, load average: 0.07, 0.12,0.14
當前系統時間 系統運行時間 當前在線用戶數 系統負荷 1分鍾前 5分鍾前 15分鍾前
w
聯機信息-已登錄用戶,顯示如下
01:04:10 up 1:34, 2 users, load average: 0.25, 0.16, 0.11
uptime 信息
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user tty1 192.168.0.1 23:30 1:33 0.14s 0.12s -bash
用戶名 登錄方式 來源地址 登錄時間 發呆時間 資源佔用 當前任務
Tips:w [用戶名稱] : 顯示某一用戶相關信息
who
聯機信息,常用參數
-r 運行級別
whoami
顯示當前用戶名
last
最近用戶登錄信息
-<數字> 使用數字作為參數,控制顯示條目。例如
last -10 顯示10條紀錄
uname
系統信息
-s 內核名稱(默認參數)
-a 全部
-p CPU信息
-n 主機名
-r 內核發行信息(版本號)
-v 內核版本信息
date
顯示、設定系統時間
-u 顯示格林尼洛時間(UTC)
MMDDhhmm[[CC]YY][.ss] 設定時間,需要管理員許可權。例如: date 12292359
MM 月份 DD 天數 hh 小時 mm 分鍾 CC 年份前兩位 YY 年份後兩位 ss 秒鍾
秒鍾、年份為可選,例如: date 122923592006.59
+[%X]設定顯示格式,以下為date默認輸出格式:
date +%Y年\ %m月\ %d日\ %A\ %H:%M:%S\ %Z
格式控制
%n 換行
%t 製表符
小時
%H(00~23) %I(01~12) %k(0~23) %l(1~12) %p(AM|PM)
分、秒
%M分鍾(00~59)
%S秒(00..61)
%T(hh:mm:ss) %r(hh:mm:ss [AM|PM])
%s 從1970年1月1日00:00:00 UTC到目前為止的秒數
%X(%H:%M:%S)
%Z時區
星期
%a(Sun~Sat) %A(Sunday~Saturday) %w : 一周中的第幾天 (0..6)
年份
%Y(0000~9999) %y(00~99)
月份
%m(01~12) %b %h(Jan~Dec) %B(January~December)
日期
%d(01~31) %j(001~366)
%x(本地格式mm/dd/yy) %D(mm/dd/yy) %c
一年中的第幾周
%U(00~53)以Sunday為一周的第一天 %W(00~53)以Monday為一周的第一天
cal
顯示日歷
文件管理
--------
鏈接
為當前文件建立在其它路徑中的訪問方法。例如將系統中其它位置的可執行文件,鏈接到「/usr/local/bin」目錄下,使用命令調用。
ls [路徑]
顯示當前目錄文件列表
--color 不同屬性以不同顏色顯示(默認參數)
-a 全部顯示
-i 顯示inode值
-l 詳細信息
-F 顯示文件類型後綴 目錄/ 鏈接@ 可執行文件* 埠文件= 管道文件| >
-A 顯示隱藏文件
-R 遞歸顯示子目錄文件列表
-S 按文件大小排序
-t 按修改時間排序
-u 按訪問時間排序
-d 只顯示目錄,不遞歸顯示目錄下的文件
cd [目錄路徑] | [特殊路徑]
切換目錄
目錄路徑可以使用絕對路徑或者相對路徑
特殊路徑:
~ $HOME目錄(默認值)
- 上一次目錄
.. 上一級目錄
. 當前目錄
Tips:您可以通過修改「/etc/environment」文件,來定義$CDPATH變數,設定「cd」命令的搜索路徑。
pwd
顯示當前路徑
file <文件名>
顯示文件類型
-i 顯示mime類型
[文件名]
計算文件或目錄空間佔用
-h 人性化顯示。自動以G、M、K為單位顯示佔用空間大小
-l 重復計算硬鏈接文件大小
-L 計算符號鏈接文件大小
-a 顯示當前目錄子目錄中的文件
-c 顯示文件數
less <文件名>
瀏覽文件,使用VI和Emacs兩種風格的鍵綁定。以下為VI風格鍵綁定
Ctrl+f(orward) 向下翻一頁 Ctrl+d(own) 向下翻半頁
Ctrl+b(ackward) 向上翻一頁 Ctrl+u(p) 向上翻半頁
/ 查找 q(uit) 退出
touch <目標文件>
創建一個空文件
cp <源文件><目標目錄|文件>
將源文件復制為目錄文件,或者將源文件復制到目標目錄。多個源文件使用空格分隔
cp <源目錄><目標目錄>
將源目錄復制到目標目錄中,如果復制多個源目錄,需要使用「-R」參數
-a 相當於-dpr參數
-d 保留鏈接
-f 強制復制,覆蓋目標文件
-i 覆蓋時詢問用戶
-p 保留修改時間和訪問許可權
-r -R 遞歸復制(目錄=>目錄)
-l 創建鏈接
-v 顯示過程
rm <目標目錄|文件>
-r -R 遞歸刪除
-f 強制刪除(無需確認,直接刪除。慎用!)
-i 互動式刪除(詢問用戶)
rmdir <目標目錄>
刪除目錄時,建議您使用「rm -r」命令
mv <源文件><目標目錄|文件>
相當於cp後刪除源文件,也可以作為「重命名」使用。
mv <源目錄><目標目錄>
-r -R 遞歸
ln <源文件><鏈接>
-s 符號鏈接
-f 強制鏈接,覆蓋目標文件
-i 覆蓋前詢問用戶
文件操作
--------
nano
一個簡單輕便的文本編輯器,使用Emacs風格的鍵綁定。
split <源文件> [目標文件名前綴]
將源文件按一定規則分割成若干個目標文件。默認文件名前綴為「x」
-<行數> 按行數分割文件
-l <行數> 同上
-b <位元組>按大小分割文件。可以使用b、k、m作單位,不指定單位的情況下,默認單位為b
-C <位元組> 按大小分割文件,並盡量保持每行的完整
示例:
split -C 100k file.split x
cat <文件名>
輸出文件內容。用空格分隔多個文件名,可以將多個文件內容連接到一起輸出。使用重定向合並為一個文件
-n 在輸出中添加行號
-b 在輸出中添加行號,空行不編號
-s 將兩行或以上的空行,合並為一個空行
示例:
cat xaa xab xac > file.split
sort [-o <輸出文件>] [-t<分隔字元>][+<起始欄位> -<結束欄位>] [文件]
對文本內容排序
-m 合並文件
-c 檢查文件是否已按規則排序
-b 忽略行首空格字元
-u 忽略內容重復行
-f 忽略大小寫
-l 忽略非列印字元
-M 作為月份比較
-d 按字典順序排序,按照字母、數字、空格、製表符排序
-r 逆序輸出
more
查看文件內容,我們建議您使用「less」
diff <文件名>
比較文件
cksum [文件名]
計算文件的CRC值。不指定文件名則從標准輸入設備讀入數據,例如:
echo xxx | cksum
md5sum [文件名]
計算文件的md5值。同上
許可權管理
--------
一個文件主要包含下列屬性,「ls -l」
- rwx rwx rwx user group date filename
111 101 101
其中,第一組為歸屬用戶的許可權,第二組為歸屬群組的許可權,第三組為其它用戶群組的許可權。user為文件的歸屬用戶,group為文件的歸屬群組,date為日期信息,filename為文件名。
可以使用3位的二進制數字來描述一組許可權,某一許可權對應的數字為1,則表示具有該種許可權,為0,則不具有該種許可權。
對於文件夾,必須擁有它的可執行許可權,才能夠使用「cd」命令進入該文件夾;擁有可讀許可權,才能夠使用「ls」命令查看該文件夾的文件列表。
root用戶擁有最高許可權。
使用二進制數字來描述一組許可權,雖然非常直觀,但是3組許可權需要用9位數來表示,使用不夠方便。因此我們將三組許可權使用3位8進制數字來表示。它們的對應關系為:
r 100 4
w 010 2
x 001 1
將這三位8進制數字相加的結果,就可以表示該組許可權的具體內容,例如:
7=4+2+1=rwx
5=4+1=rx
755=4+2+1 4+1 4+1=rwx r-x r-x
我們還可以使用「a、u、g、o」表示歸屬關系,使用「=、+、-」表示許可權變化,使用「r、w、x」表示許可權內容,
a 所有用戶 u 歸屬用戶 g 歸屬群組 o 其它用戶
= 具有許可權 + 增加許可權 - 去除許可權
r 可讀許可權 w 可寫許可權 x 可執行許可權
例如:
a+x 給所有用戶增加可執行許可權
go-wx 將歸屬群組和其它用戶的可寫、可執行許可權去掉
u=rwx 歸屬用戶具有可讀、可寫、可執行許可權
chmod <許可權表達式><文件|目錄>
改變文件的許可權。許可權的表達式可以使用三位8進制數字表示,或者使用<augo>+-=<rxw-s>來表示
-R 遞歸
-v 顯示過程
-c 類似「-v」,僅顯示更改部分
--reference=<參考文件或目錄>以指定文件為參考改變許可權
示例:
chmod -R a+x path
chmod -Rv 755 path
chown <歸屬用戶>[:歸屬群組]<文件|目錄>
改變文件的歸屬用戶。可以使用用戶名或者UID
-R 遞歸
-v 顯示過程
-c 類似「-v」,僅顯示更改部分
--reference=<參考文件或目錄>以指定文件為參考改變許可權
示例:
chown user:admin path
chown -R user.admin path
chown user path
chgrp <歸屬群組><文件|目錄>
改變文件的歸屬群組。可以使用群組名或者GID
參數同上
SUID、SGID、Sticky bit
某些情況下,需要以可執行文件歸屬用戶的身份執行該文件,可以為該文件設置SUID。同樣,設置SGID能夠以該文件歸屬群組的身份執行它。
例如:用戶自行設定密碼。
出於安全方面的考慮,「/etc/shadow」只能由root用戶直接修改。
-rw------- root root /etc/shadow
這個時候,可以為程序「/usr/bin/passwd」設置SUID,當普通用戶執行「passwd」命令時,便能夠以該程序歸屬用戶root的身份修改「/etc/shadow」文件。而「passwd」程序自身帶有身份驗證機制,不能通過驗證時拒絕執行,從而保證了安全。
ls -l /usr/bin/passwd
-r-s--x--x root root /usr/bin/passwd
我們發現,歸屬用戶的可執行許可權位使用「s」,表示SUID。同樣,歸屬群組的可執行許可權位使用「s」,表示SGID。
任何用戶或群組都擁有「其它用戶」的許可權,所以不需要以「其它用戶」身份執行文件,其它用戶的可執行許可權位便不會出現「s」。該許可權位可能出現的屬性為「t」,也就是粘著位Stickybit。
ls -ld /tmp
drwxrwxrwt root root /tmp
粘著位表示任何用戶都可能具有寫許可權,但只有該歸屬用戶或root用戶才能夠刪除
SUID、SGID、Sticky bit也可以像許可權一樣,使用一個八位數表示,如下:
4 SUID
2 SGID
1 Sticky bit
通過在「chmod」命令中使用四個八位數的表達式,如「4755」,用第一位表示SUID、SGID、或Stickybit,便能夠為文件設置這些特殊許可權。
示例:
chmod -R 4755 path
lsattr [路徑]
查看文件的特殊屬性
-a 全部顯示
-d 只顯示目錄
-R 遞歸
特殊屬性包括:
a:僅供附加用途
b:不更新最後存取時間
c:壓縮後存放
d:排除在傾倒操作之外
i:不得任意更動文件或目錄
s:保密性刪除文件或目錄
S:即時更新文件或目錄
u:預防以外刪除
chattr<+|-|=><abcdisSu><路徑>
-R 遞歸
-V 顯示過程
⑧ Linux常用命令有哪些
想要使用Linux系統作為日常使用,最少有20個以上的常用命令必須掌握,建議你去馬哥Linux官網看一下
⑨ $bash是什麼命令
Linux系統默認開啟的終端,一般都是Bash Shell,可以通過如下命令確定當前運行的默認Shell。
echo $SHELL
說明:個人系統是Redhat Enterprise server5,默認使用的shell即為bash shell。
如果系統默認使用的不是bash shell,可以通過bash命令運行bash shell。
說明:圖中隨便輸入的命令,目的是讓shell執行出錯,通過出錯信息來確定bash命令是否成功執行。在bash中如果找不到命令開頭一定是"bash: "之類的信息。 通過上圖即可知道要運行bash shell,只需要執行bash命令即可。