一、Linux中指令的存在意义
Linux中,通过输入指令来让操作系统执行,以此达到控制操作系统的目的,类似于Windows中的双击,右键新建文件,新建文件夹等
1.补:关于屏幕的几个操作指令
①清屏指令
clear
回车
可以实现清理当前屏幕
②全屏指令
直接按:
alt+回车
可以将当前控制台窗口置为全屏,再按一次可以退出
二、目录展示指令ls
2.1基本作用及使用规范
显示当前目录下的所有目录和文件(类似双击文件夹)
使用规范:
ls
回车
效果:
其中,蓝色的表示目录,黑色的是普通文件,绿色的是可执行文件
2.2命令的选项 -l
使用规范:
ls -l
回车
可以显示比ls更详细的信息,效果如:
其中的 -l 我们称之为命令的选项
2.2补:显示的第一列可以表示文件类型
ls -l展示的内容都是文件属性(结合4.2理解)
第一列中,d开头为目录,-开头为普通文件
2.3添加显示隐藏文件 -a
-a的作用是可以显示所有文件
使用规范:
ls -a
回车
效果图:
2.3补:①关于命令的选项的其他问题
1>命令中的选项,一次可以传递多个
2>选项可以拼在一起,顺序任意
②ls -a显示的时候,有两个特殊的目录 . 和 ..
在Linux下,任何一个目录都有.和..这两个特殊目录,包括根目录和新建的空目录
根目录的..指向的不是上级路径,而是指向自己
1> . 为特殊目录:当前目录
2> .. 为特殊目录:上级目录
③Linux中的隐藏文件
Linux中,以。
开头的文件我们叫做隐藏文件 (包含文件/文件夹),且我们可以自己创建隐藏文件
2.4ls可以显示指定路径下的文件
使用规范:
ls+[路径]
回车
效果图:
当然,也可以添加命令的选项来显示更多的信息
2.5 -d 可以显示当前目录具体信息,而不进入目录
使用规范:
ls -d
回车
效果图:
2.补:关于指令ll
实际上ll是一种指令的简写,相当于
ls -l
他们实际效果是一样的
三、文件夹创建指令mkdir
3.1功能与使用规范
可以创建当前目录下新的“目录”(类似新建文件夹)
使用规范:
mkdir+[目录名]
回车
效果图:
3.2加上选项-p可以创建一串路径
如mkdir -p ./dir1/dir2/dir3
使用规范:
mkdir -p+[一串路径]
回车
效果图:
若是原来就有new1这个文件夹的话,会自动找到它的位置,并在其中继续寻找new2;
若是没找到就创建接下来的一串路径,找到了就进入之后再找
四、文件创建指令touch
4.1指令的基本作用与使用规范
①指定路径下新建普通文件
②更新文件的时间
使用规范:
touch+[文件名]
回车
效果图:
4.1补:可以一次创建多个文件
以空格分隔,一次可以创建多个文件
效果图:
4.2结合Windows说明文件的组成
在Windows中,我们新建一个0字节的空白文档,会不会占用磁盘空间呢?
答案是会的,文件属性占用了磁盘空间
其实,文件=文件内容+文件属性
我们在对文件进行操作的时候,无非是两种:
①对文件内容进行操作
②对文件属性进行操作
五、常看当前路径指令pwd
5.1使用规范
全称是:print work directory
使用规范:
pwd
回车
效果图:
5.2对比Linux和Windows中的路径
这是Windows下的一种路径:
这是Linux中的一种路径:
结合起来看,对于Windows我们比较熟悉,而在Linux中我们发现:路径起始于“/”,因此“/”实际上就是Linux中的根目录
此外,在Windows中 \ 是路径分隔符
而在Linux中 / 是路径分隔符
六、路径切换指令cd
6.1作用及使用规范
cd指令可以进入到指定的目录下
使用规范:
cd+[路径]
回车
效果图:
6.2cd配合.和..使用
cd配合..可以达到返回上级目录的效果(类似于“我的电脑”当中的回退)
cd配合.路径不变
实际上,诸如
cd test11等指令都是简写,全写应该是cd ./test11
6.3Linux的目录结构
综合来看,Linux的目录结构于Windows中几乎一致,整体是一颗多叉树的形状,且具有如下特点:
①这个多叉树的叶子节点,一定是空目录或者文件
②一个叶子节点只有一个父节点
③一个父节点可以有多个叶子节点
从这些特点来分析,就可以解决:为什么路径可以定位一个文件?
多叉树的目录结构决定了:路径具有唯一性
实际上,touch,ls,mkdir等操作也都可以用路径来进行定位操作
6.3补:树状显示指令tree
(需要在root用户下安装,指令为yum install -y tree)
使用规范:
tree+[路径]
回车
效果图:
整体来看更加直观
tree也可以结合.和..来使用
6.4绝对路径和相对路径
在上述例子中,类似于
/root/test_1_16
等都是绝对路径,而像
../test_1_16
../test_11
等都是相对路径
例如我们希望进入到上级目录,可以采用
(相对路径)①cd ..
(绝对路径)②cd+[上级目录的绝对路径]
两种方式都可以
对比一下绝对路径和相对路径:
①一般命令行操作的时候,更趋向于用相对路径,因为方便
②绝对路径在任何路径下都能找到指定文件,常在配置文件中使用
③诸如/root/../test.c这种混合体,其实是一种简写的绝对路径
6.5cd的特殊用法:跳转到最近的上一次路径
使用规范:
cd -
回车
效果图:
6.6家目录及快捷跳转到家目录的指令
家目录的理解可以结合Windows当中的“桌面”
在Windows当中,桌面就是一个文件夹,也是家目录
而在Linux中,用户登录Linux后,默认所处的路径就是对应用户的家目录,
不同用户的家目录也各不相同,如
①root用户首次登陆所处的路径,就是root用户的家目录
效果图:
②普通账号首次登陆所处的路径,就是普通账号的家目录
效果图:
快捷跳转到家目录的指令:
cd ~
回车
效果图:
6.补:分屏操作的方式
右键当前机器窗口->复制SSH渠道->拖动
七、删除空目录指令rmdir
这个指令只能删除空目录,非空目录或是文件都删不了
使用规范:
rmdir+[空目录名]
回车
效果图:
八、通用删除指令rm
8.1基本功能及其使用规范
rm可以用来删除普通文件
使用规范:
rm+[文件名]
回车
效果图:
8.1补:管理员账户下的询问
观察可以发现:8.1中的例子里多出来一句“remove regular empty file ‘show1.c’?”
这是操作系统为了确保安全设置的一条提示,只在root用户下会询问,每当要删除一个文件/目录的时候,都会弹出一句,我们需要输入“y”或者“n”来决定是否进行删除
8.2通用删除选项 -r
加上这个选项以后,可以用来删除:非空目录,空目录以及文件
这是一个递归式删除,在删除非空目录时体现的尤为明显
使用规范:
rm -r+[目录名/文件名]
回车
效果图:
rm -r还可以用来删除隐藏文件
8.3强制删除选项-f
观察8.2中的例子会发现,在删除一个非空目录时询问的次数会变得很多,那么可不可以跳过这些询问过程呢?
答案是可以的,只要使用选项-f即可
使用规范:
rm -r -f+[目录名/文件名]
回车
效果图:
8.3补:万万不敢直接 rm -rf /删除根目录,会导致OS崩溃
8.补:常用功能
①通配符*
如果我们在一个目录中有多个以test开头的文件/目录,我们希望一并删除
可以直接(假如以show开头)
rm -rf show*
回车
效果如图:
其中用到的*也叫通配符,可以表示任何内容
所以rm -rf * 可以把当前目录删空
②热键:双击tab
主要作用是辅助补齐指令,效果如:
1>输入who以后,双击tab,会展示who开头的所有指令,并让用户从从who的后面继续输入;
如果who开头的只有一种指令,则会直接补齐该条指令并添加空格
2>如ls ../按两下tab会展示上级所有文件,并让用户继续输入
3>未输入情况下双击tab,会展示Linux中所有指令,因为指令太多,会分批次显示,默认显示第一批:
按回车继续加载
不需要时可以按“Q”键退出
③程序快速中止Ctrl+C
当程序失控的时候,按住crtl+c可以强制中止运行
九、手册查看指令man
9.1man的功能与使用规范(需root下安装yum install -y man-pages)
man是一个在线使用手册,可以
①man ls等查看指令含义
②man 3 strstr 查3号手册中C语言接口
9.1补:printf在Linux中也是一条指令
例如,
printf "%d-%f-%c-%s\n" 10,1.1,'c',"cpp"
回车
直接打印出“10-1.1-c-cpp”
9.2man中的序号手册
在man中有多个序号手册,其中常用的有三个
1号为查找指令,2号为查找系统调用,3号为查找库函数(C语言库函数适合在这里查找)
使用规范:
man+[手册序号]+[查找名]
回车
十、文件复制指令cp
10.1使用规范和使用举例
使用规范:
cp+[被拷贝文件名/路径]+[拷贝文件名/路径]
回车
使用起来,如
①cp test.c hello.c
-> cp+[被拷贝文件名/路径]+[拷贝文件名]
会在指定目录中(默认为当前目录)新建并拷贝[被拷贝文件名/目录]
会在当前目录新建hello.c,再把test.c的内容拷贝到hello.c中
②cp test.c ../
-> cp+[被拷贝文件名/路径]+[拷贝路径]
会把[被拷贝文件名/目录]拷贝到指定的目录下
会把test.c复制到上级目录
10.2非空目录的拷贝
cp不能直接复制非空目录,需要加上选项-r
这样以后,就可以递归复制非空目录了
效果图:
注: 若要复制到的目录已存在,并且其中含有与被复制目录中内容相同的文件/目录,在root下会逐个询问是否覆盖,即使加-f选项也会问;但是普通用户下不会询问
10.补:Linux中同一目录下也不支持同名文件
十一、Linux中创建并运行C语言程序的操作步骤
书写并编译运行C语言程序需要四个指令,分别是nano,cat,gcc编译
11.1nano指令(需先安装 yum install -y nano)
如
nano test.c
作用是:以记事本的方式打开test.c
写完以后ctrl+X离开,离开前会问是否保存,用y/n输入指令决定是否保存,回车
11.2cat指令
如
cat test.c
作用是:打开并查看test.c的内容
11.3gcc编译
如
gcc test.c -o mytest
意思是利用gcc编译器编译test.c的内容,并将编译后的可执行程序保存为名叫mytest的文件
下一步直接运行这个可执行程序即可
注:这个可执行程序不能简写成
myset
直接回车,必须用路径,最简也是./myset