Shell 基本命令
Shell 简介
命令行 (CLI) 严格来讲与 Shell 是两个东西
命令行是供用户输入命令的界面,本身只是接受输入,然后将命令传递给命令解释器
Shell 就是这个命令解释器程序,在用户与系统之间提供面向行的可交互接口
Linux 的 Shell 有很多类型,默认是 Bourne Again Shell (BASH)
还有 Z-Shell (ZSH), TCSH Shell 等种类,不同的 Shell 语法与特性不尽相同
Linux 的命令行提示符默认为 $,如果获得了 root 身份,提示符将变为 #
浏览硬盘
$ cd / ## 进入根目录
$ ls ## 列出当前目录下的文件和目录
$ cd home/ ## 进入 /home 目录
$ ls ## 列出当前目录下的文件与目录
$ cd /etc/ ## 进入 /etc/ 目录
$ ls ## 列出当前目录下的文件与目录
- etc 目录下面存的是系统以及绝大部分应用软件的配置文件
home目录下存放着系统中所有用户的主目录 - Linux 使用纯文本文件来配置软件
提高效率:补全与通配符
文件名没全输入完时,按一下 Tab 键将自动补全剩下的内容
如果剩下的内容有多种选择时,按两下 Tab 键,Shell 会给出所有的可能文件的列表,可以移动光标选择
补全不止适用于文件名,也适用于 Linux 命令名称
(Linux 命令本质上就是一些存放在 /usr/bin/ 目录下的可执行文件)
使用通配符可以匹配文件名的一部分,它们是 “*” “?” “[]”。(可以类比正则表达式中的符号)
*: 匹配任意长度的字符串
?: 匹配一个字符
[]: 匹配所有括号内的字符
$ ls *.cpp ## 列出所有 cpp 文件
a.cpp vf.cpp fuijeri3.cpp
$ ls text?
text1 text2 textn textl
$ ls text[a-c]
texta textc
$ ls text[aA]
texta textA
查看目录与文件
pwd
- 功能:显示当前所在的位置 (工作目录)
- 参数:无
$ cd /usr/local/bin/
$ pwd
/usr/local/bin
cd
- 功能:切换工作目录的基本工具
- 参数:
cd [PATH]
$ cd /usr/bin
$ cd .. ## 移动到当前目录的父目录 usr
$ cd /usr/bin
$ cd ## 移动到用户主目录 home
$ cd /usr/bin
$ cd ~ ## 移动到用户主目录 home
- 注意
- .. 表示上一级目录
- . 表示当前目录
- ~ 表示用户主目录
ls
- 功能:列出目录内容 (list)
- 参数:
ls [OPTION] [PATH]
ls
: 列出当前目录下可显示的文件与目录,不同类型的内容颜色不同ls -F
: 列出当前目录下可显示的文件与目录,不同类型的内容后的符号不同ls -a
: 列出当前目录下所有文件与目录 (可显示的与隐含的)ls -l
: 列出当前目录下可显示的文件与目录,并列出详细属性ls [PATH]
: 列出指定目录下可显示的文件与目录
- 注意
- ls 的选项可组合使用,使用一根短线,如
ls -aF
,ls -l /usr/bin/
- Windows 的
dir
,vdir
命令,Linux 也可以使用。vdir
相当于ls -l
- ls 的选项可组合使用,使用一根短线,如
cat / more
- 功能
cat
查看文本文件的全部内容more
按页查看文本文件的内容
- 参数:
cat [OPTION] [FILE]
,more [FILE]
cat -n [FILE]
: 显示行号
- 注意
cat
后可以跟多个文件名,也可以使用通配符more
只显示一页内容,翻页按空格,向下一行按 Enter,推出按 Q
head / tail
- 功能:阅读文本文件的开头 / 结尾的 n 行
- 参数:
head/tail -n [NUMBER] [FILE]
less
- 功能:更强大的 more,有很多功能
- 参数:
less [FILE]
less -M [FILE]
: 显示更多文件信息
- 注意
- less 在最下方显示冒号等待输入命令
- 翻页按空格,向上翻页按 A
- 搜索某一字符串 用 /[Content],继续查找按 /+Enter
grep
- 功能:查找文件内容
- 参数:
grep [OPTION] pattern [FILE]
- 注意
- 可以同时搜索多个文件
- 使用
egrep
命令可以使用拓展正则表达式
find
- 功能:在指定范围内查找文件
- 参数:
find [OPTION] [PATH] [expression]
- -type 指定文件的类型 (b c d f p l)
- -atime 指定最后使用在 n 天前的文件 (+n 表示大于 n, -n 表示小于 n)
- -mtime 指定最后修改在 n 天前的文件 (+n 表示大于 n, -n 表示小于 n)
- -print 将结果打印到标准输出 ([expression])
- 注意
- find 的搜索方式是在查找范围内挨个进子目录查找,所以费时较长
locate
- 比 find 更快的查找文件
- 注意
- locate 通过建立文件名数据库的方式查找,所以耗时比 find 短
- 不过文件名数据库需要使用 updatedb 命令及时更新
运行和查找程序
从终端运行程序只需输入程序名称
$ firefox
这样按下 Enter 后,终端会被挂起,直到程序运行完毕
若要使成虚线后台运行,终端不被挂起,请加 &
$ firefox &
查找程序使用 whereis 命令,会返回程序的可执行文件,源码文件,手册
使用 -b 选项只返回可执行文件
查看用户与版本信息
一台服务器同时会有多人登录,使用 who 命令查看那些人登录,时间,控制台
用 whoami 命令返回自己的用户名
使用 uname -r 返回内核信息,uname -a 返回系统所有信息
寻求帮助
man
- 功能:显示 Linux 指令的帮助手册
- 参数:
man [COMMAND]
- 注意
man
在终端显示手册时实际调用的是less
操作也是类似的
whatis
- 功能:显示 Linux 指令的命令简介
- 参数:
whatis [COMMAND]
apropos
- 功能:与
whatis
相反,通过功能列出可能的指令 - 参数:
apropos [Function]