命令行入门

习题一 准备工作

准备好Terminal、shell和PowerShell。
Mac OSX
1) 按住command键,同时敲击空格键   2)右上方跳出蓝色的搜索栏  3)键入“terminal” 4)点击长得像一个黑盒子的终端应用程序 5)此时终端打开了,可以按着Ctrl点击Dock, 在打开的菜单中选择“Options—Keep”,这样终端就会一直保留在Dock里。
Linux
在窗口管理器(windows manager)里搜寻名字像“Shell”或“Terminal”的东西,就OK了
Windows
1)点击Windows的“开始”菜单 2)搜索框中键入“powershell” 3) 敲击回车键。

记住以下命令

Linux/Mac OSX                                              Windows                                      
pwd (打印工作目录)                                    pwd(打印工作目录)
hostname(电脑在网络中的名称)                  hostname(电脑在网路中的名称)
mkdir(创建路径)                                          mkdir(创建路径)
cd(更改路径)                                                cd(改变路径)
ls(列出路径下的内容)                                   ls(列出路径下的内容)
rmdir(删除路径)                                           rmdir(删除路径)
pushd(推入路径)                                         pushd(推送路径)
popd(弹出路径)                                           popd(弹出路径)
cp(复制文件或路径)                                      cp(复制文件或路径)
mv(移动文件或路径)                                     robocopy(更可靠的复制命令)
less(逐页浏览文件)                                        mv(移动文件或路径)
cat(打印输出整个文件)                                  more(逐页显示整个文件)
xargs(执行参数)                                            type(打印输出整个文件)
find(寻找文件)                                              forfiles(在一大堆文件上面运行一条命令)
grep(在文件中查找内容)                               dir  -r(寻找文件)
man(阅读手册)                                             select-string(在文件中查找内容)
apropos(寻找恰当的手册页面)                      help(阅读手册)
env(查看你的环境)                                        helpctr(寻找恰当的手册页面)
echo(打印一些参数)                                      echo(打印一些参数)
export(导出/设定一个新的环境变量)              set(导出/设定一个新的环境变量)
exit(离开shell)                                               exit(退出shell)
sudo(成为超级用户或root,危险命令)            runas(成为超级用户或root, 危险命令)

习题二 路径、文件夹和目录(pwd)

pwd(打印工作目录)——print working directory---打印当前所在目录(文件夹的位置--图形界面对应的文件)

习题三 如果你迷失了

迷失在命令行里:不知道自己当前的位置、找不到某个文件,不知道接下来怎么做。
键入pwd打印当前路径—知道所处位置;
回到安全路径(home路径):键入 cd ~

习题四 创建目录(mkdir)

利用mkdir创建新的目录(文件夹)
> pwd
> cd ~
> mkdir temp
     
       Directory: C:\Users\zed
#在C盘Users文件夹中的zed文件夹中新建了zed文件夹
> mkdir temp/stuff/things/frank/joe/alex/john
#C盘Users文件夹中zed文件夹中temp文件夹中stuff文件夹中。。。创建了John文件夹。(之前没有的都会创建出来)
如果要创建含有空格的目录,为名称添加一个引号就可以了:
> mkdir temp/stuff/things/"I Have Fun"
如果要创建的目录已经存在,会得到一条错误信息。可使用cd转到其他目录下尝试创建(桌面(desktop)是个不错的选择)

习题五 更改目录(cd)

每次开始练习前,都要先进入home路径:键入pwd,然后用cd ~回到起始位置(home)
> cd temp
> pwd

Path
----
C:\Users\zed\temp

> cd stuff
> pwd

Path
----
C:\Users\zed\temp\stuff
>cd things
...
>cd frank
...
>cd joe  #只能打开当前目录(frank)中的文件(Joe),子文件(Joe)的子文件(alex或john)打不开
>cd alex
>cd john
>pwd

Path
----
C:\Users\zed\temp\stuff\things\frank\joe\alex\john

> cd ..  # 返回上级目录
> cd ..
> cd ..
> pwd

Path
----
C:\Users\zed\temp\stuff\things\frank

> cd ../..  #返回两次到上级目录
> pwd

Path
----
C:\Users\zed\temp\stuff

习惯六 列出目录下的内容(ls)

> cd temp
> ls

    Directory: C:\Users\zed\temp

