简而言之,平时我们说的Shell就是命令行的意思。通常在Linux环境下默认是Bash shell。Windows是cmd命令
无论是在Linux还是Windows下,它们都是命令行解释器,它解释由用户输入的命令传递到内核中去执行。是用户和操作系统交互的接口。同时也拥有高级语言的一些特性,比如循环啊等等。这里目前主要是让自己熟悉一下Linux环境下的shell命令的使用方法
二、Shell的基本操作
Remark:
首先在这里说明一下学习环境,我这里使用的是windows 10系统下git的shell,所以它的根目录就git的目录下
Step:
Create file: vi a.java -> press i-> input anything you want -> press ESC -> press : -> input wq -> press Enter
Check file: dir -> vi a.java -> press ESC -> press : -> input q -> press Enter
Demonstration:
输入 命令行 vi a.java
这是一个创建文件的命令。新建一个a.java文件,然后它会跳进这个界面
当你进入这个界面的时候,就相当于你已经打开了这个java文件,等待你的编辑。但这个时候你还是不能编辑的,你需要按键盘的i键开启编辑模式。然后你就可以输入一些文字去保存它。比如我输入了create file test,然后按键盘的ESC键,再按:(冒号),输入wq,然后回车,系统就会保存你刚刚创建的文件和文字。
这时候,我们就可以通过在文件所在目录的路径下输入命令行 dir,就可以在该目录下找到新建的文件了
再次输入命令行 vi a.java,我们就可以看到原来保存的文字了。
Step:
create directory: mkdir dir
check directory:dir->cd dir
Demonstration:
首先输入命令行 mkdir dir ,这里在该目录下创建了一个dir文件夹。
然后再输入命令行 dir ,去展示当前目录下所有的文件和目录,我们可以看到该目录
要怎么证明那真的是一个目录呢,而不是一个文件。首先它第一点就是没有后缀,另外我们可以通过命令行cd dir 走进这个目录去证明
删除一个文件&文件夹
Step:
remove file :dir -> rm a.java
check effect :dir
Demonstration:
首先我们输入命令行dir,可以看到目录下有一个a.java文件
然后我们运行命令行 rm a.java ,这句命令运行之后,就会将a.java文件删除
再运行dir去检查
Step:
remove directory :dir -> rm dir -r
check effect :dir
Demonstration:
首先我们输入命令行 dir ,我们可以看到目录下有一个dir文件夹
然后我们运行命令行 rm dir -r(如果我们没有加参数-r,它会提示删除失败 rm: cannot remove 'dir' : Is a directory )
然后该文件夹就被删除了
其实对文件和文件夹的移动是差不多的。而已移动和重命名其实使用的是同一个命令行 mv
Step:
mv the dir : dir -> mv dir1 directory1;mv dir2 directory2 -> mv directory1 dir3;mv directory2 dir3
check effect : ls -> cd dir3 -> ls
mv {需要移动的文件夹路径} {目标路径}
Demonstration:
首先,我们在d/test(D盘的test目录下)目录下,有三个文件夹dir1 、dir2和dir3,这是我们的测试环境。
第一步我们开始对文件夹dir1重命名为directory1,dir2 重命名为 directory2. 命令行为 mv dir1 directory1;mv dir2 directory2
我们可以看到文件夹已经给重命名了,然后我们对他们进行移动,放进dir3文件夹中
然后我们可以看到文件夹directory1和文件夹directory2都被放进dir3了。
Summary
1、(重命名和移动原理相同)从命令行大致相同来看,我们就可以知道重命名的原理其实还是移动文件夹而已。相当于把本路径下的dir1文件夹 移动到本路径下的directory1文件夹,但由于directory1的文件夹不存在,所以创建一个directory1文件夹。
2、(移动到其他路径并重命名)当然你也可以把文件夹移动到别的路径下。输入命令行 mv dir3 /d/dir4 ,效果就是移动本路径下的dir3文件夹到d盘根路径,并且重命名为dir4(因为我的d盘根路径不存在dir4文件夹,所以相对于重命名,如果存在,它则会到d盘的dir4文件夹中,即d/dir4/dir3)
3、(文件夹是不会覆盖的)如果的的d盘已经有了一个文件夹dir4,而我又输入了命令行mv dir3 /d/dir4,系统是不会把你重命名的文件夹覆盖掉原来的dir4目录,而最终的效果是/d/dir4/dir4,重命名后的文件夹被放进原来dir4的路径下。相对文件而言,文件时会直接覆盖掉的,用新生成代替掉旧的
文件的操作和文件夹的操作大致是相同的,这里我就不再演示了。不同的地方时文件名相同会进行覆盖,没有提示
Step:
find file&dir : find /d -name *dir* & find /d/test -name *a*.*
find {要查找的路径} {参数} {名称}
Demonstration:
首先我们寻找在d盘下名字含有dir的所有路径,输入命令行 find /d -name *dir* ,搜索到两条记录
然后我们查找一下在d盘test目录下名字含有a的所有类型的文件,输入命令行find /d/test -name *a*.* ,找到一条记录
总的来说shell的功能十分的强大,目前我就总结了这几点对文件&文件夹增删改查的操作,用于给自己总结学习的思路和笔记。
欢迎关注我的博客~~