hexdump -C f1 查看文件裡面的16進制的顯示,
linux和win的記事本二進制格式是不同的,這樣就會有些人把在windwos上面寫好的腳本文檔,直接移動到linux上面來,shell腳本沒有問題,但是總是報錯,這就是二進制格式不同造成的,我們可以通過一個命令doc2unix來在不同系統上面轉換文檔
[root@zou tmp]# cat abc 這個abc是在linux上面建立的正常文檔
a
b
c
我們通過hexdump可以查看文件裡面每一個字符的16進制的顯示信息
[root@zou tmp]# hexdump -C abc
00000000 61 0a 62 0a 63 0a |a.b.c.|
00000006
這裡的0000006代表的是偏移量 其中61是a 62是b 63是c 其余的0a代表換行符
下面將這個abc轉移成windows上面正常的txt文檔
使用命令 unix2dos abc 這個命令明顯可以看得出unix to dos 由linux轉移成windows格式的文件
[root@zou tmp]# unix2dos abc
unix2dos: converting file abc to DOS format ...
[root@zou tmp]# hexdump -C abc
00000000 61 0d 0a 62 0d 0a 63 0d 0a |a..b..c..|
00000009
同一個文檔,windows格式的ASCII文件明顯與linux不同
同樣上面的一串0以及尾部的9代表的是偏移量,可以看出windows上面的ASCII還是有很大不同的,尤其是換行,windows上面是 od oa 的
如果想把win上面的文件轉譯成linux上面的ASCII上面的文檔
使用命令 dos2unix 明顯可以看出dos to unix
[root@zou tmp]# dos2unix abc.txt
dos2unix: converting file abc.txt to UNIX format ...
windows和linux裝換的文本工具:上面我們已經說了是
unix2dos 和 dos2unix
之後通過hexdump -C Filename 查看字符格式
reset 當屏幕出現亂碼的情況的時候,執行這個命令可恢復正常
快捷鍵:
crtl+l 清屏
crtl+c 取消命令的執行
crtl+a 將光標移動到命令的最前面
crtl+e 將光標移動到命令的最後面
crtl+u 刪除光標前的多有字符
crtl+k 刪除光標後的所有字符
crtl+b 左移動一個位置
crtl+f 光標向右移動一個字符
esc 松手 按b 向左移動一個單詞
esc 松手 按f 向右移動一個單詞
圖形化的終端的快捷鍵
ctrl+shift +t 打開一個新的終端
w 退出當前一個
q 退出所有終端
crtl+PgUp/PgUn 切換到下一個/上一個標簽頁
crtl+shift+c 復制選中文本
crtl_shift+v 粘貼到光標後
文件管理 www.pathname.con/fhs下載幫助文檔
文件系統是文件在系統上的存方式,是硬盤存儲數據的范式
fat 不支持單個文件大於4G,不支持加密、壓縮
ntfs 支持
文件結構 (文件分成結構 LSB: linux standard base)
FHS文件系統分層標准
/ 整個文件系統的起始
/bin 系統最基本的程序,二進制程序
/sbin 管理員的基本程序
/boot 存放啟動程序,入內和vmlinuz..
/dev 設備 b塊文件,摸得著的設備,具有緩存
c 字符設備,線性,順序讀寫,是邏輯的設備,沒有緩存
/etc 配置文件
opt /opt相對應的配置文件
X11 桌面
sgml 標記語言
/lib 庫,程序運行時需要的共享庫,在7上是lib64
/media 移動設備掛載點
/mnt 臨時文件系統的掛在點
/opt 第三方軟件的安裝目錄
/srv 服務器的數據
/tmp 臨時文件,系統自動清除
/usr 小系統,大部分數據在這裡面,
bin 保證系統擁有完整功能而提供的應用程序,在7版本上二進制程序是這個位置,/bin軟連接到這個位置
sbin /sbin軟連接到這個位置,管理的二進制程序
lib 32位使用的庫 /lib 軟連接到這個位置
lib64 只存在64位系統上面 /lib64軟連接到這個位置
include C程序的頭文件(header files)
share 結構化獨立的數據 如doc,man等
local 第三方程序安裝位置,其下的目錄有:
bin
sbin
lib
lib64
etc
share
以上都是第三方的軟件安裝生成的
/var 變化數據,web網頁等
cache 應用程序緩存目錄
local 為/usr/local下的應用程序存儲可變數據
lock 鎖文件
log 日志
opt 為/opt下的應用程序存儲可變數據
run 運行相關進程數據,常存儲進程pid文件
spool 應用程序數據池
tmp 保存系統兩次重啟之間產生的臨時數據
/home
假目錄文件
/proc 內存中的一些信息,內存中的分區表,大小為0,是模擬的
process的簡稱
cat /proc/cpuinfo cpu信息
cat /proc/swaps 交換分區
cat /proc/partions 分區
/sys 存放硬件相關的信息,
/selinux 權限加強linux,安全策略相關的信息存儲位置,root是王,也要在這個法律的規范下活動
在7上/usr不可以做掛載點
/usr/sbin, bin是不可以掛載的,是系統啟動的過程中就要用的,/usr裡面有bin,因此也不支持掛載
版本6和版本7的目錄變化為/bin /sbin /lib /lib64
都跑到/usr的目錄下面去了
lrwxrwxrwx. 1 root root 7 2月 26 02:04 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 2月 26 02:09 boot
drwxr-xr-x. 20 root root 3200 5月 13 16:54 dev
drwxr-xr-x. 75 root root 8192 5月 14 02:27 etc
drwxr-xr-x. 5 root root 37 5月 10 22:38 home
lrwxrwxrwx. 1 root root 7 2月 26 02:04 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 2月 26 02:04 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 8月 12 2015 media
drwxr-xr-x. 2 root root 6 8月 12 2015 mnt
drwxr-xr-x. 2 root root 6 8月 12 2015 opt
dr-xr-xr-x. 360 root root 0 5月 13 16:54 proc
dr-xr-x---. 4 root root 4096 5月 14 02:43 root
drwxr-xr-x. 22 root root 620 5月 13 16:54 run
lrwxrwxrwx. 1 root root 8 2月 26 02:04 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 8月 12 2015 srv
dr-xr-xr-x. 13 root root 0 5月 13 16:54 sys
drwxrwxrwt. 12 root root 4096 5月 14 03:21 tmp
drwxr-xr-x. 13 root root 4096 2月 26 02:04 usr
drwxr-xr-x. 19 root root 4096 5月 13 16:54 var
linux上的應用程序的組成部分
二進制程序
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
/usr/local/sbin
庫文件:
/lib
/lib64
/usr/lib
/usr/lib64
/usr/local/lib
/usr/local/lib64
配置文件:
/etc
/etc/Diectory
/usr/local/etc
幫助文件:
/usr/share/man
/usr/share/doc
/usr/local/share/man
/usr/local/share/doc
linux下的文件類型
- 普通
p 管道
l 軟連接
b 塊
c 字符
s 套接字
d 目錄
使用file File_name 去查看文件的類型
定義文件,文件名命令規則
包括路徑在內文件命長對為4095個字節,用/分隔的路徑不能超過255個字節
不能用 / 作為文件裡面的名字字符
文件名一般區分大小寫,這是和文件系統有關的xfs為區分大小寫(fat不區分大小寫)
當文件名就叫 -a 的時候,就需要使用絕對路徑或者相對路徑了
df -T 顯示樣式
[root@zou ~]# df -T
文件系統 類型 1K-塊 已用 可用 已用% 掛載點
/dev/mapper/centos-root xfs 18307072 922400 17384672 6% /
devtmpfs devtmpfs 490452 0 490452 0% /dev
tmpfs tmpfs 500668 0 500668 0% /dev/shm
tmpfs tmpfs 500668 6828 493840 2% /run
tmpfs tmpfs 500668 0 500668 0% /sys/fs/cgroup
/dev/sda1 xfs 508588 125600 382988 25% /boot
tmpfs tmpfs 100136 0 100136 0% /run/user/0
pwd 顯示當前用戶工作的目錄
PWD 當前的共組目錄
OLDPWD 上一個工作目錄
相對路徑
絕對路徑
cd ~wang 到隔壁老王家
ls list列出目錄內容
-r 按照字母逆序顯示
-1 數字1,一個文件一行顯示
-S 大S排序,以文件大小排序
-U 就是按照文件存儲的順序來排序
-u 按照修改時間排序
-X 按照文件的擴展名來排序
-i 顯示inode的數量
-ld 目錄和符號鏈接的信息
-R 遞歸顯示
-a 顯示隱藏文件
-l 顯示更多的信息
文件通配符
* 0或多個任意字符
? 1個任意字符,必須有一個字符,不能為空
~zou zou的家目錄
~+ 當前目錄,相當於.
~- 前一個目錄
[1-3] 1到3的一個個數
[13] 1或者3
[12][34] 笛卡爾乘積,但是{12}{34}不用的是,後者必須要有,前者沒事
[a-z] aAbBcCdD....xXyYz 在這裡面是這樣排序的大寫和小寫字母,少一個Z
[A-Z] AbBcC.....yYzZ 少一個a
預定義的字符: man 7 glob
[:digit:] 數字
[:lower:] 小寫字母
[:upper:] 大寫字母
[:alpha:] 字母
[:alnum:] 字母和數字
[:space:] 空格
[:punct:] 標點符號
元數據netadata:
在系統當中記錄文件的,使用ll顯示出來的東西就是元數據:權限,所有者(數主,屬組),文件大小,創建時間
文件元數據的時間
--atime 訪問時間,文件最後一次讀時間,默認讀取,如使用了cat命令查看
--ctime 狀態更改時間,文件屬性,文件空間大小,文件名等 如chmod chown mv改名,移動位置,
--mtime 修改改動時間,就是利用vim echo sed等編輯了這個文件,使這個文件裡面的內容與以前不一樣,
當我們使用vim編輯了文件,它的atime,ctime和mtime會同時發生變化,atime在你進入編輯界面發生變化,之後編輯完成之後,保存退出ctime和mtime再變化,如果只是vim進去,直接q退出,那麼只有atime變化
當使用echo 增加文章裡面的內容,只有ctime和mtime變化
web服務器上面禁用--atime可以提高近5%的性能
默認顯示文件內容的時間,
ll --time=atime /etc/issu 這裡的atime可以換成另兩個
state File_name 查看文件的三個時間
[root@zou ~]# ll --time=atime test
-rw-r--r--. 1 root root 0 5月 13 19:46 test
[root@zou ~]# stat test
File: "test"
Size: 0 Blocks: 0 IO Block: 4096 普通空文件
Device: fd00h/64768d Inode: 134651 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-05-13 19:46:57.714519785 +0800
Modify: 2016-05-13 19:46:57.714519785 +0800
Change: 2016-05-13 19:46:57.714519785 +0800
touch 如果文件名沒有存在將會新建文件,如果文件存在,將會把3個時間給刷新了
-a 僅修改atime ctime也會同時變化
-m 修改mtime ctime也會同時變化
-t [[CC]yy]MMDDhhmm[.ss] 時間格式
-c 如果文件不存在,不會創建,只刷新那三個時間
touch -t 201608081000.30 --time=mtime test 年月時分秒 修改test文件的mtime
> file_name 新建一個文件,會刷新時間,如果文件存,則會覆蓋
>> file_name 可以新建一個目錄,不會刷新時間,慎用,文件存在就附加
cp copy文件
格式:
cp option [-T] source dest
cp /etc/issue /mnt/a
cp option source directory
cp /etc/issue /tmp/a /mnt
cp option -t directory source
cp -t /mnt /etc/issue /tmp/a 源和目的反過來
src是文件,如果目標不存在,新建dest,並將src中內容填充至dest中
如果目標文件存在,
1.dest為文件,這個時候源只能有一個,src中的內容會覆蓋dest當中的內容,當然這個需要再經過你同意,敲了y之後才會覆蓋,當然普通用戶不會,你可以處於安全考慮使用cp -i 命令別名
2.如果dest是個目錄,的dest下面新建一個src一樣的文件名的文件,並將src中內容填充進去,這時源文件可以是多個