Mode                         LastWriteTime            Length Name
----                             ---------------             -------  ----
d----                  12/17/2011   9:03 AM                     stuff
#列出目录下含有的东西(文件夹、文件等)及创建时间。如果为空,啥也不显示。和在图形界面下一样。
dir -r 会显示该目录下所有文件(先是最上一级的文件全部显示完,然后依次向下一级),包括文件夹中的子文件夹(子文件),子文件夹得子文件夹等。

习题七 删除路径(rmdir)

> cd temp
> ls

    Directory: C:\Users\zed\temp

Mode                         LastWriteTime            Length Name
----                             ---------------             -------  ----
d----                  12/17/2011   9:03 AM                     stuff

> cd stuff/things/frank/joe/alex/john/
> cd ..
> rmdir john
> cd ..
> rmdir alex
> cd ..
> rmdir joe
> cd ..
> rmdir frank
> cd ..
> ls
 
   Directory: C:\Users\zed\temp\stuff

Mode                        LastWriteTime              Length Name
----                            -------------                  ------   ----
d----                  12/17/2011   9:14 AM                      things

> rmdir things
> cd ..
当删除含有子项的目录时,会出现一个提示,问是否真要删除这个目录。(Unix中会报错)

习题八 在多个目录中切换(pushd, popd)

学习怎样使用pushd保存当前路径并转到一个新路径下,及怎样通过popd回到先前保存的路径下去。

pushd命令会将现在所在目录“推送”到一个列表中以供后续使用,然后转到你指定的另一个目录中去:“记住我现在的位置,然后到这个地方去。”
popd命令会将上次推送过的目录从列表中“弹出”(pop),然后让你回到这个被“弹出”的目录中去。
> cd temp
> mkdir -p i/like/icecream                # mkdir -p 会创建一个完整的多层目录,即使中间目录不存在也能成功。(实际操作时                                                                  发现不加-p也可以创建的)
 
     Directory: C: \Users\zed\temp\i\like

Mode                         LastWriteTime            Length Name
----                             ---------------             -------   ----
d----                    12/20/2011   11:05  AM                 icecream

> pushd i/like/icecream
> popd
> pwd

Path 
----
C: \Users\zed\temp

> pushd i/like
> pwd

Path
----
C: \Users\zed\temp\i\like

> pushd icecream
> pwd

Path
----
C: \Users\zed\temp\i\like\icecream

> popd
> pwd

Path
----
C: \Users\zed\temp\i\like

> popd 
>pwd

Path
----
C: \Users\zed\temp
>

习题九 创建空文件夹(touch, New-Item)

学习怎样使用touch(Windows中时New-Item)命令创建一个空文件。
> cd temp
> New-Item iamcool.txt -type file
> ls
 
          Directory: C: \Users\zed\temp

Mode                              LastWriteTime              Length Name
----                                  -------------                  ------    ----
-a---                      12/17/2011   9:03 AM                         iamcool.txt
>
New-Item(小写同样能完成操作)还可以创建新目录:new-item  s -type directory

习题十 复制文件(cp)

学会使用cp命令将文件从一个地方复制(copy)到另一个地方

1)直接在当前文件夹(目录)复制一个文件(或文件夹(文件夹中的文件不会被复制,只会复制一个空文件夹.若想全部复制就需要 -recurse)),并以另一个名称保存。
> cd temp
> cp iamcool.txt neat.txt    #复制iamcool文件并以neat命名保存(此时文件夹中含有这两个文件—内容一致)
> cp neat.txt awesome.txt
> cp awesome.txt thefourthfile.txt
2)将文件复制到此文件夹的子文件夹下(以下操作只能复制到子文件夹下)
> cd temp
> mkdir something
> cp awesome.txt something/       #复制awesome.txt到something文件夹下(保持原名称)
3)复制文件夹(不是空文件夹—含有文件)
> cp -recurse something newplace    #复制something文件夹(所有,包含子文件夹及文件),以newplace命名保存。

PS:复制文件还有许多操作没弄明白,还需要多多查找验证。

习题十一 移动文件(mv)

使用mv将文件从一个地方移动到另一个地方(其实是重命名文件)
> cd temp
> mv awesome.txt uncool.txt   #将awesome文件重命名为uncool。
> mv newplace oldplace  #将newplace文件夹重命名为oldplace,其内文件不发生变化。

