一霉撵、 基本命令
0x001命令格式
命令格式:命令 [選項] [參數(shù)]
有些命令并不遵守這個格式镰吆,中括號表示可省略
0x002 ls
-- list directory content
ls
是可以列出當(dāng)前文件夾下的文件和文件夾
- 命令格式:ls [-ABCFGHLOPRSTUW@abcdefghiklmnopqrstuwx1] [file ...]
- 常用命令
-
ls -l
:按列列出當(dāng)前文件夾下的文件帘撰,同時顯示文件的所有信息 -
ls -a
:列出當(dāng)前文件夾下的所有文件,包括.和..和隱藏文件 -
ls -al
: 命令混用(前兩個命令功能的合并\順序并不影響)
-
0x003 cd
移動到某個目錄
- 命令格式:cd [dir]
- 常用命令:
-
cd ..
:上一級目錄 -
cd /
:根目錄 -
cd ~
:當(dāng)前用戶目錄 -
cd -
:進(jìn)入上一次目錄
-
- 說明:
- 相對地址跳轉(zhuǎn):
cd dirname
|cd ./dirname
:跳轉(zhuǎn)到當(dāng)前目錄下的dirname
文件夾 - 絕對地址跳轉(zhuǎn):
cd /dirname
:跳轉(zhuǎn)到/dirname目錄下
- 相對地址跳轉(zhuǎn):
0x004 mkdir
-- make directories
遞歸創(chuàng)建文件夾
- 命令格式:mkdir [-pv] [-m mode] directory_name ...
- 常用命令:
-
mkdir dirname
:在當(dāng)前目錄下創(chuàng)建dirname文件夾 -
mkdir dirname1/dirname2
:在當(dāng)前目錄下的dirname1
目錄下創(chuàng)建dirname2
万皿,如果dirname1
不存在摧找,則先創(chuàng)建dirname1
再創(chuàng)建dirname2
-
0x005 pwd
-- persent working directory
查看當(dāng)前目錄
0x006 rmdir
-- remove empty directory
刪除空白目錄
- 命令格式:rmdir [-p] directory ...
- 常用命令:
-
rmdir dirname
:刪除當(dāng)前文件夾下的dirname
-
rmdir dirname\dirname
:刪除當(dāng)前文件夾下的dirname
下的dirname
-
0x007 cp
--copy
復(fù)制文件
-命令格式:
cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory
常用命令
cp filename filename2
:復(fù)制filename
為filename2
cp -a filename filename2
:復(fù)制filename
為filename2
,所有信息都一樣牢硅,包括時間
0x008 mv
--move
剪切蹬耘、改名
-
命令格式:
- mv [-f | -i | -n] [-v] source target
- mv [-f | -i | -n] [-v] source ... directory
-
常用命令格式:
-
mv source target
:重命名source
為target
-
mv source tatgetdir/target
:剪切source
到targetdir
-
0x009 rm
-- remove
刪除文件
命令格式:rm [-dfiPRrvW] file ...
-
常用命令格式:
-
rm -rf filename
:強(qiáng)制刪除filename
,問都不問
-
二减余、命令是什么综苔?
0x001 實驗:
實驗環(huán)境:
語言:C語言
系統(tǒng):MAC
windows系統(tǒng)實驗結(jié)果差不多一致,不通的只是環(huán)境變量的設(shè)置方法和命令程序所在的文件夾不同而已
xcode新建一個c語言項目
//
// main.c
// CommandLine
//
// Created by 冬追夏趕 on 9/23/16.
// Copyright ? 2016 lyx. All rights reserved.
//
#include <stdio.h>
int main(int argc, const char * argv[]) {
// insert code here...
for(int i=1;i<argc;i++){
printf(argv[i]);
printf("\n");
}
return 0;
}
- build并將可執(zhí)行文件重命名為mls
- 將mls所在的文件夾加入環(huán)境變量:.bash_profile
- 命令行輸入: mls -a
說明:
c語言的main
函數(shù)中存在兩個形參位岔,分別是argc
和argv[]
如筛,argc
參數(shù)是數(shù)組長度,argv
則是傳入的參數(shù)抒抬,在該程序中杨刨,argc
為2
,argv[1]
為-a
,從代碼可以看出擦剑,這里直接跳過了數(shù)組中的第一個值拭嫁,因為第一個值代表該程序所在的位置。
由這個實驗可以看出抓于,所謂的命令其實不過是一個一個的程序做粤,我們在啟動這些程序的時候需要輸入一些參數(shù),比如mls -a
中的 -a
來實現(xiàn)該程序的特定功能捉撮,也就是說怕品,其實我們也可以自己實現(xiàn)這些工具來替換系統(tǒng)中的其他命令,比如我可以將我的mls
實現(xiàn)的功能等同ls
巾遭,則就可以替換系統(tǒng)中的ls
了肉康。不過沒有這種必要闯估,這里只是為了說明命令是什么,如果實現(xiàn)而已吼和。
在命令行中鍵入:
echo $PATH
可以看出:
我們到該目錄下看看
cd /bin
可以看到,剛剛執(zhí)行的那些命令都在這兒涨薪,嘗試直接調(diào)用執(zhí)行:
./ls
與之前執(zhí)行的結(jié)果一致