命令行的增删查改和一个简单的小脚本

344 阅读7分钟

我们可以在cmder中通过命令行来实现文件的“增删查改”

一.查

查主要分为“查看绝对路径”,“查看当前目录内容”,“查看文件内容”三种

    1.查看绝对路径。

        当进入cmder后,我们要做的第一件事就是查看我们当前所在的位置,我们可以利用pwd来查看。

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ pwd
/c/Users/HUANG/Desktop/p

        即我们现在就在用户目录桌面下的p文件夹。值得注意的是一般常用“~”来表示/c/Users/HUANG/Desktop

    2.查看当前目录内容。

        确定完我们所在的路径之后,我们可以查看当前目录下的文件有哪些,我们可以利用ls来查看

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ ls
1.txt  a/  index.html  main.js  style.css

        我们可以看到当前文件夹内有"1.txt","index.html","main.js","style.css"以及"文件夹a"。

    3.查看文件内容。

        我们可以通过"cat","head","tail"以及"less"来查看文件内容。

              "cat"用来查看文件内所以内容。

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ cat 1.txt
 1
2
3
4
5
6
7
8
9
10
----------------------------------
1
2
3
4
5
6
7
8
9
10
----------------------------------

    我们看到,当使用"cat"来查看文件内内容时,文件内的所有内容都会显示出来,然而我们有时并不需要查看文件内的全部内容,当文件内内容过长时,使用"cat"会很吃力,所以我们需要用到"head","tail"和"less"。

             "head"可以查看文件内前10行的内容。或使用"head 1.txt -n X"来查看前X行内容。

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ head 1.txt
1
2
3
4
5
6
7
8
9
10

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ head 1.txt -n 12
1
2
3
4
5
6
7
8
9
10
----------------------------------
1

            "tail"与"head"同理,只不过"tail"是查看文件后X行内容。

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ tail 1.txt
2
3
4
5
6
7
8
9
10
----------------------------------

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ tail 1.txt -n 12
----------------------------------
1
2
3
4
5
6
7
8
9
10
----------------------------------

            "less"则可以通过键盘上的方向键来实现翻页观看。观看结束后可通过键盘上的"Q"来退出.

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ less 1.txt


二.增

“增”主要有以下几种操作:包括touch,echo,mkdir,cp等

    1.touch

        "touch"可以用来新建空文件。

        例如:touch 1.txt,即创建一个名字为1的txt文件。

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ touch 1.txt
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ ls
1.txt

    2.echo

        "echo"与"touch"只能创建一个空文件不同,它可以创建一个有内容的文件。

        例如:echo 123 > 1.txt,即创建一个内容"123"的1.txt文件。

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ echo 123 > 1.txt
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ cat 1.txt
123

        此外我们还可以通过 echo 456 >> 1.txt,往1.txt内追加内容

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ echo 456 >> 1.txt
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ cat 1.txt
123
456

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ echo -e "789\n101112" >> 1.txt
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ cat 1.txt
123
456
789
101112

    3.mkdir

        mkdir即make directory。我们可以通过mkdir来创建一个/多个文件夹。

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ ls
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ mkdir a b c
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ ls
a/  b/  c/

        我们也可以通过mkdir来创建一个多层级目录。

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ mkdir -p a/b/c/d
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ ls
a/
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ cd a
HUANG@DESKTOP-T1ADIRC ~/Desktop/p/a
λ ls
b/

    4.cp

        cp即copy。我们可以通过"copy"来拷贝一份文件或一个文件夹。

        例如:cp 1.txt 2.txt,即拷贝一份1.txt并命名为2.txt。

                  cp -r a b 即为复制一份a文件夹,并将其命名为b。(-r表递归)

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ ls
1.txt
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ cp 1.txt 2.txt
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ ls
1.txt  2.txt

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ ls
a/
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ cp -r a b
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ ls
a/  b/

三.删

