前言
本文主要給大家介紹了關於Linux shell用sed批量更改文件名的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
示例
去除特定字元
目標:將 2017-01-01.jpg、2018-01-01.jpg 改為 20170101.jpg、20180101.jpg
方法:將所有 - 替換為空
for file in `ls | grep .jpg`
do
newfile=`echo $file | sed 's/-//g'`
mv $file $newfile
done
這里使用sed進行標准輸出的字元串替換,其通用格式如下:
stdout | sed 's/pattern/replace/'
上述示例中,在末尾添加g用於替換所有匹配項,而不僅僅替換第一個匹配項。
中間插入字元
目標:將 book01.txt、paper02.txt 改為 book-01.txt、paper-02.txt
方法:用分組匹配分別獲取待插入位置兩側的字元串,再通過反向引用實現替換
for file in `ls | grep .txt`
do
newfile=`echo $file | sed 's/\([a-z]\+\)\([0-9]\+\)/\1-\2/'`
mv $file $newfile
done
分析
上述示例首先通過 ls 和 grep 命令得到待改名的文件列表,然後用 sed 命令進行字元串的替換,最後再使用 mv 命令來完成文件名的更改。
獲取待改名文件列表的方法有很多,可以通過 find 命令,也可以直接給出字元串,我們將在下文中提到。
注意 for 循環後面的 ls | grep .txt,這條命令用兩個反單引號括了起來,與 $(ls | grep .txt) 的作用相同,被包圍的字元串會被當作命令執行,然後返回字元串結果。
文件名包含空格的解決方法
我們可以直接將文件列表寫到 for 循環中,而不是通過命令來得到,例如:
for file in "file1 file2 file3"
do
...
done
可以看到 for 循環是通過空格來分割字元串,因此如果待更改的文件名中包含空格的話,就會被拆分成多個文件名,從而出錯。
要解決這個問題,我們可以將 IFS(內部欄位分隔符)設置為換行符 \n,這樣一來,for 循環就會按行來獲取變數的值,確保每次獲取的確實是一個完整的文件名。
設置 IFS 變數的命令需要放在 for 循環之前:
IFS=$'\n'
for file in `ls`
do
...
done
也可以直接使用 while read 命令一次讀取一行到變數 file 中:
ls | grep "*.txt" | while read file
do
...
done
使用 find 獲取文件列表
之前的示例中,我們是通過 ls 命令來獲取文件列表。該命令只能獲取某個目錄的文件,而且沒法進行多種條件的篩選。
而一說到文件的查找,不得不提到功能強大的 find 命令。該命令可以在多個層次的目錄中查找文件,並能夠設定諸如創建時間、文件大小、所有者等多種條件,查找起文件來特別方便靈活。
用 find 命令來獲取文件列表,再用 sed 命令配合正則表達式來修改文件名,這兩個命令的結合幾乎能完成所有常見的批量改名任務。
例如,將所有大於1M,且後綴為txt或jpg的文件,由形如 book_20170101.txt、image_20170101.jpg 的文件改名為 20170101-book.txt、20170101-image.jpg,代碼如下:
for file in `find . -size +1M -name "*_*.txt" -o -name "*_*.jpg"`
do
newfile=`echo $file | sed 's/\([a-z]\+\)_\([0-9]\+\)./\2-\1./'`
mv $file $newfile
done
『貳』 如何在C語言編程裡面修改源文件名字
修改文件名,可要調用操作系統提供的API函數,比如Windows上的MoveFile(),也可以直接調用cmd中已提供的重命名命令——rename。下面的示例代碼,調用rename命令來重名命文件名。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
intmain(intac,char*pav[])
{
if(ac!=3){
printf("程序名要重命名的文件路徑新的文件名
");
printf("示例:test.exe1.txt2.txt
");
return0;
}
if(access(pav[1],0)!=0){
printf("不存在該文件
");
return0;
}
charszcmd[256]="cmd/crename";
strcat(szcmd,pav[1]);
strcat(szcmd,"");
strcat(szcmd,pav[2]);
system(szcmd);
return0;
}
『叄』 文件管理與重定向
Linux的 文件系統分層結構標准 :FHS Filesystem Hierarchy Standard
參考文檔: http://www.pathname.com/fhs/ 其中對每個文件目錄有詳細說明
/ :根目錄,最頂級目錄,也是 管理員的家目錄
/boot:引導文件、內核文件(vmlinuz)、引導載入器(bootloader, grub)都存放於此
/bin: 所有用戶 使用的基本命令(二進制文件)
/sbin:管理類的基本命令 (僅由root執行)
/bin與/sbin:不能關聯至獨立分區,OS啟動即會用到的程序
/etc 配置文件目錄
/home/USERNAME:各個用戶家目錄,存放用戶數據
/proc: 用於輸出內核與進程信息相關的虛擬文件系蔽亮統
/sys:用於輸出當前系統上硬體設備相關信息虛擬文件系統
/usr: universal shared, read-only data (通用只讀文件)
lib:32位使用
lib64:只存在64位系統
include: C程序的頭文件(header files)
share:結構化獨立的數據,例如doc, man等
local:第三方應用程序的安裝位置
bin, sbin, lib, lib64, etc, share
/var: variable data files (可變數據)
cache: 應用程序緩存數據目錄
lib: 應用程序狀態信息數據
local:專用於為/usr/local下的應用程序存儲可變數據
lock: 鎖文件
log: 日誌目錄及文件
opt: 專用於為/opt下的應用程序存儲可變數據
run: 運行中的進程相關數據,通常用於存儲進程pid文件
spool: 應用程序數據池
tmp: 保存系統兩次重啟之間產生的臨時數據
/dev:設備文件及特殊文件存儲位置
/tmp:臨時文件存儲位置
/srv:系統上運行的服務用到的數據
/media:攜帶型移動設備掛載點(優盤)
/mnt:臨時文件系統掛載點
/opt:第三方應用程序的安裝位置
注意:CentOS 7 以後版本目錄結構變化 (以下兩者相同)
/bin 和 /usr/bin
/sbin 和 /usr/sbin
/lib 和/usr/lib
/lib64 和 /usr/lib64
範例:
二進早並困製程陸念序:/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/DIRECTORY, /usr/local/etc
幫助文件: /usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc
用 ll 命令查看首字母:
(-) 普通文件
d 目錄文件
b 塊設備
c 字元設備
l 符號鏈接文件
p 管道文件pipe
s 套接字文件socket
每個shell和系統進程 都有一個當前的工作目錄(current work directory,簡稱CWD)
顯示當前shell CWD的絕對路徑: 使用pwd命令 (printing working directory)
範例:
[圖片上傳失敗...(image-8b8689-1596285623724)]
基名 :basename,只取文件名而不要路徑
目錄名 :dirname,只取路徑,不要文件名
範例:
命令 cd : change directory 改變目錄(可以使用絕對或相對路徑)
選項:-P 切換至物理路徑
切換至父目錄 : cd ..
切換至當前用戶家目錄: cd
切換至上一個工作目錄 : cd -
相關的環境變數:
PWD:當前目錄路徑
OLDPWD:上一次目錄路徑
文件相關信息:metadata(屬性,元數據), data(數據內容)
每個文件有三個時間戳: (touch創建已存在的文件時,刷新3個時間戳)
access time 訪問時間,atime,讀取文件內容
modify time 修改時間,mtime,改變文件內容(數據)
change time 改變時間,ctime,元數據發生改變(屬性)
mtime的改變必然引起ctime的改變
執行ll命令默認顯示mtime
範例:
用來匹配符合條件的多個文件,方便批理管理文件
通配符采有特定的符號,表示特定的含義,此特符號稱為 元字元
範例:只顯示文件夾
別外還有在Linux系統中預定義的字元類:命令man 7 glob可以查看
使用以上通配符,需要雙重中括弧!!!!!!!!!!!!!!
{a..e} 與 [a - e] 排序內容不相同!!!
範例:
範例: 創建一個以昨天日期命名的.log文件
cp 命令格式:
默認cp=cp -i,提示是否覆蓋
範例:
1、將/etc/目錄下所有文件,備份到/data獨立的子目錄下,並要求子目錄格式為 backupYYYY-mm-dd,備份過程可見
2、創建/data/rootdir目錄,並復制/root下所有文件到該目錄內,要求 保留原有許可權
mv 命令可以實現文件或目錄的 移動和改名 :
常用選項:
-i 互動式
-f 強制
-b 若目標存在,覆蓋前先備份
利用 rename 可以 批量修改文件名 :
範例: (改名對象打不打引號都可以)
使用rm 命令可以刪除文件
常用選項 :
-i 互動式
-f 強制刪除
-r 遞歸,對目錄進行操作時必須使用
--no-preserve-root 用來刪除根目錄
範例:刪除特殊文件
rm雖然刪除了文件,但是被刪除的文件仍然 可能被恢復 ,
在安全要求較高的場景下,可以使用shred安全刪除文件
補充技巧: 防止rm造成嚴重後果,定義別名進行備份 (修改配置文件永久有效)
配置文件目錄:/root/.bashrc
顯示目錄樹 tree
常見選項:
-d: 只顯示目錄
-L level: 指定顯示的層級數目
-P pattern: 只顯示由指定wild-card pattern匹配到的路徑
常見選項:
-p: 存在於不報錯,且可自動創建所需的各目錄 (用於一次創建多層目錄)
-v: 顯示詳細信息
-m MODE: 創建目錄時直接 指定許可權!!!!!!!!!!
rmdir 只能刪除空目錄 ,如果想刪除非空目錄,可以使用rm -r 命令遞歸刪除目錄樹
常見選項:
-p 遞歸刪除父空目錄
-v 顯示詳細信息
練習
(1) 如何創建/testdir/dir1/x, /testdir/dir1/y, /testdir/dir1/x/a, /testdir/dir1/x/b, /testdir/dir1/y/a,
/testdir/dir1/y/b
(2) 如何創建/testdir/dir2/x, /testdir/dir2/y, /testdir/dir2/x/a, /testdir/dir2/x/b
(3) 如何創建/testdir/dir3, /testdir/dir4, /testdir/dir5, /testdir/dir5/dir6, /testdir/dir5/dir7
inode = (index node)
每個文件的屬性信息,比如:文件的大小,時間,類型等,稱為文件的 元數據
這些元數據存放在 inode表中
inode 表 中有很多條記錄組成, 第一條記錄保存元數據,包括以下信息:
inode number 節點號(身份證號)
文件類型
許可權
UID
GID
鏈接數(指向這個文件名路徑名稱個數)
該文件的大小和不同的時間戳
指向磁碟上文件的數據塊指針
有關文件的其他數據
一般情況下inode表會佔用系統磁碟inode總量的1%
節點號表示 文件的唯一編號 !!!整個系統中 節點號是有限的
當節點號用盡時,即使還有儲存空間,也會提示無剩餘空間 !!!!!!
目錄 是個特殊文件,目錄的元數據保存了 目錄中文件的列表及節點號的對應關系!!!
系統引用文件是 使用 inode號
實際用戶是 通過文件名 來引用一個文件
目錄是 目錄下的文件名和文件inode號之間的映射
執行cp命令:
執行rm 命令:
執行mv命令:
硬鏈接本質上就 給一個文件起一個新的名稱 ,實質是同一個文件
範例:對文件f1.log創建新的名稱f1link.log,兩者inode都是132
硬鏈接特性 :
目錄的鏈接數至少為2,因為目錄中的 . 即為自身
創建子目錄會導致鏈接數增加!
一個符號鏈接指向另一個文件, 就像windows中的快捷方式
軟鏈接特點:
關於源文件相對路徑:只有跨分區創建軟鏈接時才有此問題!
案例一:
提示空間不足 No space left on device,但是 df 查看磁碟空間剩餘很多
案例二:
提示儲存空間不足,刪除無用的大文件後,空間並未釋放,什麼原因?如何解決?
讀入數據:Input
輸出數據:Output
打開的文件都有一個 fd : file descriptor (文件描述符)
Linux給程序提供 三種 I/O 設備
I/O重定向:將默認的輸入,輸出或錯誤 對應的設備進行修改,指向新的目標
STDOUT和STDERR可以被重定向到指定文件,而非默認的當前終端
支持的操作符號包括:
把STDOUT重定向到文件或其他終端
重定向到文件時,若文件不存在則創建,若文件存在則覆蓋內容
再次重定向到同一文件,內容再次覆蓋
若 > 符號之前不輸入命令,則效果為生成空文件或清空目標文件
是迅速清空文件內容的一種方式
藉助/dev/null也可實現同樣的功能
磁碟空間不足時,大文件被佔用不能停,而且rm刪除無法立即騰出空間,應使用 > 或/dev/null >
把STDERR重定向到文件或其他終端
set - C 命令, 禁止將內容覆蓋已有文件,但可追加 (此時>|可以強制覆蓋)
set + C 命令,允許覆蓋
強制覆蓋
用 ( )或者{ }合並多個命令的out或err, 注意使用花括弧的格式!!!
使用 < 來重定向標准輸入:從文件中導入STDIN,代替當前終端的輸入設備
使用 單行或多行重定向 來創建新文件,並輸入指定內容
同時存在 < > ,優先進行 輸入運算
只能對新文件進行!!!!!
只能對新文件進行!!!!!
使用 "<<終止詞" 命令 把接下來輸入的多行內容進行重定向,
直到終止詞位置之前的所有文本都發送給STDIN
終止詞 可以是任何一個或多個符號,
比如:!,@,$,EOF(End Of File),mage等, 其中EOF比較常用
易錯點: tr命令實現的是 單個字元一一對應的轉換關系!!!!
基本格式:
常見用途: 全局大小寫轉換
-d 刪除 所有含有SET1的字元
-c 取字元集的補集,即 取反(一般與-d搭配使用)
-s 把 連續重復的單個字元 以單獨一個字元表示,即 去重
管道(使用符號「|」表示) 用來連接多個命令
功能說明:
注意:STDERR默認不能通過管道轉發,可利用2>&1 或 |& 實現,格式如下
因此, 當不確定命令的輸出結果,或者已知結果中存在error時 ,應該使用上述命令
範例:將 /home 裡面的 文件打包 ,不生成文件,而是傳送到 stdout,經過管道後,
將 tar -cvf - /home 傳送給後面的 tar -xvf - , 最後的這個 - 表示 取前一個命令的 stdout
利用tee命令 可以既重定向到文件,又顯示在屏幕
tee的功能:
基本用法
若後面不加命令2
『肆』 如何使用SHELL腳本批量CP文件並改成對應的文件名
例如談虧圓將test下的文件CP到record下面,並改成對應的文件名:
#!/bin/bash
for空判iin{1..10}
do
destination=`sed-n"$i,1p"user.txt|awk'{print$2}'`
source=`sed-n"$i,1p"user.txt|awk'含塌{print$1}'`
#echo$dir
cd$dir
cp-rvp$source$destination
done
『伍』 linux替換文件命令
1、這么就用不會提示了:#
\cp
-rf
2、
原因:
#
vi
~/.bashrc
如果你看到如下內容,以下命令都會用別名執行了,就是說自動加了
-i
參數:
alias
rm='rm
-i'
alias
cp='cp
-i'
alias
mv='mv
-i'
為了讓復制和移動大量文件去覆蓋目標時,不會產生一個個的提示,命令應該這樣寫
#
\cp
-rf
/data/xxx*
/home/xxx
注意
cp
命令前加了
\
,意思是不讓它用~/.bashrc里的別名運行,即
-i
參數
3、補充cp該命令的各選項含義如下
-
a
該選項通常在拷貝目錄時使用。它保留鏈接、文件屬性,並遞歸地拷貝目錄,其作用等於dpR選項的組合。
-
d
拷貝時保留鏈接。
-
f
刪除已經存在的目標文件而不提示。
-
i
和f選項相反,在覆蓋目標文件之前將給出提示要求用戶確認。回答y時目標文件將被覆蓋,是互動式拷貝。
-
p
此時cp除復制源文件的內容外,還將把其修改時間和訪問許可權也復制到新文件中。
-
r
若給出的源文件是一目錄文件,此時cp將遞歸復制該目錄下所有的子目錄和文件。此時目標文件必須為一個目錄名。
-
l
不作拷貝,只是鏈接文件。
4、需要說明的是,為防止用戶在不經意的情況下用cp命令破壞另一個文件,如用戶指定的目標文件名是一個已存在的文件名,用cp命令拷貝文件後,這個文件就會被新拷貝的源文件覆蓋,因此,建議用戶在使用cp命令拷貝文件時,最好使用i選項。
『陸』 Linux文件系統操作命令
Linux文件系統操作命令大全
Linux命令有很多,那麼Linux文件系統操作命令又有哪些呢?下面我為你介紹!
文件系統操作命令:
1. cat:可以顯示文件的內容(經常和more搭配使用),或將多個文件合並成一個文件。
2. chgrp:用來改變文件或目錄所屬的用戶組,命令的參數以空格分開的要改變屬組的文件列表,文件名支持通配符,如果用戶不是該文件的所有者,則不能改變該文件的所屬組。
3. chmod:用於改變文件或目錄的訪問許可權,該命令有兩種用法:一種是使用圖形化的方法,另一種是數字設置法。
4. chown:用來將指定用戶或組為特定的所有者。用戶可以設置為用戶名或用戶ID,組可以是組名或組ID。特定的文件是以空格分開的可以改變許可權的文件列表,文件名支持通配符。
5. clear:用來清除終端屏幕。
6. cmp:用來比較兩個文件的大小。
7. cp:()可以將文件或目錄復制到其他目錄中,就如同Dos下的命令一樣,功能非常強大。在使用cp命令時,只需要指定源文件名或目標目錄即可。
8. cut:用來移除文件的部分內容。
9. diff:用來找出兩個文件的不同之處。
10. : 用來顯示磁碟的剩餘空間的大小。
11. file:用來顯示文件的類型。
12. find:用來在目錄中搜索文件,並執行指定的操作。
13. head:只查看文件的頭幾行內容,而不必瀏覽整個文件。
14. ln:可以在文件之間創建鏈接,實際上是給某個文件指定一個訪問它的別名。
15. less:用法與more類似,可以查看超過一屏的文件內容,不同的是less除了可以按空格鍵向下顯示文件外,還可以利用方向鍵來滾動顯示文件,要結束瀏覽,只要在less的提示符“:”後按Q即可。
16. locate:可用於查找文件,且比find命令的搜索速度快。
17. ls(list):用來顯示當前目錄中的文件和子目錄列表。
18. mkdir(make directory):建立子目錄。
19. more:用於顯示內容超過一屏的文件,為了避免文件內容顯示瞬間就消失,可以使用more命令讓文件顯示滿一屏時暫停,在按下任意鍵的時候繼續顯示下一屏的內容。
20. rmkdir(remove directory):用來刪除“空”的子目錄或無用的目錄文件。
21. mv(move):可以將文件以及目錄移到其他位置,或更改文件以及目錄的名稱。
22. pico:可指定文本的編輯方式。
23. pwd(print working directory):可顯示用戶當前所在的目錄。
24. rm:用來刪除系統中過時或無用的文件,可以刪除目錄中的文件或目錄本身,對於鏈接文件,原有文件保持不變。
25. sort:將文本文件自動分類。
26. stat:用於顯示文件或文件系統的狀態。
27. Strings:顯示文件中要列印的字元串。
28. tail:輸出文件的結尾。
29. touch:改變文件的時間戳。
30. umask:用於啟動bash shell。
31. uniq:移除已分類文件中的重復文本行。
32. vi:啟動vi文本編輯器。
33. wc:顯示文件中位元組、片語合文本行的數目。
34. whereis:查找特定目錄下的原始程序,二進製程序或用戶手冊等文件的位置。
35. man:如果用戶對某個命令想了解更詳細的話,可使用此命令。
36. dd:復制一個文件。
37. df:查看一個文件系統的磁碟空間使用情況。
38. edquoat:設置用戶與用戶組的磁碟空間限制,即Windows系統中的配額。
39. fdformat:格式化軟盤。
40. fdisk:執行Linux下的`磁碟分區。
41. mkfs:建立一個Linux文件系統。
42. mkswap:創建一個Linux交換分區。
43. mount:掛載一個文件系統。
44. quota:限制和顯示用戶可用的磁碟空間。
45. swapon,swapoff:啟用或取消設備和文件的交換頁。
46. quotaon,quotaoff:啟用或取消quota限制。
47. umount:取消文件系統的裝備。
系統管理命令
1. finger:查詢用戶信息,也能查看默認的用戶環境。
2. ftp:標準的文件傳輸協議的用戶介面,是在網路上傳輸文件最簡單有效的方法。
3. host:用於DNS查詢。
4. hostname:用於顯示或設置系統的主機名。
5. ifconfig:用於配置網卡介面。(可以使用down或up參數來禁用或啟用某個網卡介面)
6. mail:發送和接收郵件。
7. netstat:顯示網路連接、路由表和網路介面信息,用戶可以知道目前那些網路連接正在運行。
8. ping:此命令用於測試本計算機和網路上其它的計算機是否相連。
9. rlogin:遠程登陸命令,該命令與telnet命令很相似,允許用戶啟動遠程系統的交互會話。
10. rcp:rcp(remote file )命令是遠程文件復制命令,該命令用於在計算機之間復制文件,有兩中格式,一種格式用於文件動文件的復制,另一種用於把文件或目錄復制到其他文件目錄中。
11. route:此命令用於顯示或設置IP路由表。
12. tcpmp:此命令用於測試網路的通信量。
13. talk:此命令可用於事項網路用戶的適時交談,但是必須將雙方系統的信息加入各自的/etc/hosts文件中,以相互識別。
14. telnet:此命令用於通過網路登陸遠程計算機,如同操作本地計算機一樣。
15. wall:wall(write all)命令可以用於發送消息給登陸本機的用戶。在發送消息時,可直接輸入要發送的消息,也可以把文件當成消息發送。
16. wget:此命令用於Linux環境下從Internet上下載文件,支持http和ftp協議,支持代理伺服器和斷點連續傳功能,能夠遞歸遠程主機上的目錄,查找合乎要求的的文件並下載到本地硬碟上。Wget命令可以在後台運行,截獲並忽略hantfup信號,因此用戶退出登陸後,仍可繼續運行。
17. &,bg:&,bg命令是後台執行命令,有時候用戶執行的程序可能要話很多時間,如果放在前台執行,可能無法繼續其他操作,最好將他放在後台執行。
18. fg:fg命令是前台執行命令,如果用戶有程序在後台運行,可以通過fg命令將程序從後台移到前台執行。
19. jobs:此命令用於顯示正在後台執行的任務清單。Bg,fg,jobs命令都屬於bash命令,
20. kill:此命令用於終止一個程序,例如:#[root@rathat9 root]kill 3793
21. ps:此命令用於顯示程序的狀態。
22. top:此命令用於顯示當前CPU進程。
23. at batch atp atrm:這些命令用於排序,檢查或刪除後台運行的任務。
Linux與用戶有關的命令:
1. passwd命令:更改用戶口令。
格式:passwd [用戶名]
2. su命令:可以讓一個普通用戶擁有超級用戶或其他用戶的許可權,也可以讓超級擁護以普通用戶的身份做一些事情。
格式:su[選項][?][使用者賬號]
說明:若沒有指定的使用者賬號,則系統預設值為超級用戶root。該命令中個選項的含義分別為:
-c:執行一個命令後就結束。
-:加了這個減號的目的是使環境變數和欲轉換的用戶相同。
-m:保留環境變數不變。
Linux系統管理命令:
1. wall命令:對全部以登陸的用戶發送信息。
2. write命令:向系統中某一用戶發送信息。
格式:write 用戶賬號 [終端名稱]
3. mesg命令:設定是否允許其他用戶用write命令給自己發送信息。
如果允許輸入命令:mesg y
如果不允許輸入命令:mesg n
4. sync命令:在關閉Linux系統是使用的。Sync是強制把內存中的數據寫回硬碟,以免數據丟失。
5. shutdown命令:可以安全的關閉或重啟Linux它在系統關閉之前給系統上的所有登陸用戶提示一條警告信息。
格式:shutdown [選項][時間][警告信息]
命令中選項的含義:
-k:並不真正關機,而只是發出警告信息給所有用戶。
-r:關機後立即重新啟動。
-h:關機後不重新啟動。
-f快速關機,重新啟動時跳過fsck。
-n:快速關機,不經過init程序。
-c:取消一個已經運行的shutdown。
6. free命令:查看當前系統內存的使用情況,它顯示系統中剩餘及已用的物理內存和交換內存,以及共享內存和被核心使用的緩沖區。
格式:free [-b | -k |-m]
命令中各個選項的含義:
-b:以位元組為單位顯示。
-k:以K位元組為單位顯示。
-m:以兆位元組為單位顯示。
7. uptime命令:顯示系統已經運行了多長時間,它依次顯示下列信息:現在時間、系統已經運行了多長時間、目前有多少登陸用戶、系統在過去的1分鍾、5分鍾和15分鍾內的平均負載。
8. df命令:檢查文件系統的磁碟空間佔用情況。
格式:df [選項]
說明:df命令可顯示所有文件系統對I節點和磁碟塊的使用情況。
命令中各個選項的含義:
-a:顯示所有文件系統的磁碟使用情況,包括0塊(block)的文件系統。
-k:以k位元組為單位顯示。
-i:顯示i節點信息,而不是磁碟塊。
-t:顯示各指定類型的文件系統的磁碟空間使用情況。
-x:列出不是某一指定類型文件系統的磁碟空間使用情況。
-T:顯示文件系統類型。
9. 命令:顯示磁碟空間的使用情況。統計目錄(或文件)所佔磁碟的大小。
格式: [選項] [Names…]
說明:該命令逐級進入指定目錄的每一個子目錄並顯示該目錄佔用文件系統數據塊(1024位元組)的情況。若沒有給出Names,則對當前目錄進行統計。
命令中各個選項的含義:
-s:對每個Names參數只給出佔用的數據塊總數。
-a:遞歸的顯示指定目錄中各文件及子孫目錄中個文件佔用的數據塊數。若既不指定-s,也不指定-a,則顯示Names中的每一個目錄及其中的各子目錄所佔的磁碟塊數。
-b:以位元組為單位列出磁碟空間使用情況(系統預設以k位元組為單位)。
-k:以1024位元組為單位列出磁碟空間的使用情況。
-c:最後再加上一個總計(系統預設設置)。
-l:計算所有的文件大小,對硬鏈接文件,則計算多次。
-x:跳過在不同文件系統上的目錄不予統計。
10. dd命令:把指定的輸入文件拷貝到指定的輸出文件中,並且在拷貝過程中可以進行格式轉換。
格式:dd [選項]
命令中各個選項的含義:
if = 輸入文件(或設備名稱)。
of = 輸出文件(或設備名稱)。
ibs = bytes 一次讀取bytes位元組,及讀入緩沖區的位元組數。
skip = blocks 跳過讀入緩沖區開頭的ibs*blocks塊。
obs = bytes 一次寫入bytes位元組,及寫入緩沖區的位元組數。
bs = bytes 同時設置讀/寫緩沖區的位元組數(等於設置ibs和obs).
cbs = byte 一次轉換bytes位元組。
count = blocks 只拷貝輸入的block塊。
conv = ASCⅡ 把EBCDIC碼轉換為ASCⅡ。
conv = ebcdic 把ASCⅡ碼轉換為EBCDIC碼。
conv = ibm ibm把ASCⅡ碼轉換為alternate EBCDIC碼。
conv = block 把變動位轉換成固定字元。
conv = ublock 把固定位轉換成變動位。
conv = ucase 把字母由小寫轉換為大寫。
conv = lcase 把字母由大寫轉換為小寫。
conv = notrunc 不截短輸出文件。
conv = swab 交換每一對輸入位元組。
conv = noerror 出錯是不停止處理。
conv = sync 把每個輸入記錄的大小都調到ibs的大小(用NUL填充)。
11. fdformat命令:低級格式化軟盤。
格式:format [-n] device
說明:-n 軟盤格式化後不作檢驗。
12. echo命令:在顯示器上顯示一段文字,一般起到一個提示作用。
格式:echo [-n] 字元串
13. cal命令:顯示某年某月的日歷。
格式:cal [選項] [月 [年]]
命令中各個選項的含義:
-j:顯示出給定月中的每一天是一年中的第幾天(從1月1日算起)。
-y:顯示出整年的日歷。
14. date命令:顯示和設置系統日期和時間。
格式:date [選項] 顯示時間格式 (以 + 開頭,後面接格式)
date [選項] 設置時間格式
命令中各個選項的含義:
15. clear命令:清除屏幕上的信息。
Vi的基本命令:
1. 移動游標:
Ctrl + b:上滾一屏
Ctrl + f:下滾一屏
Ctrl + d:下滾半屏
Ctrl + u:上滾半屏
G: 移到文件最後
W:移到下個字的開頭
B:跳至上個字的開頭
2. 刪除
x:刪除當前游標所在後面一個字元
#x:刪除當前游標所在後面#個字元。例如,5x表示刪除5個字元。
dd:刪除當前游標所在行
#dd:刪除當前游標所在後面#行。例如,5dd表示刪除字游標算起的5行。
:l,#d:例如,:1,12d表示刪除自行1至行12的文字
X:刪當前游標的左字元
D:刪至行尾
3. 更改
cw:更改游標處的字到此單字的字尾處
c#w:例如,c3w表示更改3個字
cc:修改行
c:替換到行尾
4. 取代
r:取代游標處的字元
R:取代字元直到按ESC為止
5. 復制
yw:拷貝游標處的字到字尾只緩沖區
P:把緩沖區的資料貼上來
yy:拷貝游標所在之行至緩沖區
#yy:例如:5yy,拷貝游標所在之處以下5行至緩沖區
Linux文件的復制,刪除和移動命令
1.cp命令:該命令的功能是將給出的文件或目錄拷貝到另一文件或目錄中,同MSDOS下的COPY命令一樣,功能十分強大。
語法:cp[選項]源文件或目錄,目標文件或目錄
說明該命令把指定的源文件復制到目標文件或把多個源文件復制到目標目錄中。
該命令的各項選項含義如下:
-a:該選項通常在拷貝目錄是使用。他保留鏈接,文件屬性,並遞歸地拷貝目錄,其作用等於dpr選項的組合。
-d:拷貝是保留鏈接
-f:刪除已經存在的目標文件而不提示。
-I:和 f選項相反,在覆蓋目標文件之前將給出提示要求擁護確認。回答y時目標文件將被覆蓋,是互動式拷貝。
-p:此時cp除復制源文件的內容外,還將把其修改時間和反問許可權也復制到新文件中。
-r;若給出的源文件是一目錄文件,此時cp將遞歸復制該目錄下所有的子目錄和文件。此時目標文件必須為一個目錄名。
-L:不作拷貝,只是鏈接文件。
需要說明的是,為防止用戶在不經意的情況下用cp命令破壞另一個文件,如用戶指定的目標文件名已存在,用cp 命令拷貝文件後,這個文件酒會被新源文件覆蓋,因此,建議用戶在使用cp命令拷貝文件時,最好使用I選項。
2.mv命令:用戶可以使用mv命令來為文件或目錄改名或將文件由一個目錄移入另一個目錄中。該命令如同MS-DOS下的ren 和 move 的組合。
語法:mv[選項]源文件或目錄 目標文件或目錄。
說明:視mv命令中第二個參數類型的不同(是目標文件還是目標目錄),mv命令將文件重命名或將其移至一個新的目錄中。當第二個參數類型是文件時,mv命令完成文件重命名,此時,源文件只能有一個(也可以是源目錄名),他將所給的源文件或目錄重命名為給頂的目標文件名。當第二個參數是已存在的目錄名稱時,源文件或目錄參加參數可以有很多個,mv命令將個參數指定的源文件均移至目標目錄中。在跨文件系統移動文件時,mv先拷貝,再將原有文件刪除,而鏈至該文件的鏈接也將丟失。
命令中各選項的含義為:
-I:交互方式操作。如果mv操作將導致對已存在的目標文件的覆蓋,此時系統詢問是否重寫,要求用戶回答y或n,這樣可以避免誤覆蓋文件。
-f:禁止交互操作。在mv操作要覆蓋某已有的目標文件是不給任何指示,指定此選項後,I選項將不再起作用。
如果所給目標文件(不是目錄)已存在,此時該文件的內容將後備新文件覆蓋,為防止用戶用mv命令破壞另一個文件,使用mv命令移動文件時,最好使用I選項。
3.rm命令:用戶可以用rm命令刪除不需要的文件。該命令的功能問刪除一個目錄中的一個或多個文件或目錄,他也可以將某個目錄及其下的所有文件及子目錄均刪除。對於鏈接文件,只是斷開了鏈接,源文件保持不變。
Rm命令的一般形式為:
Rm [選項]文件……
如果沒有使用-r選項,則rm不會刪除目錄。
該命令的各選項含義如下:
-f:忽略不存在的文件,從不給出提示。
-r:指示rm將參數中列出的全部目錄和子目錄均遞歸地刪除。
-I:進行互動式刪除。
使用rm命令要小心。因為一旦文件被刪除,他是不能被恢復的。為了防止這種情況的發生可以使用I選項倆逐個確認要刪除的文件。如果用戶輸入y,文件將被刪除。如果輸入任何其他東西,文件則不會刪除。
Linux目錄的創建與刪除命令:
1. mkdir命令
功能:創建一個目錄(類似MS-DOS下的md命令)。
語法:mkdir[選項]dir-name
說明:該命令創建由dir-name命名的目錄。要求創建目錄的用戶在當前目錄中(dir-name的父目錄中)具有寫許可權,並且dirname不能是當前目錄中已有的目錄或文件名稱。
命令中個選項的含義為:
-m:對新建目錄設置存取許可權。也可以用chmod命令設置。
-p:可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項後,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄。
2. rmdir命令
功能:刪除空目錄。
語法:rmdir[選項]dir-name。/
說明:dir-name表示目錄名。該命令從一個目錄中刪除一個或多個子目錄項。需要特別注意的是,一個目錄被刪除之前必須是空的。Rm-r dir 命令可代替rndir,但是有危險性。刪除某目錄時也必須具有對父目錄的、寫許可權。
命令中個選項的含義為:
-p遞歸刪除目錄dirname,當子目錄刪除後其父目錄為空時,也一同被刪除。如果整個路徑被刪除或者由於某種原因保留部分路徑,則系統在標准輸出上顯示相應的信息。
3. cd命令
功能:改變工作目錄。
語法:cd[directory]
說明:該命令將當前目錄改變至directory所指定的目錄。若沒有指定directory,則回到用戶的主目錄。為了改變到指定目錄,用戶必須擁有對指定目錄的執行和讀許可權。
該命令可以使用通配符(如”*,_”這樣的通配符號)。
4. pwd命令
在Linux層次結構中,用戶可以在被授權的任意目錄下利用mkdir命令創建新目錄,也可以利用cd命令從一個目錄轉換到另一個目錄。然而,沒有提示符來告知用戶目前處於哪一個目錄中。想要知道當前所處的目錄,可以用pwd命令,該命令顯示整個路徑名。
語法:pwd
說明:此命令顯示出當前工作目錄的絕對路徑。
5. ls命令
ls是list的簡寫,其功能為列出目錄的內容。這是擁護最常用的一個命令之一,因為用戶需要不時地查看某個目錄的內容,該命令類似於DOS下的dir命令
語法:ls[選項][目錄或是文件]
對於每個目錄,該命令將列出其中的所有子目錄與文件。對於每個文件,ls將輸出其文件名以及所要求的其他信息。默認情況下,輸出條目按字母順序排序。但未給出目錄名或是文件名時,就顯示當前目錄的信息。
命令中各個選項的含義:
-a:顯示指定目錄下所有子目錄與文件,包括隱藏文件。
-A:顯示指定目錄下所有子目錄與文件,包括隱藏文件。但不列出“.”和“..”.
-b:對文件名中的不可顯示字元用把禁止
linux中所有設備都是以文件的形式顯示
linux下文件的後綴名無實際意義
命令
pwd 顯示路徑
man +命令 列出操作說明
ls -l/-help列出 文件目錄
cd / 目錄做實驗
安裝步驟 configure make make install?
rm -r dl 遞歸刪除目錄
rm -rf 刪除所有目錄
rm -f 加文件名 刪除文件
rmdir +文件地址 刪除文件夾所有和rm -rf功能差不多
touch 加名字 創建新文件
cp 復制 mv 移動 rm 刪除
vi 文本編輯器 輸入a將從命令格式變成輸入格式
head tail 查看前面和後面
find 加位置 加文件名 查找
echo $PATH 查詢路徑
useradd 加名字 添加用戶
userdel 加名字 刪除用戶
su 加用戶名 切換用戶
chmod +x/-x 加文件名 修改文件許可權
chmod 755 加文件名 改變許可權在安裝程序時
grep 加文本字元 加在那個文件 查找字元存在那行
fdisk -l 查看磁碟信息
命令1|命令2|命令三... 管道
ps -ef查看進程
ifconfig linux查看ip
重定向
linux和其它機器之間共享文件vsftp Windows和linux傳輸文件15-17
putty遠程登錄軟體ssh
gzip 壓縮和解壓縮 -d解壓 21
service iptables off防火牆關閉
tar -xvf 第二層解壓縮
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(註:tar是打包,不是壓縮!)
———————————————
.gz
解壓1:gunzip FileName.gz
解壓2:gzip -d FileName.gz
壓縮:gzip FileName
.tar.gz 和 .tgz
解壓:tar zxvf FileName.tar.gz ./DirName
壓縮:tar zcvf FileName.tar.gz DirName
.tar.bz2
解壓:tar xjf FileName.tar.bz2 ./DirName
壓縮:tar cjf FileName.tar.bz2 DirName
rpm -ivh 加.rpm文件 安裝
安裝sudo apt-get install 軟體名
;『柒』 linux里怎麼修改TXT文檔
1、進入Ubuntu桌面後,打開終端,快捷鍵為ctrl+alt+T。
『捌』 linux命令:cp復制文件或目錄
使用Linux系統的時候經常需要運用cp命令進行文件或者文件夾的復制,那麼該如何操作cp命令呢?下面我給大家分享一下。
linux系統終端
首先登錄進linux系統,右鍵單擊選擇Open In Terminal選項,如下圖所示
接下來我們在打開的終端命令行,首先用pwd命令查看當前目錄,然顫侍後運用cp命令進行文件的復制,如下圖所示,注意復制後的文件名稱被修改了
回到桌面,我們可以看到已經有2個文隱洞寬件了,並且復制的文件名稱也已改變,如下圖所示
最後我們還可以灶亮通過cp命令直接復制文件夾到另一個文件夾,如下圖所示
『玖』 linux下文件名過長,導致cp命令時,新生成的目標文件文件名被截斷,有什麼解決辦法使文件名一致呢
1、有必要用那麼長的文件名嗎?
2、文件名好像與根目錄的「距離」有關系吧!
『拾』 linux下怎麼復制一個文件到另外一個目錄並且重命名
在linux下復制一個文件到另外一個目錄並且重命名的具體操作如下:
用mv命令
mv /a /b
1.命令格式:
mv [選項] 源文件或目錄 目標文件或目錄
2.命令功能:
視mv命令中第二個參數類型的不同(是目標文件還是目標目錄),mv命令將文件重命名或將其移至一個新的目錄中。當第二個參數類型是文件時,mv命令完成文件重命名,此時,源文件只能有一個(也可以是源目錄名),它將所給的源文件或目錄重命名為給定的目標文件名。當第二個參數是已存在的目錄名稱時,源文件或目錄參數可以有多個,mv命令將各參數指定的源文件均移至目標目錄中。在跨文件系統移動文件時,mv先拷貝,再將原有文件刪除,而鏈至該文件的鏈接也將丟失。
3.命令參數:
-b :若需覆蓋文件,則覆蓋前先行備份。
-f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋;
-i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!
-u:若目標文件已經存在,且 source 比較新,才會更新(update)
-t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目標目錄,該選項適用於移動多個源文件到一個目錄的情況,此時目標目錄在前,源文件在後。
(10)cp能改文件名嗎擴展閱讀:
Linux:
操作系統,是一種計算機操作系統,中文讀法大致一般為「哩內克斯」,但真正的讀法應為「哩納克斯」。Linux操作系統的內核的名字也是「Linux」。Linux操作系統也是自由軟體和開放源代碼發展中最著名的例子。