点击访问 Linux 命令大全 >>
本章节将介绍 Linux 基础命令,学会这些命令你就可以在 Linux 中导航到指定目录,查看文件内容等基础操作。主要命令如下:
我们通常所说的“我玩过Linux”一般指的是用过Shell。一直以来 Shell 以其稳定、高效和灵活成为系统管理员的首选。
命令行和Shell这两个概念常常令人困惑,在很多并不正式的场合,这两个名词代表着相同的概念,即命令解析器。然而从严格意义上讲,命令行指供用户输入命令的界面,其本身只接受输入,然后把命令传递给命令解析器。另外,Shell是一个程序,它在用户和操作系统之间提供了一个面向行的可交互接口。用户在命令行中输入命令,运行在后台的 Shell 把命令转换成指令代码发送给操作系统。
目前,在 Linux 环境下有几种不同类型的 Shell,常用的有 BASH(Bourne Again Shell)、TCSH Shell、Z-Shell 等。不同的 Shell 提供不尽相同的语法和特性,用户可以使用任何一种 Shell。
在 Linux 中,BASH shell 是默认安装和使用的 Shell。
怎样打开 Shell 呢?
如果你安装的是桌面版本 Linux 系统,可以通过在桌面右击,选择“Open in Terminal”打开终端。也可以使用~ Ctr 快捷键打开控制台。默认情况下,前6个控制台是命令行控制台,第7个则留给 X 服务器(图形服务器)。
如果你安装的Linux是非桌面版本,那么系统启动后,就进入了控制台(输入用户名和密码登录系统)。如下图:
Linux 命令行界面有一个输入行,用于输入命令。在 BASH 中,命令行以一个美元符号“$”作为提示符,表示用户可以输入指令了。如果以 root 用户登录,那么 Shell 提示符将是“#”。
本节将带领你浏览自己电脑上的文件系统。这里的命令都非常简单,命令详细用法后续章节将介绍。
## 进入根目录 [root@localhost ~]# cd / ## 列出根目录下面所有的文件和目录 [root@localhost /]# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
可以看到,Linux 安装成功后自动在根目录下生成了大量目录和文件。这些目录的具体用途将在后续章节详细介绍。
下面选择 home 目录,该目录中存放着系统中所有用户的主目录(类似Windows的 C:\Users 目录),目录的名称就是用户名称。如下:
## 进入 home 目录 [root@localhost /]# cd home/ ## 查看当前目录下面的目录 [root@localhost home]# ls hxstrive snow
从上面可以得知,笔者的机器上面有 hxstrive 和 snow 两个用户。用户主目录下面放着一些配置文件和用户私有文件。并且用户主目录默认对其他用户是不可见的,即 hxstrive 是不能够看见 snow 的(但是 root 例外)。
【小技巧】
cd 不带任何参数,将进入当前用户的主目录。例如:
## 查看当前目录 [root@localhost /]# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var ## 进入用户主目录 [root@localhost /]# cd ## 查看用户目录 [root@localhost ~]# ls anaconda-ks.cfg
文件名是命令中最为常见的参数,然而每次完整输入文件名是一件很麻烦的事情,特别是文件名称特别长时。幸运的是,BASH提供了命令行补全功能,使用TAB键触发补全功能。在输入文件名时,只需要输入前几个字符,然后按下TAB键,Shell会自动把文件名补全。例如:
## 进入 etc 目录 [root@localhost etc]# cd /etc/ ## 查看 profile 文件详情 [root@localhost etc]# ll pro<Tab> ## 按了 Tab 后将直接补全为 ll profile [root@localhost etc]# ll profile -rw-r--r--. 1 root root 1819 10月 31 2018 profile
如果以输入的字符开头的文件不止一个,则连续按两下TAB键,将罗列出所有以输入字符开头的文件列表。例如:
## 进入 etc 目录 [root@localhost etc]# cd /etc/ ## 列出所有 g 开头的文件或目录 ## 按两下 Tab 键 [root@localhost etc]# ll g<Tab><Tab> gcrypt/ gnupg/ groff/ group group- grub2.cfg grub.d/ gshadow gshadow- gss/
另外,Shell提供了一套通配特殊符号,如下:
* :用于匹配文件名中任意长度的字符串。例如:ls *.java 将匹配所有以 .java 结束的文件
?:只匹配任意一个字符。例如:ls text? 将匹配文件名以 text 开头而后跟一个字符的文件
[] :用于匹配所有出现在方括号内的字符。例如:ls text[123] 将匹配所有以 text 开头,且以 1、2或3结尾的文件。当然,我们也可以使用“-”指定一个字符集。例如:ls text[1-3] 将匹配所有以 text 开头,且以 1、2或3结尾的文件。ls text[A-C] 将匹配所有以 text 开头,且以 A、B或C结尾的文件。