Debian/类Unix工作环境
Debian | Debian安装 | Debian使用 | Debian系统升级 | Debian常见问题 |
尽管 MC 让您能够做绝大多数的事情,但是利用 shell 来学习命令行工具,和熟悉类 Unix 系统 的工作环境还是很重要的。
特殊的按键组合[ ]
在类 Unix 环境里,有一些按键有特殊的意思.
- Ctrl-U: 擦除一行光标前面的部分。
- Ctrl-H: 擦除光标前面的一个字符。
- Ctrl-D: 终止输入。(退出 shell,如果您正在使用 shell 的话)。
- Ctrl-C: 终止当前正在运行的程序。
- Ctrl-Z: 暂停程序。
- Ctrl-S: 停止向屏幕输出。
- Ctrl-Q: 重新激活向屏幕输出。
- 默认的 shell,bash, 有历史编辑和 tab 补齐功能。
- up-arrow: 开始历史命令搜索。
- Ctrl-R: 开始增量历史命令搜索。
- TAB: 完整的把文件名输入到命令行。
- Ctrl-V TAB: 输入 TAB 而不是扩展命令行。
其他一些需要记住的按键组合。
- Ctrl-Alt-Del:挂起或者重新启动系统 初始化安装完成后再安装其他软件包
- Left-click-and-drag mouse: 选择并且拷贝到剪贴板。
- Click middle mouse button: 使用剪贴板的内容粘贴。
- Meta-key (Emacs terminology) 传统的是使用 Left-Alt-key. 但是有些系统使用 Windows-key 实现 Meta-key.
这里,为了在 Linux 字符界面下使用鼠标,您需要使用 gpm 服务.
基本 Unix 命令[ ]
让我们来学习基本的 Unix 命令。使用非特权用来执行下面的所有的命令,penguin :
- pwd
显示当前工作路径。
- whoami
显示当前用户名。
- file foo
显示 foo 文件的属性。
- type -p commandname
显示命令 commandname 所的的地方。which commandname 也可以用来做这个 .
- type commandname
显示命令 commandname 的信息。
- apropos key-word
找到和 key-word 相关的命令。man -k key-word 也可以做到
- whatis commandname
显示该命令的一句话帮助。 commandname.
- man -a commandname
显示命令的解释信息。 commandname. (Unix style)
- info commandname
显示很长的命令解释 commandname. (GNU style)
- ls
列出目录内容 (非以.开始的文件和目录)
- ls -a
列出目录内容(所有的文件和目录)
- ls -A
列出目录内容。(几乎所有的文件和目录,略去“..”和“.”)
- ls -la
列出目录所有文件和目录的详细信息。
- ls -d *
列出当前目录下的目录名称,而不是目录下的内容。
- lsof foo
显示文件 foo 的打开状态。
- mkdir foo
在当前目录下创建一个新的目录 foo。
- cd foo
切换到当前目录下或者在变量 CDPATH 中列出来的目录 foo。在 builtins(7) 查看命令 cd。
- cd /
切换到根目录。
- cd
切换到用户主目录。
- cd /foo
切换到绝对路径 /foo 所指定的目录。
- cd ..
切换到上一级目录。
- cd ~foo
切换到用户主目录下的 foo 目录去。
- cd -
切换到上一次所去的目录。
- </etc/motd pager
使用默认的分页程序查看文件 /etc/motd 的内容,
- touch junkfile
创建一个空文件 junkfile。
- cp foo bar
拷贝一个已有的文件 foo 到新文件 bar。
- rm junkfile
删除文件junkfile
- mv foo bar
把已有的文件 foo 重命名为 bar
- mv foo bar/baz
把已有的文件 foo 移动到新位置并重命名为 bar/baz。目录 bar 必须存在。
- chmod 600 foo
让已经存在的文件 foo 其他人不能读写。(所有人都不能执行)。
- chmod 644 foo
使文件 foo 其他的人可以读,但是不能写。(所有人都不能执行)
- chmod 755 foo
使文件 foo 其他的人能读不能写。(所有人都可以执行)
- top
全屏显示进程信息。输入”q”退出。
- ps aux | pager
用 BSD 风格输出所有正在运行的进程的信息。
- ps -ef | pager
用 system-V 风格来输出所有正在运行的进程的信息。
- ps aux | grep -e "[e]xim4*"
显示 exim4 进程,或者运行 exim 的进程。输入 man grep 可以从 grep(1) 的手册页学习正则表达式。
- ps axf | pager
用 ASCII 艺术形式来显示运行所有进程信息。
- kill 1234
杀死进程号为 1234 的进程。
- grep -e "pattern" *.html
找到当前目录下面所有以 .html 结尾的文件中含有"pattern"的行,并显示它们。
- gzip foo
用Lempel-Ziv(LZ77)压缩算法压缩foo,生成foo.gz。
- gunzip foo.gz
将文件 foo.gz 解压缩生成 foo。
- bzip2 foo
将文件 foo.bz2 解压缩生成 foo。
- tar -xvvf foo.tar
从打包文件 foo.tar 解出文件来。
- tar -xvvzf foo.tar.gz
从打包压缩的文件 foo.tar.gz 中解开文件。
- tar -xvvf --bzip2 foo.tar.bz2
从文件 foo.tar.bz2 解压缩文件。
- tar -cvvf foo.tar bar/
把目录 bar/ 的内容打包存放到 foo.tar 存档中。
- tar -cvvzf foo.tar.gz bar/
把目录 bar/ 的内容打包并且压缩存放到 foo.tar.gz 存档中。
- tar -cvvf --bzip2 foo.tar.bz2 bar/
把目录 bar/ 中的内容打包存放到 foo.tar.bz2 存档里面。
- zcat README.gz | pager
实用默认的分页显示程序 pager 来显示压缩文件 README.gz 中的内容。
- zcat README.gz > foo
使用文件 README.gz 解开后的内容创建一个文件 foo。
- zcat README.gz >> foo
把文件 README.gz 解开后的内容追加到文件 foo 的后面(如果文件不存在的话,就会创建一个)。
- find . -name pattern
用 shell 找到匹配 pattern 的文件名(慢一些)。
- locate -d . pattern
用 shell 找到匹配 pattern 的文件名(使用已有的规则的数据库,快一些)。
命令执行和环境变量[ ]
典型的使用 shell 来执行命令情况如下:
$ date Sun Oct 26 08:17:20 CET 2003 $ LC_ALL=fr_FR date dim oct 26 08:17:39 CET 2003
这里 date 程序是在前台执行的。环境变量 LC_ALL 是:取消设置 (系统默认的和 C)作为第一个命令,设置为 fr_FR (French locale) 作为第二个命令。
绝大多数的命令并没有预先定义各种环境变量。像上面的例子选择如下方式:
$ LC_ALL=fr_FR $ date dim oct 26 08:17:39 CET 2003
正如您所看到的,命令的输出和环境变量设置有关,上面产生的是法语输出。如果您 想这个环境变量在子进程中也能够得到继承的话(e.g.,执行 shell 脚本的时候),您需要使用下面的方式。
$ export LC_ALL
命令搜索路径[ ]
当您在 shell 提示符里面输入一个命令的时候,shell 就会在 PATH 环境变量所列出的目录里面去查找。PATH 环境变量的值也被叫做 shell 的查找目录。
在默认安装的 Debian 中,用户的 PATH 环境变量里面也许没有包含 /sbin/。因此如果您想运行一些命令比如 /sbin/ 目录下的 ifconfig,您就必须在 PATH 环境变量里面包含它。PATH 环境变量一般是在初始化文件 ~/.bash_profile 里面设置的。
命令行选项[ ]
一些命令带有参数,参数部分以-或者--开始的被称做选项。可以用来控制命令的行为。
$ date Mon Oct 27 23:02:09 CET 2003 $ date -R Mon, 27 Oct 2003 23:02:40 +0100
这里命令行参数 -R 改变了命令 date 的表现以让它输出符合 RFC-2822 的日期字符串。
Shell 通配符[ ]
通常您需要用命令来处理一组文件,但是您又不想输出所有的文件名。shell 通配符使得这个成为可能。
这个匹配 0 个或者多个字符。它不会匹配以"."开始的文件名.
- ?
这个仅匹配一个字符。
- [...]
这个匹配[]里面的某个字符。
- [a-z]
这个匹配字符 a 到 z 之间的某个字符。
- [^...]
这个匹配任意不包含在 [] 里面的字符(不包含字符"^").
命令返回值[ ]
每个命令都返回一个值和它返回的状态。
返回 0 表示命令被正确执行
返回非 0 的值表示命令没有正确执行。
返回值可以在命令执行后马上用 shell 用变量 $? 来访问。
$ [ 1 = 1 ] ; echo $? 0 $ [ 1 = 2 ] ; echo $? 1
请注意,在 shell 中的逻辑上下文中使用这些返回值的时候 success 被看做逻辑值 TRUE。这个多少有一点不直观,因为 success 等价于值 zero。
Debian使用手册导航 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
参考来源[ ]
http://www.debian.org/doc/manuals/debian-reference/ch-tutorial.zh-cn.html#s-mc