一、 基本命令
0x001命令格式
命令格式:命令 [选项] [参数]
有些命令并不遵守这个格式,中括号表示可省略
0x002 ls -- list directory content
ls是可以列出当前文件夹下的文件和文件夹
- 命令格式:ls [-ABCFGHLOPRSTUW@abcdefghiklmnopqrstuwx1] [file ...]
- 常用命令
-
ls -l:按列列出当前文件夹下的文件,同时显示文件的所有信息 -
ls -a:列出当前文件夹下的所有文件,包括.和..和隐藏文件 -
ls -al: 命令混用(前两个命令功能的合并\顺序并不影响)
-
0x003 cd
移动到某个目录
- 命令格式:cd [dir]
- 常用命令:
-
cd ..:上一级目录 -
cd /:根目录 -
cd ~:当前用户目录 -
cd -:进入上一次目录
-
- 说明:
- 相对地址跳转:
cd dirname|cd ./dirname:跳转到当前目录下的dirname文件夹 - 绝对地址跳转:
cd /dirname:跳转到/dirname目录下
- 相对地址跳转:
0x004 mkdir -- make directories
递归创建文件夹
- 命令格式:mkdir [-pv] [-m mode] directory_name ...
- 常用命令:
-
mkdir dirname:在当前目录下创建dirname文件夹 -
mkdir dirname1/dirname2:在当前目录下的dirname1目录下创建dirname2,如果dirname1不存在,则先创建dirname1再创建dirname2
-
0x005 pwd -- persent working directory
查看当前目录
0x006 rmdir -- remove empty directory
删除空白目录
- 命令格式:rmdir [-p] directory ...
- 常用命令:
-
rmdir dirname:删除当前文件夹下的dirname -
rmdir dirname\dirname:删除当前文件夹下的dirname下的dirname
-
0x007 cp --copy
复制文件
-命令格式:
-
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:复制filename为filename2 -
cp -a filename filename2:复制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:强制删除filename,问都不问
-
二、命令是什么?
0x001 实验:
实验环境:
-
语言:C语言
-
系统:MAC
-
windows系统实验结果差不多一致,不通的只是环境变量的设置方法和命令程序所在的文件夹不同而已
-
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并将可执行文件重命名为mls
- 将mls所在的文件夹加入环境变量:.bash_profile
Paste_Image.png
- 命令行输入: mls -a
Paste_Image.png
说明:
c语言的main函数中存在两个形参,分别是argc和argv[],argc参数是数组长度,argv则是传入的参数,在该程序中,argc为2,argv[1]为-a,从代码可以看出,这里直接跳过了数组中的第一个值,因为第一个值代表该程序所在的位置。
由这个实验可以看出,所谓的命令其实不过是一个一个的程序,我们在启动这些程序的时候需要输入一些参数,比如mls -a 中的 -a来实现该程序的特定功能,也就是说,其实我们也可以自己实现这些工具来替换系统中的其他命令,比如我可以将我的mls实现的功能等同ls,则就可以替换系统中的ls了。不过没有这种必要,这里只是为了说明命令是什么,如果实现而已。
在命令行中键入:
echo $PATH
可以看出:
Paste_Image.png
我们到该目录下看看
cd /bin
Paste_Image.png
可以看到,刚刚执行的那些命令都在这儿,尝试直接调用执行:
./ls
Paste_Image.png
与之前执行的结果一致








网友评论