shell基本命令
shell简介
- 命令行指供用户输入命令的界面,其本身只是接受输入,然后把命令行传递给命令解释器(即shell)。
- shell本质上是一个程序,在用户和os之间提供了一个面向行的可交互接口。shell将用户输入的命令转换成指令代码发送给操作系统。
- Linux环境下BASH (Bourne Again Shell) shell是默认安装和使用的shell。
- 图形界面下的终端实际上是一个终端模拟器。
- Linux默认有7个控制台,可以通过按快捷键Ctrl+alt+F1~F7进入。默认情况下,前6个是命令行控制台,第7个则留给X服务器。
- BASH中,”$”是命令行提示符,表示可以输入命令;如果以root身份运行,提示符为”#”。(命令和文件名都区分大小写)。
- 不带参数的
cd命令表示进入主目录。 - /etc目录下存放了系统和绝大部分应用软件的配置文件。Linux使用纯文本文件来配置文件。
- /etc/fstab文件定义了个硬盘分区所挂载到的目录路径。
命令行使用(含常用命令)
- 命令行/文件名补全:输入开头,按tab键,shell会自动将文件名补全。如果文件名/命令不止一个,连按tab键两次列出所有符合的文件名。
- hints:系统命令本质上就是一些可执行文件,在
/usr/bin/目录下找到。
- hints:系统命令本质上就是一些可执行文件,在
- 通配符(不同于正则表达式):
*:用于匹配文件名中任意长度的字符串,如ls *.md;?:只匹配一个字符,如ls text?;[]:用于匹配出现在方括号内的字符,如ls text[1A];-:指定字符集范围(上下界包含)。与[]搭配使用,如ls text[1-9]。
pwd: print working directory,打印当前目录。ls: 列出文件。ls:目录为蓝色;普通文件为白色;可执行文件为草绿色;连接文件为淡蓝色。ls -F:在无法显示颜色的终端上使用,目录后加/,在可执行文件后加*,在链接文件加上@。ls -a:显示所有文件,包括.开头的隐含文件。ls -l:用于查看文件的各种属性(包括最后一次被修改的时间);ls -ld:查看目录的各种属性。
cat:一次性显示文件内容,后可跟多个文件名做参数,也可使用通配符。cat -n 文件名:显示行号。
more:逐页显示文件内容,空格翻页,Enter滚动一行。less:功能更强大。比more更像是一个文本编辑器(有检索、高亮操作)。head和tail:查看文件的头和尾,可接多个文件。用-n指定显示的行数。如head -n 2 shell.md。grep:查找文件中的文本内容,用法grep [OPTIONS] PATTERN [FILE...]。其中的PATTERN是”基础正则表达式”。egrep使用扩展的正则表达式。find:find会深入到指定路径(绝对路径)的每一个子目录中去查找文件,-name指定文件名(可以使用通配符),如find /usr/bin/ -name zip。locate:更快速地定位文件。通过搜索文件名数据库来确定文件的位置(locate命令会自动建立整个文件名数据库)。&:firefox执行时,当前终端会被挂起。如果要在后台运行,后面加上&。whereis:用于查找程序文件。提供该文件的二进制可执行文件、源代码文件和使用手册页存放的位置。whereis搜索的子目录是固定的,包括/usr/bin、usr/sbin和/usr/share/man。who:查看当前系统中有哪些人登录,以及工作在哪个控制台上。whoami:查看当前以什么身份登陆。uname:显示当前系统的版本信息。uname -a给出所有有用信息,uname -r给出内核信息。man:显示程序使用手册(实际调用了less程序显示)。whatis:一句话说明一个程序大概可以做什么。apropos:查找简介中含有关键词的命令,输出。