時間:2015-12-20 來源:互聯網 瀏覽量:
有趣的是,因為托瓦茨放置內核的那個FTP網站的目錄為Linux,從此,大家便稱這個內核為Linux了
對目錄有執行權限(x)才能切換到目錄內。
向上翻頁: shift+PgUp 向下翻頁:shift+PgDn
若你的執行文件放置在本目錄並且本目錄並非正規的執行文件目錄(/bin、/usr/bin 等為正規)
,此時要執行命令就得要嚴格指定該執行文件。(./)
特殊目錄:
.代表次層目錄
.. 代表上一層目錄
- 代表前一個工作目錄
~ 代表“目前用戶身份”所在的主文件夾
~account 代表 account 這個用戶的主文件夾(account是個賬號名稱)
cp -s 符號連接 (symbolic link)
cp -l 硬鏈接 (hard link)
查看文件的命令:
純文本文件:
cat
tac
nl
more
less
head
tail
非純文本文件:
od
十進製,八進製和十六進製互化應以二進製作為橋梁
用戶創建文件的默認權限為:- rw- rw- rw-
用戶創建目錄的默認權限為:d rwx rwx rwx
又因為
root: umask: 0022 (--- -w- -w-) (不同用戶有不同的umask)
一般用戶: umask: 0002 (--- --- -w-)
所以
新建一個文件的權限為: root: (rw- rw- rw-) - (--- -w- -w-) = (rw- r-- r--)
一般用戶: (rw- rw- rw-) - (--- --- -w-) = (rw- rw- r--)
新建一個目錄的權限為:root: (rwx rwx rwx) - (--- -w- -w-) = (rwx r-x r-x)
一般用戶: (rwx rwx rwx) - (--- --- -w-) = (rwx rwx r-x)
文件隱藏屬性: chattr lsattr
文件特殊權限:SUID、 SGID、 SBIT
SUID不能用在目錄上、SBIT不能用在文件上
尋找命令文件:which (在用戶自己的PATH變量中尋找)
type (在bash內置命令中尋找)
尋找普通文件:whereis (在文件數據庫中查找)
locate (在文件數據庫中查找 updatedb根據/etc/updatedb.conf的設置
去查找係統硬盤內的文件名,並更新/var/lib/mlocate內的數據庫文件)
find (在硬盤中查找,本身可以查找子目錄)
“;”在bash中是有特殊意義的,所以利用反斜杠來轉義
一個block中可以有 單個block大小/128byte 個inode
df 調出目前掛載的設備
dumpe2fs 查詢每個區段與superblock的信息
查看linux支持的文件係統:ls -l /lib/modules/$ (uname -r) (distruction版本信息)/kernel/fs
查看係統目前已加載到內存中支持的文件係統:cat /proc/filesystems
df:列出文件係統的整體磁盤使用量;
du:評估文件係統的磁盤使用量(常用於評估目錄所占容量)
創建實際連接:ln 源文件
創建符號連接: ln -s 目標文件
當我們新建一個新的目錄時,新的目錄的連接數為2,而上層目錄的連接數則會增加1
磁盤分區:
fdisk 硬盤文件名稱 隻有root可以操作
partprobe 強製讓內核重新找一次分區表
磁盤格式化:
mkfs (按兩下[Tab]可以看到Linux支持的文件係統格式化軟件)
沒有特殊需求就使用:mkfs -t ext3 ...
Ext2/Ext3的公用程序:mke2fs
磁盤檢驗:
fsck 隻有root在單用戶模式下操作,且被檢查的分區務必要處於卸載狀態
(按兩下[Tab]可以看到Linux支持的文件係統檢驗軟件)
badblocks 可用mke2fs -c 設備文件名替代
磁盤掛載:
mount 設備文件名 掛載點
重新掛載根目錄:mount -o remount,rw,auto/
掛載不特定目錄:mount -bind /home /mnt/home
使用 Label name 進行掛載:mount -L "xxxx" /mnt/hdc6
卸載:unmount 設備文件名或掛載點
/etc/filesystems: 係統指定的測試掛載文件係統類型;
/proc/filesystems: Linux係統已經加載的文件係統類型;
/lib/modules/$ (unmae-r) /kernel/fs/: Linux支持的文件係統的驅動程序
硬盤參數修改:
修改設備文件:
mknod 設備文件名 [bcp] [Major] [Minor]
主設備代碼(Major)
此設備代碼(Minor)
修改卷標:
e2label 設備文件名 新的Label名稱
將Ext2的文件係統轉換為Ext3的文件係統:
tune2fs [-jlL] 設備文件名
設置硬盤參數:(隻對IDE接口的硬盤有效)
hdparm [-icdmXTt] 硬盤文件名稱
開機掛載:
/etc/fstab -> /etc/mtab, /proc/mounts
如果修改/etc/fatab錯誤,可用如下命令解決:
mount -n -o remount,rw /
不刻錄就讀取/修改鏡像文件的內容:
mount -o loop 鏡像文件名 掛載點
新建大文件以製作loop設備文件:
dd if=/dev/zero of=/home/loopdev bs=1M count=512
ll -h /home/loopdev
mkfs -t ext3 /home/loopdev
mount -o loop /home/loopdev /media/cdroom
df
內存交換空間的構建:
使用物理分區構建swap:
fdisk /dev/sda
partprobe
mkswap /dev/sda6
free
swapon /dev/sda6
free
swapon -s
使用文件構建swap:
dd if=/dev/zero of=/tmp/swap bs=1M count=128
ll -h /tmp/swap
mkswap /tmp/swap
free
swapon /tmp/swap
free
swapon -s
swapoff /tmp/swap
swapoff /dev/sda6
free
查看文件內容占用空間:
du -sb /etc
查看文件實際占用空間:
du -sm /etc
如果有大於2TB以上的磁盤,就用parted命令進行分區
在Linux環境中,壓縮文件的擴展名大多是
*.Z compress程序壓縮的文件
*.gz gzip程序壓縮的文件
*.bz2 bzip2程序壓縮的文件
*.tar tar程序打包的數據,並沒有壓縮過
*.tar.gz tar程序打包的文件,其中經過gzip的壓縮
*.tar.bz2 tar程序打包的文件,其中經過bzip2的壓縮
壓縮命令:
壓縮:ncompress [-rcv] 文件名或目錄
解壓縮:uncompress *.Z
壓縮:gzip [-cdtv#] 文件名(如果是目錄,則指的是將目錄內的所有文件“分別”進行壓縮)
解壓縮:gzip -d 文件
zcat可以讀取純文本被compress與gzip壓縮後的壓縮文件。
使用gzip壓縮的文件在Windows係統中,可以被WinRAR解壓縮
壓縮:bzip2 [-cdtv#] 文件名(如果是目錄,則指的是將目錄內的所有文件“分別”進行壓縮)
解壓縮:bzip2 -d 文件 / bunzip2 文件,可以解壓的壓縮文件後綴為:.bz .bz2 tbz tbz2
bzcat可以讀取被bzip2壓縮後的壓縮文件
打包命令:
由於tar的使用太廣泛,目前Windows的WinRAR也支持.tar.gz的解壓縮
tar:
打包:
tar -zpcv -f /root/etc.tar.gz /etc
tar -jpcv -f /root/etc.tar.bz2 /etc (推薦,壓縮比更高)
查看:
tar -jtv -f /root/etc.tar.bz2
解打包:
tar -jxv -f /root/etc.tar.bz2 -C /tmp
解開打包文件內的其中一個文件:
tar -jtv -f /root/etc.tar.bz2 | grep 'shadow'
(grep為選取關鍵字)
tar -jxv -f 打包文件.tar.bz2 待解開文件名
tar -jxv -f /root/etc.tar.bz2 etc/shadow
打包某目錄,但不含該目錄下的某些文件的做法:
tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc* --exclude=/root/system.tar.bz2 /etc /root
僅備份比某個時刻還要新的文件:
find /etc -newer /etc/passwd
ll /etc/passwd
tar -jcv -f /root/etc.newer.than.passwd/tar.bz2 --newer-mtime="2008/08/05" /etc/*
tarfile:僅是打包
tarball:打包又壓縮
備份到磁帶機:
tar -cv -f /dev/st0 /home /root /etc
將 /etc 整個目錄一邊打包一邊在 /tmp 中解開
cd /tmp
tar -cvf - /etc | tar -xcf -
用dump備份完整的文件係統:
df -h
先測試一下如果需要備份此文件係統需要多少容量:
dump -S /dev/sda1
將完整備份的文件名記錄成為/root/boot.dump,同時更新記錄文件:
dump -0u -f /root/boot.dump /boot
ll /root/boot.dump /etc/dumpdates
cat /etc/dumpdates
新建 level1 的備份:
看一下有沒有任何文件係統被 dump 過的數據
dump -W
dd if=/dev/zero of=/boot/testing.img bs=1M count=10
使用 level1 備份:
dump -1u -f /root/boot.dump.1 /boot
ll /root/boot*
dump -W
用dump備份非文件係統,即單一目錄的方法:
dump -0j -f /root/etc.dump.bz2 /etc
用restore查看dump後的備份數據內容:
restore -t -f /root/boot.dump
restore -t -f /root/etc.dump
比較差異並且還原整個文件係統:
cd /boot
mv config-2.6.18-128.el5 config-2.6.18-128.el5-back
restore -C -f /root/boot.dump
mv config-2.6.18-128.el5-back config-2.6.18-128.el5
cd /root
fdisk /dev/hdc
n
p
w
partprobe
mkfs -t ext3 /dev/hdc8
mount /dev/hdc8 /mnt
cd /mnt
restore -r -f /root/boot.dump
僅還原部分文件的restore互動模式
cd /mnt
restore -i -f /root/etc.dump
help
ls
cd etc
pwd
1s passwd shadow group
add passwd shadow group
delete group
ls passwd shadow group (又要被解壓縮的,文件名之前會出現*)
extract
quit
ll -d etc
ll etc
光盤寫入工具:
新建鏡像文件: mkisofs
不使用-graft-point:
mkisofs -r -v -o /tmp/system.img /root /home /etc
ll -h /tmp/system.img
mount -o loop /tmp/system.img /mnt
df -h
ls /mnt
umount /mnt
使用-graft-point:
mkisofs -r -v 'linux_file' -o /tmp/system.img -m /home/lost+found -graft-point /root=/root /home=/home /etc=/etc
ll -h /tmp/system.img
mount -o loop /tmp/system.img mnt
ll /mnt
umount /mnt
刻錄光盤:cdrecord
檢測刻錄機所在位置:
cdrecord -scanbus dev=ATA
進行CD的刻錄操作:
先抹除光盤的原始內容:(非可重複讀寫則可略過此步驟)
cdrecord -v DEV=ATA:1,1,0 blank=fast
開始刻錄:
cdrecord -v dev=ATA:1,1,0 fs=8m -dumy -data /tmp/system.img
刻錄完畢後,測試掛載:
mount -t iso9660 /dev/cdrom /mnt
df -h /mnt
ll /mnt
umount /mnt
進行DVD-RW的刻錄操作:
先抹除原本內容:
cdrecord -v dev=ATA:1,1,0 blank=fast
開始寫入DVD,請注意,有些參數與CD不同:
cdrecord -v dev=ATA:1,1,0 fs=8m -data -sao driveropts=burnfree /tmp/system.img
掛載測試:
mount /dev/cdrom /mnt
df -h /mnt
umount /mnt
其他常用的壓縮與備份工具:
dd:
將/etc/passwd 備份到 /tmp/passwd.back當中:
dd if=/etc/passwd of=/tmp/passwd.back
ll /etc/passwd /tmp/passwd.back
將磁盤第一個扇區備份下來:
dd if=/dev/hdc if=/tmp/mbr.back bs=512 count=1
找出最小的分區,並備份:
df -h
dd if=/dev/hdcl of=/tmp/boot.whole.disk
ll -h /tmp/boot.whole.disk
cpio:
將/boot下的文件備份到/tmp/boot.cpio:
find /boot -print
find /boot | cpio -ocvB > /tmp/boot.cpio
ll -h /tmp/boot.cpio
將剛才的文件在/root/目錄下解開:
cd /root
cpio -idvc < /tmp/boot.cpio
ll -h /root/boot.cpio