① linux 中「.」和「./」命令分別是什麼意思
.表示執行的意思,就是執行這個文件。
./呢就表示執行當前目錄下的某個文件,就比如當前目錄有一個腳本a.sh,那麼./a.sh就表示執行它。
不加參數時,默認切換到用戶主目錄,即環境變數HOME指定的目錄,如root用戶的HOME變數為/root,那麼cd命令不帶參數時便切換到/root目錄下。
絕對路徑是從跟目錄開始的,如/root或/home/sgl,相對路徑是相對於當前路徑來說的。
假如當前目錄在/home/guo下面,那麼前面的/home/sgl的相對路徑就是../sgl,即當前目錄的上級目錄下的sgl目錄。
(1)linux命令兩個空格擴展閱讀:
參數r是指連同源文件中的子目錄一同拷貝。熟悉dos的讀者用起這個命令來會覺得更方便,畢竟比在dos下面要少敲兩下鍵盤。
../ 和 ./ 代表的 是上級目錄以及當前目錄。
處在當前目錄復制當前目錄下文件到別的目錄。
cp_文件名稱_別的文件目錄路徑。"_"是空格
舉個例子:在orz文件夾下有兩個子文件夾a和b,a中有文件x.c,b中無文件。
② Linux簡要命令
所有命令的參數都是使用空格分隔的,例如 ls -l 。在這里ls即為命令名, -l 為此命令的參數,在 ls 與 -l 之間有一個空格,但是在 -l 內部不能有空格。
由於Linux繼承於Unix,而Unix操作系統在當初設計的時候,鍵盤並不可靠,而且敲鍵盤比較費勁(比如容易卡住),因此大部分命令都非常簡短,一般是完整的英文單詞去掉母音字母(aeiou)後的縮寫,這是一個歷史問題。
整個操作系統的磁碟都被劃分為很多個目錄(directory)或稱文件夾(folder),還有文件(file)。每個目錄下還可以有子目錄(sub direcotory)與文件,這樣就形成了一個樹狀結構,樹根為 / ,被稱為根目錄(root directory)。
在 任何時候 ,你都有一個 當前目錄 (Working Directory),你所有的操作都是相對於當前目錄做出的,以當前目錄為基準的目錄名或者文件名叫做相對目錄。例如若你的當前目錄是/home/alex,在/home/alex目錄下有一個叫Public的子目錄,還有一個叫log.txt的文件,則Public與log.txt就是相對目錄名與相對文件名。
每個目錄與文件都有一個全路徑(full path)名,這個全路徑以/開頭,遍歷整個目錄,直到最終的目錄名或者文件名為止。例如在Linux中,/下有etc、home、usr、lib等子目錄,而home目錄下有alex目錄,alex目錄下有Public目錄。則在這里Public的全路徑名就是 /home/alex/Public ,注意在這里必須大小寫一致。
當然也有可能在其它的名叫Public的目錄或者文件,但是它們的全路徑肯定是不一樣的。就像在中國有一個叫Alex的人,在美國也有一個叫Alex的人,他們可以分別稱為中國的Alex與美國的Alex,這就是他們的全路徑 ;)。全路徑又叫絕對路徑(absolute path)。
在Linux里,每個用戶都有一個家目錄(home directory),一般情況下用戶的家目錄就是/home目錄下相應的用戶名,例如alex用戶的家目錄就是/home/alex。
大部分文件都有擴展名(extension name),擴展名即為文件名最後一個點號(.)後面的文字,擴展名一般都表示了文件的類型。例如在log.txt這個文件名中,txt是擴展名,表示這個文件是一個文本文件(TeXT file),而文本文件一般都是可以直接查看內容的。而在house.1.jpg這個文件名中,其擴展名為jpg,表示這個文件是一個JPG格式的圖形文件,而圖形文件一般都是需要使用圖形軟體打開才能看到其內容的。
pwd 是Pring Working Directory的縮寫,此命令的作用是列印(print)當前的(working)目錄(directory)的全路徑名。
當你打開終端或者切換目錄之後,你最好運行一下 pwd 命令,確認當前的目錄是不是你想要切換的目錄。
pwd 命令一般不需要參數。
ls 是LiSt的縮寫,此命令的作用是列舉目錄下的文件與子目錄。
當你不帶參數運行 ls 命令時,此命令將列舉出當前目錄下的文件與子目錄的名稱。
當你加上-l參數運行 ls 命令時,此命令將列舉出當前目錄下的文件與子目錄的名稱,以及它們的修改時間、大小等信息。
你也可以使用 ls 命令列舉其它目錄下的文件與子目錄的名稱,例如,運行 ls / 即可列舉出根目錄下的文件與子目錄名,運行 ls -l / 即可列舉出根目錄下的文件與子目錄名,以及它們的修改時間、大小等信息。
cd 是Change Directory的縮寫,此命令的作用是切換當前的工作目錄。
例如,運行 cd /home/alex 將把當前目錄切換為 /home/alex 。當然,cd後面的參數也可以是相對目錄。例如若當前目錄為 /home/alex ,而 /home/alex 目錄下有一個目錄叫Public,則運行 cd Public 則會將當前目錄變為 /home/alex/Public 。
如果cd命令後面不接任何參數,則將把當前目錄設置為用戶的家目錄。
cp 是CoPy的縮寫,此命令的作用是復制文件或者文件夾。
例如,運行 cp 1.txt 2.txt 將把當前目錄下的 1.txt 文件復製成 2.txt 文件。運行 cp 1.txt /tmp/2.txt 將把當前目錄下的 1.txt 復製成 /tmp/2.txt 文件,運行 cp 1.txt /home/alex/ 將把 1.txt 文件復制到 /home/alex/ 目錄下。
rm 是ReMove的縮寫,此命令的作用是刪除文件或者文件夾。
例如,運行 rm 2.txt 將刪除當前目錄下的 2.txt 文件,運行 rm /tmp/2.txt 將刪除 /tmp/2.txt 文件。
你也可以使用 rm 來刪除目錄,此時需要帶上-R參數(recursive,即遞歸的意思),例如 rm -R /tmp/abc 將刪除整個 /tmp/abc 目錄。
刪除時一般都會詢問你讓你確認是否要刪除,如果你不需要被提問確認,可以加上-f參數,例如 rm -f /tmp/1.txt 。
mv 是MoVe的縮寫,此命令的作用是移動文件或者文件夾,或說是為文件或者文件夾改名。注意,一旦移動成功,則原來的文件或者文件夾就不存在了。
例如,運行 mv 1.txt 2.txt 將把當前目錄下的 1.txt 改名為 2.txt ,運行 mv 1.txt /tmp/2.txt 將把當前目錄下的 1.txt 移動成為 /tmp/2.txt 文件。
mkdir 是MaKe DIRectory的縮寫,此命令的作用是創建目錄。
例如 mkdir abc 將在當前目錄下創建一個名為 abc 的目錄, mkdir /tmp/xyz123 將在 /tmp 目錄下創建一個名為 xyz123 的目錄。
mkdir 可以帶-p參數,這樣即可同時創建多層目錄,例如 mkdir -p a/b/c/123 將在當前目錄下創建a目錄,在a目錄下創建b目錄,在b目錄下創建c目錄,在c目錄下創建123目錄。
在Linux下還有幾個特殊的目錄,它們分別是:
有一個特殊的符號表示文件名匹配,即 * 。例如 cp *.txt /tmp/ 將把當前目錄下的以 .txt 結尾的文件名都復制到 /tmp/ 目錄下, ls a*.txt 將列舉出當前目錄下所有以 a 開頭,以 .txt 結尾的文件名與目錄, rm /tmp/1*log 將刪除 /tmp 目錄下所有文件名以 1 開頭,以 log 結尾的文件。
所有以 . 開頭的文件與目錄都表示是隱藏文件 / 目錄,例如 .vimrc ,例如 .. ,在 ls 時一般是看不到這些文件與目錄的,如果想要看到,需要使用 ls 的 -a 參數,例如 ls -al 。
Linux下有大量命令/軟體,在此我們僅列舉幾個可能會用到的,可以在使用過程中慢慢熟悉。
③ 關於 linux 命令中的 空格 問題。什麼時候加空格。什麼時候不加空格。
這個真的不好說,你是剛接觸Linux,剛開始輸入的命令一般都是通過空格隔開的。但是版也有特殊的,例如date命令權,如果你想以全數字的形式輸出,就要這樣:
[root@localhost ~]# date +%Y%m%d
20101127
這個命令裡面空格少一個多一個都是錯的,這種形式在Linux的備份中常用。這樣的情況你現在遇到的還較少。如果你想學的更深入一點,例如Shell編程,那麼一定要注意空格的事,少一個多一個都會報錯。不過,不用害怕,你接觸的越多,明白的也越多,理解的也越深,現在你不用追究這些是什麼原因,慢慢的你會明白的。
④ 如何在linux系統下對文件夾名有空格的文件
在Windows操作系統中可以輕易地創建\移動\刪除文件夾名帶有空格的文件夾,
而在linux則需要進行一些特殊的處理才能實現以上功能.
(1)創建文件夾
mkdir my\ first
這條命令創建了文件夾"my first",文件夾名中my和first之間有一個空格,在命令行中需要
添加一個"\"符號和一個空格的組合
mkdir my\ \ tow
這條命令創建了文件夾"my tow",文件夾名中my和tow之間有兩個空格,在命令行中需要
添加兩個"\"與空格的組合
(2)移動文件夾
mv my\ first /tmp
這條命令將文件夾"my first"移動到文件夾tmp下
mv my\ \ tow /tmp
這條命令將文件夾"my tow"移動到文件夾tmp下
(3)刪除文件夾
rm -r my\ first
這條命令將文件夾"my\ first"刪除
rm -r my\ \ tow
這條命令將文件夾"my\ \ tow"刪除
(4)進入文件夾
cd my\ first
這條命令可以進入文件夾"my first"
cd my\ \ tow
這條命令可以進入文件夾"my tow"
(5)創建壓縮文件
tar czf my\ first.tar.gz my\ first
創建壓縮文件"my first.tar.gz"
tar czf my\ \ tow.tar.gz my\ \ tow
創建壓縮文件"my tow.tar.gz"
tar cjf my\ first.tar.bz2 my\ first
創建壓縮文件"my first.tar.bz2"
tar cjf my\ \ tow.tar.bz2 my\ \ tow
創建壓縮文件"my\ \ tow"
(6)解壓壓縮文件
tar xzf my\ first.tar.gz
解壓壓縮文件"my first.tar.gz"
tar xzf my\ \ tow.tar.gz
解壓壓縮文件"my tow.tar.gz"
tar xjf my\ first.tar.bz2
解壓壓縮文件"my first.tar.bz2"
tar xjf my\ \ tow.tar.bz2
解壓壓縮文件"my tow.tar.bz2"
總結:本文實現了對文件夾名中有空格的文件進行創建\移動\刪除\進入\壓縮\解壓
等操作,相對於文件夾名中有空格的文件夾來說,在輸入命令時需要在文件夾名之間
插入"\"與空格的組合,文件夾名中有幾個空格就需要加幾個組合.
⑤ linux sed如何將每行的第2個空格刪除,其餘保留
時區是固定的,可以一起做替換,比如sed 's/ -0800/-0800/g' 這樣就能去掉這個空格了
⑥ Linux diff 命令 比較兩個文件不看空格, 並行列印 的命令
的確會有這個問題,但嘗試了好一陣後發現,實際上也不是問題。
要解決此問題,加版個選項--suppress-common-lines即可。權
diff-wy--suppress-common-linesa.txtb.txt
或者:
sdiff-W--suppress-common-linesa.txtb.txt
為什麼說不是問題呢?看看下圖這個例子(a.txt中包含TAB和空格,b.txt里包含空格)。
得出的結論就是:
加了-y選項後,無論行內容是否相同都會列印。但注意看一下,行內容不相同的情況,兩端列印時中間會有一個豎線分隔。
加了-w選項後,比較結果其實是完全相同的,不存在有豎線分隔的兩端列印,從diff命令返回值(通過$?取得)也可以看出。
所以,想到用--suppress-common-lines選項抑制相同行的輸出。
⑦ linux的命令帶的選項,有些是一個杠-,有些是兩個杠--,這些有沒有什麼規律的
一、find 命令格式
1、find命令的一般形式為;
find pathname -options [-print -exec -ok ...]
2、find命令的參數;
pathname: find命令所查找的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。
-print: find命令將匹配的文件輸出到標准輸出。
-exec: find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式為'command' { } \;,注意{ }和\;之間的空格。
-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該參數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓用戶來確定是否執行。
3、find命令選項
-name
按照文件名查找文件。
-perm
按照文件許可權來查找文件。
-prune
使用這一選項可以使find命令不在當前指定的目錄中查找,如果同時使用-depth選項,那麼-prune將被find命令忽略。
-user
按照文件屬主來查找文件。
-group
按照文件所屬的組來查找文件。
-mtime -n n
按照文件的更改時間來查找文件, - n表示文件更改時間距現在n天以內, n表示文件更改時間距現在n天以前。find命令還有-atime和-ctime 選項,但它們都和-m time選項。
-nogroup
查找無有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。
-nouser
查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。
-newer file1 ! file2
查找更改時間比文件file1新但比文件file2舊的文件。
-type
查找某一類型的文件,諸如:
b - 塊設備文件。
d - 目錄。
c - 字元設備文件。
p - 管道文件。
l - 符號鏈接文件。
f - 普通文件。
-size n:[c] 查找文件長度為n塊的文件,帶有c時表示文件長度以位元組計。
-depth:在查找文件時,首先查找當前目錄中的文件,然後再在其子目錄中查找。
-fstype:查找位於某一類型文件系統中的文件,這些文件系統類型通常可以在配置文件/etc/fstab中找到,該配置文件中包含了本系統中有關文件系統的信息。
-mount:在查找文件時不跨越文件系統mount點。
-follow:如果find命令遇到符號鏈接文件,就跟蹤至鏈接所指向的文件。
-cpio:對匹配的文件使用cpio命令,將這些文件備份到磁帶設備中。
另外,下面三個的區別:
-amin n
查找系統中最後N分鍾訪問的文件
-atime n
查找系統中最後n*24小時訪問的文件
-cmin n
查找系統中最後N分鍾被改變文件狀態的文件
-ctime n
查找系統中最後n*24小時被改變文件狀態的文件
-mmin n
查找系統中最後N分鍾被改變文件數據的文件
-mtime n
查找系統中最後n*24小時被改變文件數據的文件
4、使用exec或ok來執行shell命令
使用find時,只要把想要的操作寫在一個文件里,就可以用exec來配合find查找,很方便的
在有些操作系統中只允許-exec選項執行諸如l s或ls -l這樣的命令。大多數用戶使用這一選項是為了查找舊文件並刪除它們。建議在真正執行rm命令刪除文件之前,最好先用ls命令看一下,確認它們是所要刪除的文件。
exec選項後面跟隨著所要執行的命令或腳本,然後是一對兒{ },一個空格和一個\,最後是一個分號。為了使用exec選項,必須要同時使用print選項。如果驗證一下find命令,會發現該命令只輸出從當前路徑起的相對路徑及文件名。
例如:為了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec選項中
# find . -type f -exec ls -l { } \;
-rw-r--r-- 1 root root 34928 2003-02-25 ./conf/httpd.conf
-rw-r--r-- 1 root root 12959 2003-02-25 ./conf/magic
-rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README
上面的例子中,find命令匹配到了當前目錄下的所有普通文件,並在-exec選項中使用ls -l命令將它們列出。
在/logs目錄中查找更改時間在5日以前的文件並刪除它們:
$ find logs -type f -mtime 5 -exec rm { } \;
記住:在shell中用任何方式刪除文件之前,應當先查看相應的文件,一定要小心!當使用諸如mv或rm命令時,可以使用-exec選項的安全模式。它將在對每個匹配到的文件進行操作之前提示你。
在下面的例子中, find命令在當前目錄中查找所有文件名以.LOG結尾、更改時間在5日以上的文件,並刪除它們,只不過在刪除之前先給出提示。
$ find . -name "*.conf" -mtime 5 -ok rm { } \;
⑧ Linux:cut、sort都是針對列操作,有沒有對行操作的命令
sort命令用於對文檔內容進行排序處理,命令使用格式如下:
sort 選項 文件1 文件2 ......
sort命令的常用選項包括:
-t 指定分割文本的分隔符
-k 指定按照分割後文本內容的第幾列排序
-r 結果降序排序
-n 把文本轉換為數值再排序
使用sort命令的示例如下:
①sort -rn -k 2 f1:按照文檔第二列的數值大小進行降序排序。-n表示按照數值大小比較排序,默認為升序,加上-r表示為降序,-k指定按照第幾列排序。
②sort -rn -u -k 2 f1:-u表示去除重復行。
③sort -t ":" -rn -k 2 f1:-t指定列之間的分隔符為「:」,不寫則默認空格作為分隔符。
cut命令用於顯示按照分隔符截取分指定列的文本內容,命令使用格式如下:
cut 選項 文件1 文件2 ......
cut命令的常用選項包括:
-d 指定文本分隔符
-f 指定顯示分割後文本的第幾列
cut -d " " -f 3 f1:截取文檔中的第三列。-d指定分隔符為一個空格,-f指定顯示第幾列。但是,cut命令對分隔符連續較多的情況,審核較為死板,很難按照我們想要的效果實現截取,如有以下文件:
aaa 111 ccc
bbb 222 ccc
每行文字中各列間的空格數不同,「aaa」與「111」之間有一個空格,而「bbb」與「222」之間有兩個空格,在使用cut命令時,如果設定分隔符為一個空格,希望截取用空格隔開的文字時,對於行「bbb 222」由於文字中存在二個空格,其中的第二個空格則被視為第二列,所以cut命令不會把「222」視為第二列而是第三列。因此,cut在截取數量不確定的空格隔開的文字時十分不便。所以一般在連續分隔符個數不統一時,更習慣使用awk命令。