删除一般分为”删除文件“,”删除文件夹“。

    1.删除文件

        删除文件我们一般使用"rm"。

        例如:rm 1.txt,或rm -f 1.txt,即表示删除/强制删除1.txt。

HUANG@DESKTOP-T1ADIRC ~/Desktop/p/a
λ ls
1.txt
HUANG@DESKTOP-T1ADIRC ~/Desktop/p/a
λ rm 1.txt
HUANG@DESKTOP-T1ADIRC ~/Desktop/p/a
λ ls

    2.删除文件夹

        删除文件夹我们一般使用"rm -r"

        例如:rm -r a,或rm -rf a,即表示删除/强制删除文件夹a

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ ls
a/
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ rm -r a
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ ls

四.改

改主要有”修改文件名“,”修改文件内容“,”修改文件所在目录“,”修改文件更新时间“。

    1.修改文件名

        我们可以使用mv来修改文件名。

        例如:mv 1.txt 2.txt,即表示将1.txt更名为2.txt。(文件夹中需无2.txt,否则会将2.txt覆盖)

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ ls
1.txt
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ mv 1.txt 2.txt
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ ls
2.txt

    2.修改文件内容

        我们可以使用命令行来打开某个软件来修改相应文件。

        例如:code 1.txt或start 1.txt,即用code打开1.txt或使用默认软件打开1.txt。

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ code 1.txt

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ start 1.txt

        当我们想清除某个文件内所有内容时,我们可以向其echo一个空字符串。

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ cat 1.txt
这是1.txt中的内容

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ echo "" > 1.txt
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ cat 1.txt

    3.修改文件所在目录

        和”修改文件名“一样,我们可以通过mv来修改文件所在目录。

                例如:mv 1.txt a,即表示将当前目录中的1.txt移动到a文件夹中。

                          mv a/1.txt .,即表示将a文件夹中的1.txt移动到上一级目录中。

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ ls
1.txt  a/
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ mv 1.txt a
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ cd a
HUANG@DESKTOP-T1ADIRC ~/Desktop/p/a
λ ls
1.txt

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ ls
a/
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ mv a/1.txt .
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ ls
1.txt  a/

    4.修改文件更新时间

        我们可以"touch"一下文件来更新其更新时间。

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ ls -l
total 1
-rw-r--r-- 1 HUANG 197121 4  3月 29 18:59 1.txt
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ touch 1.txt
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ ls -l
total 1
-rw-r--r-- 1 HUANG 197121 4  3月 29 19:00 1.txt


    当我们使用命令行时,可能会遇到以下问题

        1.当我们需要输入大量命令时,我们可以通过"&&"或者";"来连接代码。

            a "&&" b表示a代码执行成功后在执行b代码

            a; B表示执行a代码然后在执行b代码


        2.命令行的命令执行成功后不会像图形界面有直观的感受,他什么都不会返回,所以我们 可以通过"echo $?"来查看命令是否执行成功;当返回error或一个非0的值时,表示执行失败。



当我们将以上“增删查改”的方法结合起来以后,我们可以制作一个简单的脚本。

    我们可以写一个自动创建一个内含"index.html","style.css","main.js"的文件夹,其中index.html中含有文本。

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ touch key
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ code key

mkdir $1
cd $1

touch index.html
touch style.css
touch main.js

echo 这是index.html中的文本 > index.html

HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ chmod +x key
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ sh key xxx
HUANG@DESKTOP-T1ADIRC ~/Desktop/p
λ cd xxx
HUANG@DESKTOP-T1ADIRC ~/Desktop/p/xxx
λ ls
index.html  main.js  style.css

    当我们将"key"所在的路径加入到环境变量后,我们就无需在"key"前加上"sh"或"./"了,可以和"ls"等命令一样,在任何环境下进行响应,所以"ls"等命令其实和"key"一样,都是一个类似脚本的文件,且其路径在环境变量中。

    我们甚至可以自行建立一个相应的文件对其进行劫持。