ulimit里的最大文件打開數量的默認值 如果在limits.conf里沒有設置版,則默認值權是1024,如果limits.con有設置,則默認值以limits.conf為准。例如我換了一台機器,登錄進去,ulimit -n顯示如下: [root@zk203 ~]# ulimit -n 2000 這是因為我的limits.conf里的文件打開數是2000,如下: [root@zk203 ~]# cat /etc/security/limits.conf root soft nofile 2000 root hard nofile 2001 如果limits.conf里不做任何限制,則重新登錄進來後,ulimit -n顯示為1024。 [root@zk203 ~]# ulimit -n 1024 ulimit修改後生效周期 修改後立即生效,重新登錄進來後失效,因為被重置為limits.conf里的設定值
Ⅱ linux下限制用戶最多隻能使用20M磁碟空間,50個文件。
假如你要設置用戶user,在/dev/sda1 分區使迅笑讓用20M磁碟空間,50個文件,下文以/為例:
1.設畝局置/etc/fstab ,在defaults後添加usrquota:
/dev/sda1 / ext4 defaults,usrquota 0 0
2.mount -o remount / (應該要reboot)
3 .建立用戶磁碟配額資料庫:(可能要在單用戶模式下)
quotacheck -cvua
4. 啟動磁碟配額功能:
quotaon /dev/sda1
5.編輯用戶磁碟配額
edquota -u user
Filesystem blocks soft hard inodes soft hard
/dev/sda1 8 20000 50
6.查看用升行戶配額
requota -u user
Ⅲ linux下備份一個目錄下所有文件及目錄,應該用什麼命令
可以使用cp -rdir(目錄)這個命令。cp是復制命令。-r 遞歸處理,指定目錄下的文件和子目回錄一並處答理。
通過shh連接上Linux主機,然後輸入「cp -r www/root/」,回車即可備份root文件夾。
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
Linux操作系統誕生於1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬體設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機。
嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU工程各種工具和資料庫的操作系統。
Ⅳ 如何在Linux系統上顯示當前及子目錄中的文件數量
1、find [選項] [目錄] [條件] [動作]
如果不指定任何目錄,find 將會查找當前目錄。如果 不指定條件,則條件相當於「true」,這樣會把全部文件都找出來。選項、條件和動作的設置十分繁多, 看看 幾個參數選項:
-xdev:不在其它文件系統的目錄中搜索。
-mindepth <n>:搜索文件時至少要深入到指定目錄的第 n 層子目錄。
-maxdepth <n>:搜索文件時最多深入到指定目錄的第 n 層子目錄。
-follow:如果符號鏈接到目錄,則跟隨符號鏈接進入。默認情況下,find 不跟隨鏈接。
-daystart:當使用與事件相關的測試時(見下文),將當天的開始時間作為時間戳,而不是默認值(從當前時間倒退24個小時)。
條件可以是一個或多個原子測試。這是一些有用的測試:
-type <文件類型>:搜索給定類型的文件。文件類型可以是以下之一:f(普通文件)、d(目錄)、l(符號鏈接)、s(套接字)、b(塊模式文件)、c(字元模式文件)或p(命名管道)。
-name <模式>:查找文件名與給定模式匹配的文件。使用此選項,模式將被看作shell 全局模式(參見「Shell 通配符」一節)。
-iname <模式>:與 -name 類似,但不區分大小寫。
-atime <n>、-amin <n>:查找上次訪問時間在 n 天前(-atime)或 n 分鍾前(-amin) 的文件。您還可以指定 <+n> 或 <-n>,這代表要搜索訪問時間在至多或者至少 n 天/分鍾前的文件。
-anewer <文件>:查找上次訪問時間晚於文件的文件。
-ctime <n>、-cmin <n>、-cnewer <file>:與 -atime、-amin 和 -anewer 相同,但比較的是文件上次修改的時間。
-regex <模式>:與 -name 相同,但模式將被看作正則表達式。
-iregex <pattern>:與 -regex 相同,但不區分大小寫。
2、利用find加grep,find找出文件,grep查找文件內容
# find . -type f -print xargs grep "hostname"用grep命令在所有的普通文件中搜索hostname這個詞
Ⅳ 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 最大支持 64G ,是在 x86 架構上。
如果你在大型伺服器上,好像最高可以上內到 4T 以上,但容似乎和硬體有關。
支持的大小,在內核裡面有設置 1G 4G 64G 三個級別。
如果打開了 64G 內存,但跑在小於 4G 的機器上,聽說性能有損失。(貌似性能損失還很大……)
具體的支持我只知道看內核配置,一般在 /boot 裡面有個文件名里含有版本號的 config 文件,這個就是配置。最好還是看 /proc/config (或者壓縮過的 /proc/config.gz ),這個是當前運行內核的配置,但並不一定有。(看設置了)
CONFIG_HIGHMEM4G 這個為 Y 是支持 4G 版的
CONFIG_HIGHMEM64G 這個為 Y 是支持 64G 的
兩個都沒有,就是 1G 版的(貌似現在沒人還在桌面和伺服器上用 1G 版的了)
Ⅶ 關於Linux操作系統的一些命令是什麼
Linux系統中的命令實在是太多了,簡單包括兩類命令,一類是內部命令,指的是Shell自身提供的功能,一類是外部命令,指的是第三方的控制台應用程序。
一般來說,沒必要完全學習所有的命令,大體上有個印象,用到的時候去查一下幫助文檔,久而久之,自然熟練。
下面是網友整理的20個最常用的Linux命令:
1. ls命令
ls命令是列出目錄內容(List Directory Contents)的意思。運行它就是列出文件夾里的內容,可能是文件也可能是文件夾。
2. lsblk命令
"lsblk"就是列出塊設備。除了RAM外,以標準的樹狀輸出格式,整齊地顯示塊設備。
3. md5sum命令
「md5sum」就是計算和檢驗MD5信息簽名。md5 checksum(通常叫做哈希)使用匹配或者驗證文件的文件的完整性,因為文件可能因為傳輸錯誤,磁碟錯誤或者無惡意的干擾等原因而發生改變。
4. dd命令
「dd」命令代表了轉換和復制文件。可以用來轉換和復制文件,大多數時間是用來復制iso文件(或任何其它文件)到一個usb設備(或任何其它地方)中去,所以可以用來製作USB啟動器。
6. history命令
「history」命令就是歷史記錄。它顯示了在終端中所執行過的所有命令的歷史。
7. sudo命令
「sudo」(super user do)命令允許授權用戶執行超級用戶或者其它用戶的命令。通過在sudoers列表的安全策略來指定。
8. mkdir命令
「mkdir」(Make directory)命令在命名路徑下創建新的目錄。然而如果目錄已經存在了,那麼它就會返回一個錯誤信息"不能創建文件夾,文件夾已經存在了"("cannot create folder, folder already exists")
9. touch 命令
「touch」命令代表了將文件的訪問和修改時間更新為當前時間。touch命令只會在文件不存在的時候才會創建它。如果文件已經存在了,它會更新時間戳,但是並不會改變文件的內容。
10. chmod 命令
「chmod」命令就是改變文件的模式位。chmod會根據要求的模式來改變每個所給的文件,文件夾,腳本等等的文件模式(許可權)。
11. chown命令
「chown」命令就是改變文件擁有者和所在用戶組。每個文件都屬於一個用戶組和一個用戶。在你的目錄下,使用"ls -l",你就會看到像這樣的東西。
12. apt命令
Debian系列以「apt」命令為基礎,「apt」代表了Advanced Package Tool。APT是一個為Debian系列系統(Ubuntu,Kubuntu等等)開發的高級包管理器,在Gnu/Linux系統上,它會為包自動地,智能地搜索,安裝,升級以及解決依賴。
13. tar命令
「tar」命令是磁帶歸檔(Tape Archive),對創建一些文件的的歸檔和它們的解壓很有用。
14. cal 命令
「cal」(Calender),它用來顯示當前月份或者未來或者過去任何年份中的月份。
16. cat命令
「cat」代表了連結(Concatenation),連接兩個或者更多文本文件或者以標准輸出形式列印文件的內容。
17. cp 命令
「」就是復制。它會從一個地方復制一個文件到另外一個地方。
18. mv 命令
「mv」命令將一個地方的文件移動到另外一個地方去。
19. pwd 命令
「pwd」(print working directory),在終端中顯示當前工作目錄的全路徑。
20. cd 命令
最後,經常使用的「cd」命令代表了改變目錄。它在終端中改變工作目錄來執行,復制,移動,讀,寫等等操作。
Ⅷ linux 下 文件的X許可權有什麼用
x許可權:擁有目錄的x許可權表示用戶可以進入該目錄成為工作目錄,能不能進入一專個目錄,只與屬該目錄的x許可權有關,如果用戶對於某個目錄不具有x許可權,則無法切換到該目錄下,也就無法執行該目錄下的任何命令,即使具有該目錄的r許可權。且如果用戶對於某目錄不具有x許可權,則該用戶不能查詢該目錄下的文件的內容,注意:指的是內容,如果有r 許可權是可以查看該目錄下的文件名列表或子目錄列表的。所以要開放目錄給任何人瀏覽時,應該至少要給與r及x許可權。更多Linux知識可參考《Linux就該這么學》。
Ⅸ Linux 從 0 到 1(一) - 終端簡介,文件與目錄以及相關操作,常用命令
模式:
當打開終端,第一行所見的就叫命令行提示符。我的是這樣的:
命令行提示符,顧名思義就是提示在其後面輸入命令。在你輸入新的一行命令前,這個命令提示符都會出現。分別解析一下上邊代表什麼意滲絕思:
oscar 這是當前用戶的名字。Linux是一個多用戶的操作系統,Windows也可以。不過Linux的多用戶管理更方便。我們一般建議每個使用Linux系統的用戶都創建答喊缺一個屬於自己的賬戶,便於隱私管理。
@ 這個符號我們應該不陌生,我們的電子郵件一般都是 [email protected] 這樣的不是嗎。這個@就表示英語里的at,是「在...裡面,落戶在...的,在其中」的意思。@前面是用戶名,後面是所在的域。
oscar-laptop 這是當前電腦/操作系統的名字。上面說了在@後面的是一個域,所以 oscar@oscar-laptop 就表示oscar-laptop這台電腦的oscar這個用戶。oscar-laptop這個名稱在安裝此Linux系統時可以任意指定。
: 這是分隔符,沒有什麼特別的涵義。
~ 這是當前所在目錄的名字,會隨著用戶進入不同目錄而改變。~表示當前用戶的家目錄,有點類似Windows系統的「我的文檔」這個目錄。
$ 指示你所具有的許可權的字元。在Linux系統中有兩種可能:
因此, oscar@oscar-laptop:~$ 的意思就是:
你目前是以oscar這個用戶登錄;你的電腦名稱為oscar-laptop;你目前位於 ~ 目錄下,就是你的用戶家目錄。你是普通用戶,擁有有限的許可權。
參數里可以包含多個參數,由空格隔開,也可以包含數字,字母,等等。可以說,參數沒有固定的格式,但是一般來說還是遵循一定的規范的。
如果我們要一次加好幾個短參數,可以用空格隔開,例如:
多個短參數也可以合並在一起,例如上面的命令等價於:
請注意:參數的字母的大小寫是有區別的,大寫的T和小寫的t通常表示不同意思。
如果有多個長參數,是不能像多個短參數那樣合並寫的。而是只能以空格隔開,例如:
當然我們也可以組合使用短參數和長參數,例如:
有時候,同一個意義的參數有短參數和長參數兩種形式,效果是一樣的,可以任選哪一種。
有一些參數你還需要給它賦一個值才行。而且短參數和長參數的賦值的方式不盡相同。
例如,短參數賦值,通常是這樣的:
表示把10賦值給p參數。
如果是長參數,則一般是這樣賦值:
長參數的方式更加容易理解,但是不如短參數那麼簡潔。
正如我們說過的,參數的形式沒有絕對的准則。我們上面給出的規則是一般的,有些命令的參數格式可能是我們沒怎麼見過的。
有些參數就不一樣,而且取決於命令。例如對於 ls 這個命令,假如後面帶了一個參數,這個參數是一個目錄的路徑名的話,那麼就會列出此目錄下的文件。
兩種類型的文件
簡單起見,我們把Linux下的文件分為兩大類:
在一個文件系統中,我們總有一個被稱為根目錄的東西,這個根目錄里包含了所有其他目錄和文件。Linux中有且只有一個根目錄,就是
是的,就是用一個斜杠表示。沒有比根目錄再高一階的目錄了,因為沒有目錄包含根目錄,根目錄就是Linux最頂層的目錄。
Linux系統安裝後,包含了很多的文件和目錄(雖然其實都是文件),我們很容易迷失在「茫茫文海」中。
當然我們不可能一下子列出Linux中的所有文件,那不現實。但是我們可以向你展示如何在Linux的目錄樹中來回穿梭,你可以知道此刻你位於哪個目清辯錄下。就好比能看懂Linux這個很大的「地圖」。
pwd 是英語Print Working Directory的縮寫,表示「列印當前工作目錄」。
which 命令:獲取命令的可執行文件的位置,which命令用於顯示一個命令的對應的可執行程序的位置。可能聽起來有點拗口。
在Linux下,每一條命令其實對應了一個可執行程序。我們在終端中輸入命令,再按回車的時候,其實就是執行了對應的那個程序。比如說,pwd命令對應的pwd程序就是存在於Linux中的。
which命令接受一個參數,也就是你想要知道其可執行程序位於哪裡的那個命令。
我們來測試一下,就拿pwd命令來測試好了:
得到:
因此,pwd命令對應的pwd這個可執行程序位於/bin目錄中。
我們也可以注意到Linux中的可執行程序和Windows中不太一樣,在Windows中可執行程序一般以.exe結尾,而Linux中一般是沒有後綴名的。
Linux中的可執行程序也不是都位於相同目錄的。我們可以來測試一下which命令本身對應的可執行程序位於哪裡:
我們可以看到,which命令對應的可執行程序which並不位於/bin中,而是在/usr/bin中。
Ubuntu的終端默認是有顏色標注的,一般來說:
如果在你的終端里沒有標明顏色,那麼你可以加上參數 --color=auto 來開啟顏色標注。如下:
如果你不需要顏色標注,那麼可以用 --color=none 來關閉顏色標注。如下:
當然,為了避免每次都輸入這么一串額外的參數,其實我們可以在一個配置文件里修改,使得永久顯示顏色或不顯示顏色。
在Linux,以點( . )開頭的文件是隱藏文件,不過這里不包括開頭的兩個 . 和 .. ,這兩個的含義如下:
- . (一個點)表示當前目錄。在當前情況下,就是 /home/oscar 。
- .. (兩個點)表示上一級目錄。因為當前目錄是/home/oscar,所以上一級目錄就是 /home 。
我們有一個大寫的參數 -A,它的作用和小寫的-a幾乎一樣,唯一不同就是-A不列出 . 和 .. 這兩個文件。
-l 這個參數算是ls命令最常用的了。加上-l參數使得ls命令列出一個顯示文件和目錄的詳細信息的列表。
當我們僅用ls -l時,列出的文件詳細信息中,文件的大小是以位元組為單位的。有時這不是太直觀。我們可以再加一個參數-h,h是humain readable的縮寫,表示「適合人類閱讀的」。所以我們的命令變成了:
t是time的縮寫。
命令也是很有用的,因為它可以讓我們知道文件和目錄所佔的空間大小。
雖然ls -l命令也可以顯示文件和目錄的大小,但是命令統計的才是真正的文件大小。命令會深入遍歷每個目錄的子目錄,把所有文件的大小都做一個統計。
是英語disk usage的縮寫,表示「磁碟使用/佔用」。
我們的命令也可以使用參數。
cat命令和less命令:顯示文件內容,這兩個命令只能顯示文件內容,並不能對文件內容進行修改。
一次性顯示文件的所有內容,如果你想要在顯示的文件內容上加上行號,那麼你可以加上 -n 這個參數。
分頁顯示文件內容
head命令和tail命令:顯示文件的開頭和結尾。
顯示文件開頭,默認情況下,head會顯示文件的頭10行。我們也可以指定顯示的行數,用 -n 這個參數:
就會顯示文件的頭5行。
顯示文件結尾。默認情況下,tail會顯示文件的尾10行。
我們也可以指定顯示的行數,用 -n 這個參數:
就會顯示文件的尾5行。
tail命令還可以配合 -f 參數來實時追蹤文件的更新:
這樣,就會檢查文件是否有追加內容,如果有,就顯示新增內容。
默認地,tail -f會每過1秒檢查一下文件是否有新內容。你也可以指定間隔檢查的秒數,用 -s 參數:
可以用快捷鍵 Ctrl + c 來終止tail -f 命令。
touch命令和mkdir命令:創建文件和目錄
創建一個空白文件。事實上,Linux沒有一個命令是專門用來創建一個空白文件的。touch命令其實一開始的設計初衷是修改文件的時間戳,就是可以修改文件的創建時間或修改時間,讓電腦以為文件是在那個時候被修改或創建的。但是touch命令如果後面跟著的文件名是不存在的,那麼它就會新建一個。
事實上,我們可以用touch命令同時創建多個文件:
如果我所要創建的文件的名字里有空格怎麼辦呢?
很簡單,加上雙引號:
創建一個目錄。
mkdir也可以同時創建好幾個目錄:
如果我所要創建的目錄的名字里有空格怎麼辦呢?
很簡單,加上雙引號:
我們還可以用 -p 參數來遞歸創建目錄結構。
比如:
cp命令和mv命令:拷貝文件和移動文件
拷貝文件或目錄
cp是英語的縮寫,表示「拷貝」。所以,顧名思義,此命令用於拷貝。cp命令不僅可以拷貝單個文件,還可以拷貝多個文件,也可以拷貝目錄。
復制文件到另一個目錄只需要把cp命令的第二個參數換成目錄名。
拷貝目錄
要拷貝目錄,只要在cp命令之後加上-R參數(注意是大寫的R)。拷貝的時候,目錄中的所有內容(子目錄和文件)都會被拷貝。
使用通配符*
*號(星號)是很常用的正則表達式的符號,被稱為「通配符」,
所以如果我們用如下命令:
那麼就會把當前目錄下所有txt文件拷貝到folder這個子目錄當中。
又如:
那麼就會把當前目錄下凡是以ha開頭的文件都拷貝到folder目錄中。
移動文件
mv是英語move的縮寫,表示「移動」。mv命令有兩個功能:
用mv命令來移動目錄很簡單,不需要額外的參數,就跟移動文件一樣:
當然,我們也可以使用通配符。
除了移動文件,mv命令還可以用於重命名文件。
事實上,Linux中沒有一個專門的命令用於重命名文件。之所以mv命令可以重命名文件,其實還是歸因於它的機制:移動文件。經過mv移動之後,原始文件變成了新的名字的文件,文件內容是不變的,這不就相當於重命名了嗎?
以上命令會將new_file重命名為renamed_file。
刪除文件和目錄
rm命令可以刪除一個文件,多個文件,目錄,甚至你的整個Linux系統(如果你願意的話)。
以上命令刪除當前目錄下的new_file_這個文件。
我們也可以同時刪除多個文件,只要用空格隔開每個文件即可。例如:
保險起見,用rm命令刪除文件時,可以加上 -i 參數,這樣對於每一個要刪除的文件,終端都會詢問我們是否確定刪除。i是英語inform的縮寫,表示「告知,通知」。
有兩種回答:
y:是英語yes的縮寫,表示「是」。那麼回車確認後,文件就刪除了。
n:是英語no的縮寫,表示「否」。那麼回車確認後,文件不會刪除。
如果在rm命令後加上-f參數,那麼終端不會詢問用戶是否確定刪除文件,不論如何,文件會立刻被強制刪除。
f是英語force的縮寫。
以上命令會強制刪除file文件。
r是英語recursive的縮寫,表示「遞歸的」。所以使用-r參數,可以使rm命令刪除目錄,並且遞歸刪除其包含的子目錄和文件。
這個命令也挺危險的,用得不好可能你的子目錄和文件都沒了。
以上命令會刪除one這個目錄,包括其子目錄和文件。
其實,也存在一個命令
看著和 rm -r 挺像的。但是這個命令有個局限性:只能刪除空的目錄。
創建鏈接
事實上,Linux下有兩種鏈接類型:
為了區分這兩種鏈接類型的不同,我們首先來談一談如Linux這樣的操作系統中文件在硬碟上的存放。
文件在硬碟上存儲時,大致來說(請注意我用了「大致來說」),每個文件有兩部分:
文件名的列表是儲存在硬碟的其他地方的,和文件內容分開存放,這樣方便Linux管理。
注意:為什麼我上面要用「大致說來」呢?因為此處我們簡化了描述,其實每個文件有三部分:
我們這里簡化地將文件分為兩部分:文件名和文件內容。因為我們不想把事情復雜化,我們想要理解兩種鏈接類型的區別,暫時只要知道這些就夠了。
每個文件的文件內容被分配到一個標示號碼,就是inode。因此每個文件名都綁定到它的文件內容(用inode標識)。原理如下圖:
下面我們學習如何創建硬鏈接和軟連接。
比之軟鏈接,硬鏈接的使用幾率小很多。但是我們還是要學習一下,畢竟可能會用到。
硬鏈接的原理:使鏈接的兩個文件共享同樣的文件內容,也就是同樣的inode。
所以一旦文件1和文件2之間有了硬鏈接,那麼你修改文件1或文件2,其實修改的是相同的一塊內容。只不過我們可以用兩個文件名來取到文件內容。
硬鏈接有一個缺陷:只能創建指向文件的硬鏈接,不能創建指向目錄的硬鏈接。但是軟鏈接可以指向文件或目錄。當然了,事實上,通過一些參數的修改,也可以創建指向目錄的硬鏈接,但是比較復雜,這里不再詳述。所以對於目錄的鏈接,我們一般都是用軟鏈接。
硬鏈接原理圖:
要創建硬鏈接,直接用ln命令,不加任何參數:
我們可以用ls -i命令查看一下(-i參數可以顯示文件的inode)。對於硬鏈接來說,刪除任意一方的文件,共同指向的文件內容並不會從硬碟上被刪除。
我們用ls -l命令查看文件信息的時候,第二列的那個2,其實是表示擁有相同inode號的文件數。不難理解,因為它們指向相同的文件內容,所以共享一個inode。
這個第二列的數字,一般來說對於普通文件,都是1,因為不同文件inode不同嘛。對於目錄來說,這第二列的數字標明目錄內所含文件數目。
其實,軟鏈接才是真正像我們在Windows下的快捷方式的,其原理很相似。
創建硬鏈接是ln不帶任何參數,但是要創建軟鏈接需要加上-s參數。s是symbolic(符號的)的縮寫。
file2指向的不再是file1的文件內容(和硬鏈接不同),而是指向file1的文件名。
軟鏈接原理圖:
用ls -l命令查看一下,會發現形式和之前的硬鏈接不一樣噢,file2的信息是這樣的: file2->file1,表示file2指向file1。
而且file2前面的許可權那裡的第一個字母變成了l,表示link(鏈接)。之前硬鏈接的時候是沒有l的,硬鏈接外表看起來就和普通文件類似。
我們用ls -l命令查看文件信息的時候,第二列的那個1,表示擁有相同inode號的文件數。不難理解,因為file2指向file1,它們並沒有指向同一塊文件內容,所以它們的inode號不相同。
軟鏈接的特點:
Ⅹ Linux系統中如何查看真實的可支持的最大文件打開數
在Linux下,我們使用ulimit -n 命令可以看到單個進程能夠打開的最大文件句柄數量(socket連接也算在裡面)。系統默認值1024。
對於一般的應用來說(象Apache、系統進程)1024完全足夠使用。但是如何象squid、mysql、java等單進程處理大量請求的應用來說就有 點捉襟見肘了。如果單個進程打開的文件句柄數量超過了系統定義的值,就會提到「too many files open」的錯誤提示。如何知道當前進程打開了多少個文件句柄呢?下面一段小腳本可以幫你查看:
lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more
在系統訪問高峰時間以root用戶執行上面的腳本,可能出現的結果如下:
# lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more
131 24204
57 24244
57 24231
56 24264
其中第一行是打開的文件句柄數量,第二行是進程號。得到進程號後,我們可以通過ps命令得到進程的詳細內容。
ps -aef |grep 24204
mysql 24204 24162 99 16:15 ? 00:24:25 /usr/sbin/mysqld
哦,原來是mysql進程打開最多文件句柄數量。但是他目前只打開了131個文件句柄數量,遠遠底於系統默認值1024。
但是如果系統並發特別大,尤其是squid伺服器,很有可能會超過1024。這時候就必須要調整系統參數,以適應應用變化。Linux有硬性限制和軟性限制。可以通過ulimit來設定這兩個參數。方法如下,以root用戶運行以下命令:
ulimit -HSn 4096
以上命令中,H指定了硬性大小,S指定了軟性大小,n表示設定單個進程最大的打開文件句柄數量。個人覺得最好不要超過4096,畢竟打開的文件句柄 數越多響應時間肯定會越慢。設定句柄數量後,系統重啟後,又會恢復默認值。如果想永久保存下來,可以修改.bash_profile文件,可以修改 /etc/profile 把上面命令加到最後。