Udacity Linux 命令行基础 Shell 入门

Linux 命令行基础
Shell 入门

这上面讲的有点太简单了,总结一下备忘。


Get into the shell

错误信息

输入包括单引号’、圆括号(、大括号{
输出有>(右尖括号),需要补全。
ctrl+c退出

简单指令

目录文件

1
ls

下载

1
curl http://udacity.github.io/ud595-shell/stuff.zip -o things.zip

安装

1
2
3
4
5
Ubuntu and Debian users: sudo apt-get install cowsay
Redhat and CentOS users: sudo yum install cowsay
OS X users: brew install cowsay
(This requires the homebrew, a third party package manager for OS X, http://brew.sh/)
Arch Linux users: sudo pacman -S cowsay

更多指令:

  • 日期:date
  • 计算器:expr 2 + 2
  • 显示:echo things(显示'需要在前面加上\,即\'
  • 操作系统名称:unameuname -a
  • 服务器名称:hostname
  • 远程服务器ip等信息:host baidu.com
  • bash 版本:bash --version
  • 历史记录:history
  • 删除:rm xxx python:os.remove("xxx")
  • 状态:uptime
    18:41:45 up 2 days,  1:58,  5 users,  load average: 2.01, 1.98, 2.00
    
    时间、运行时间、用户数量、平均负载

Shell commands

历史记录

  • :浏览上一条命令,可以多次使用
  • history:列出所有记录
  • ctrl+R:搜索历史记录

解压zip

1
unzip XXX.zip

输出文本到终端

1
cat AAA.txt BBB.txt

cat 代表concatenate。
可用于读取其他文件作为输入。

命令补全

Tab键自动补全命令、参数等。

文本文件信息统计

1
wc XXX.txt

输出行数、字数、字节数

比较不同

1
diff AAA.txt BBB.txt

对比两个文件的不同点

指令手册

1
man cowsay

查询某个指令的用法

显示隐藏文件

1
ls -a

默认不显示以.开头的文件

删除

1
rm -rf /

删除所有文件。。

程序接管shell

如:

1
ping 8.8.8.8

会使shell被ping接管。按ctrl+C退出。
另一种交互程序需要手工输入终止符,
如:

1
2
3
4
sort
b
c
a

最后输入ctrl+D(EOF)才会运行排序。

全屏文件显示、编辑工具

1
less XXX.txt
1
2
nano XXX.txt
vim XXX.txt

The Linux Filesystem

文件名

文件和目录都有其名称(”filenames”)
Filenames 可以包括任何除了/的字符。
当需要写一个包括特殊字符(#!$%&[]等)
需要采取引用或转义的形式:

  • 真实名:Great Name!
  • 引用:`Great Name!`
  • 转义:Great\ Name\!

    文件系统树

    不像windows,分区为不同盘符,而是统一在(root)下。
    文件夹与文件夹之间用/连接(windows用\)。

目录操作

  • 当前路径:pwd
  • 进入目录:cd

绝对路径与相对路径

  • 绝对路径:从根目录开始
  • 相对路径:从当前工作目录开始
    • .指向当前路径
    • ..指向上一级路径

复制与移动

  • 移动文件
    mv A B
    可以重命名
  • 复制文件
    cp A B

新建目录与删除

新建

  • 当前路径:mkdir A
  • 绝对路径:mkdir /home/user/A
    ###删除
  • 删除目录:rmdir A
    不能对包含文件的目录删除
  • 删除目录及文件:rf -r A

Globbing

通配模式

  • 包括html的文件:ls *html
  • 大括号中选择:ls app.{css,html}
  • 一个?匹配一个字符:ls bea?.png
  • 匹配[]中其中一个:ls be[aeio]r.png

区别大小写,包括扩展名


codecademy上面好像也有shell的入门,比这个要好一点。