那如何将一个文件从一个目录移动到另一个目录?
使用Move-Item命令
> Move-Item -path  uncool.txt -destination i/(同级文件夹)    # 将uncool文件移动到了i文件夹中
#将目的目录的路径完全写出来就能移动到上级目录中(最好在想移动的文件所在的目录下进行操作,我试验写出-path,但是好像没有用,所以还是cd到那个目录吧,-destination 是没有问题的)。Move-Item -path uncool.txt -destination C:\Users\Administrator\temp

习题十二 查看文件内容(less,MORE)


先用文本编辑器(Notepad++),键入一些东西;保存到桌面,命名为test.txt;在shell中将该文件复制到temp目录中去。
> more test.txt
ni hao le ma
ni hao a
ni guo de qiong bu qiong   #此为test.txt的内容,通过more展示了出来。(查看文件内容的一个方法)
若文本文件长度过长,命令行会逐页显示(空格键向下逐页浏览,回车会按行显示),每页大概是49行左右,猜测和命令行页面大小(电脑屏幕大小)有关系,正好是命令行页面的一页。

习题十三 流文件内容显示(cat)

> more test.txt
[displays file here]   # 显示test中的内容(内容太多会分页显示)
> cat test.txt
[displays file here]  # 显示test中的内容(将其内容一次输出到屏幕上,不会分页不会中间停顿
> cat test.txt, 'new 1.txt'
[displays file here]  # 显示test和new 1中的内容,一次全部显示出来(先test在new 1)

习题十四 删除文件(rm)

> cd temp
> ls

             Directory: C:\Users\zed\temp

Mode                             lastWriteTime               Length  Name
----                                ----------------               --------  ----
d----                       12/22/2011  4:52 PM                         newpalce
d----                       12/22/2011  4:52 PM                         something
-a---                       12/22/2011  4:52 PM                      0  iamcool.txt
-a---                       12/22/2011  4:52 PM                      0  neat.txt
-a---                       12/22/2011  4:52 PM                      0  thefourthfile.txt
-a---                       12/22/2011  4:52 PM                      0  uncool.txt

> rm uncool.txt
> ls

             Directory: C:\Users\zed\temp

Mode                             lastWriteTime               Length  Name
----                                ----------------               --------  ----
d----                       12/22/2011  4:52 PM                         newpalce
d----                       12/22/2011  4:52 PM                         something
-a---                       12/22/2011  4:52 PM                      0  iamcool.txt
-a---                       12/22/2011  4:52 PM                      0  neat.txt
-a---                       12/22/2011  4:52 PM                      0  thefourthfile.txt

> rm iamcool.txt
> rm neat.txt
> rm thefourthfile.txt
> ls

             Directory: C:\Users\zed\temp

Mode                             lastWriteTime               Length  Name
----                                ----------------               --------  ----
d----                       12/22/2011  4:52 PM                         newpalce
d----                       12/22/2011  4:52 PM                         something

> cp -r something newplace       # 复制something文件夹(含其中文件),粘贴到当前目录命名为newplace
> rm something/awesome.txt    #删除something文件夹下文件awesome.txt;同样(用rmdir也行)可删除目录下子目录(子文件夹)
> rmdir something                       #删除目录(文件夹something),用rm也行
> rm -r newplace             #删除newpalce目录(文件夹),即使包含子文件和子文件夹。若不加-r就会弹出选项(含有子目录,是否要全部删除,默认选项为是)
可循环删除目录下的所有文件,但是要小心操作(rm -rf /  ???!)

习题十五 退出命令行(exit)

> exit


试着继续学习:forfiles; runas; attrib; icacls

PowerShell参考资料
Cheat Sheet: http://www.mocrosoft.com/download/en/details.aspx?displaylang=en&id=7097(可能已失效)

Unix Bash 参考资料
Bash Cheat Sheet: http://cli.learncodethehardway.org/bash_cheat_sheet.pdf



  Directory: C:\Users\zed\temp

Mode                             lastWriteTime               Length  Name
----                                ----------------               --------  ----
d----                       12/22/2011  4:52 PM                         newpalce
d----                       12/22/2011  4:52 PM                         something
-a---                       12/22/2011  4:52 PM                      0  iamcool.txt
-a---                       12/22/2011  4:52 PM                      0  neat.txt
-a---                       12/22/2011  4:52 PM                      0  thefourthfile.txt
             Directory: C:\Users\zed\temp

Mode                             lastWriteTime               Length  Name
----                                ----------------               --------  ----
d----                       12/22/2011  4:52 PM                         newpalce
d----                       12/22/2011  4:52 PM                         something
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值