Copyright@HuaHuaJiangLeetCode
EP1 初来乍到
命令行?
人机交互模式
命令行模式 Command Line Interface (CLI)
更加准确、更加快捷、有可编程性
图形界面 Graphical User Interface (GUI)
更加方便、更加直观
命令行的世界很单纯
命令式
- % 命令 [参数1 参数2]
- 输出内容
交互式
- % 命令
- <用户输入>
- [输出内容]
初来乍到
自言自语 echo
- echo huahua / echo hello world
- echo $PWD / echo $HOME / echo ~
我在哪 pwd (Print Working Directory)
- % pwd
绝对路径与相对路径
换个地方 cd (Change Directory)
- % cd path / cd ~
- % cd .. # 向上一层
瞅瞅 ls (List Directory Contents)
- % ls
- % ls -l # list mode
- % ls -l -a = ls -la # list + all files
- % ls -lh # list + human readable size
寻求帮助
用户手册 man (Manual)
- % man pwd
- % man man
内置帮助 命令 -h
- % man -h
- % grep –help
面向StackOverflow编程
文件内容
打印文件内容 cat (Concatenate and print files)
- % cat a.txt
- % cat a.txt b.txt # print a.txt then b.txt
- % cat < a.txt # read from stdin
头和尾 head and tail
- % head a.txt # 默认打印10行
- % tail a.txt / tail -n 5 a.txt / tail -f a.txt # 一直观察文件,打印新添加的内容
交互浏览 less (readonly version of vi?)
- % less a.txt
内容查找 / or grep
- % man less | grep -n sim # line number
单词统计 wc (Word, line and byte count)
- % man wc | wc # -l只打印行数
重定向和管道
重定向:改变输入输出设备
- 标准输入(stdin) / 标准输出(stdout):控制台 / 键盘 / 屏幕
- % echo hello > hello.txt # redirect to a file
- % echo world >> hello.txt # append to a file
- % cat < hello.txt # use file as stdio = read from file
管道:将前一个命令的标准输出作为下一个程序的标注输入
- % man less | grep sim
- % man less | grep -n sim | grep That > that.txt # mutiple pipes
Unix哲学
- 每个程序只做一件事情,并且把这件事情做好
- 一个程序的输出可以作为另外一个程序的输入,不要输出无关内容
- 编写处理字符流的程序,因为那是通用接口
- 编写可以互相协作的程序