openKylin论坛

 找回密码

命令行是你的至交好友 -Part 2 [复制链接]

本帖最后由 liuxing 于 2013-3-13 09:51 编辑

                                操作目录和文件 在命令行环境中,每个人都要做的一件事就是操作文件系统,创建,删除,复制和移动文件系统对象,并且执行命令。这对你来说可能已经是家常便饭,然而,还是让我们来看一眼:

                        01
               
                        csaba@csaba-pc                        ~ $ mkdir ~/tmp/NetTuts
               
                        02
               
                        csaba@csaba-pc                        ~ $ cd ~/tmp/NetTuts/
               
                        03
               
                        csaba@csaba-pc                        ~/tmp/NetTuts $ mkdir ./AnotherDir
               
                        04
               
                        csaba@csaba-pc                        ~/tmp/NetTuts $ mkdir ./SecondDir
               
                        05
               
                        csaba@csaba-pc                        ~/tmp/NetTuts $ touch ./SecondDir/aFile
               
                        06
               
                        csaba@csaba-pc                        ~/tmp/NetTuts $ touch ./SecondDir/AnotherFile
               
                        07
               
                        csaba@csaba-pc                        ~/tmp/NetTuts $ cd ./SecondDir/
               
                        08
               
                        csaba@csaba-pc                        ~/tmp/NetTuts/SecondDir $ pushd ~/tmp/NetTuts
               
                        09
               
                        ~/tmp/NetTuts                        ~/tmp/NetTuts/SecondDir
               
                        10
               
                        csaba@csaba-pc                        ~/tmp/NetTuts $ ls -al
               
                        11
               
                        total                        16
               
                        12
               
                        drwxr-xr-x                        4 csaba csaba 4096 Feb 19 21:09 .
               
                        13
               
                        drwx------                        7 csaba csaba 4096 Feb 19 21:09 ..
               
                        14
               
                        drwxr-xr-x                        2 csaba csaba 4096 Feb 19 21:09 AnotherDir
               
                        15
               
                        drwxr-xr-x                        2 csaba csaba 4096 Feb 19 21:09 SecondDir
               
                        16
               
                        csaba@csaba-pc                        ~/tmp/NetTuts $ popd
               
                        17
               
                        ~/tmp/NetTuts/SecondDir
               
                        18
               
                        csaba@csaba-pc                        ~/tmp/NetTuts/SecondDir $ ls -al
               
                        19
               
                        total                        8
               
                        20
               
                        drwxr-xr-x                        2 csaba csaba 4096 Feb 19 21:09 .
               
                        21
               
                        drwxr-xr-x                        4 csaba csaba 4096 Feb 19 21:09 ..
               
                        22
               
                        -rw-r--r--                        1 csaba csaba    0 Feb 19 21:09 aFile
               
                        23
               
                        -rw-r--r--                        1 csaba csaba    0 Feb 19 21:09 AnotherFile
               
                        24
               
                        csaba@csaba-pc                        ~/tmp/NetTuts/SecondDir $
               

逐句解释:
  • /home/csaba/tmp下创建一个名为NetTuts的目录               
  • 将刚刚创建的目录切换为当前目录               
  • 在当前目录下创建一个名为“AnotherDir”的目录               
  • 在当前目录下创建一个名为“SecondDir”的目录               
  • 使用touch命令在“SecondDir目录下创建两个空文件               
  • 切换当前目录到SecondDir.               
  • 使用pushd命令切换目录到~/tmp/NetTuts来把当前目录存储到堆栈之中               
  • 列出目录~/tmp/NetTuts下的所有文件               
  • 使用popd命令来返回前一个目录,这样会从堆栈中获取并且移除最顶层的目录               
  • 再一次列出内容会看到我们上几步所创建的两个文件               

当然,对于命令行你们可以有个万能文件管理器,称之为MidnightCommander。要开始用的时候只需要执行它的命令就行。它也内置了文本编辑器(高亮代码的那段)适合大部分语言,而且有智能缩进和其他的一些特性。它不完全是一个被夸大的编辑器,事实上,它是一个相当简单的工具,特别适合简单和快速编辑。你可以随意的选择任何文件然后按F4,或者你可以在编辑模式下直接打开一个文件。
       
                                1
                       
                                csaba@csaba-pc                                ~/tmp/NetTuts/SecondDir $ mcedit ./aFile
                       


输入/输出每个命令必须和命令行环境交互。命令需要输入和提供输出。
标准输入是命令读取信息的来源。键盘是默认标准输入,标准输入经常被称为“stdin”
标准输出是命令的输出会被发送到的地方。默认是当前控制台,标准输出通常被称为“stdout”
标准错误是命令输出错误的地方。默认当前控制台,常被称为"stderr"

到目前为止,我们可以定义简单的状态,来表示一个命令从键盘上读取并输出它的结果(包括好的和坏的)到屏幕上.
Unix(或类unix系统),所有的东西都会被抽象成文件,你的键盘是文件,你的鼠标是文件,你的屏幕是文件,程序是文件,文本是文件,等等
文件描述符是一个整形数字用于操作系统引用打开的文件,所有的unix系统至少包含三个文件描述符.
  • 描述符 no. 0 –        标准输入        
  • 描述符        no. 1 –        标准输出        
  • 描述符 no. 2 –        标准错误输出        

楼主
发表于 2013-3-13 09:50:13
回复

使用道具 举报

命令行是你的至交好友 -Part 2 [复制链接]

嘿嘿,回个贴表明我来过。支持支持!
[size=1][i][color=white]item.taobao.com/item.htm?spm=686.1000925.1000774.6.GX4R
沙发
发表于 2013-4-22 11:55:16
回复

使用道具 举报

命令行是你的至交好友 -Part 2 [复制链接]

这个有点高端了吧?暂时还看不懂的路过……
板凳
发表于 2013-4-29 18:25:40
回复

使用道具 举报

openKylin

GMT+8, 2024-5-17 14:55 , Processed in 0.021025 second(s), 18 queries , Gzip On.

Copyright ©2022 openKylin. All Rights Reserved .

ICP No. 15002470-12 Tianjin

快速回复 返回顶部 返回列表