命令是我们跟 Linux 操作系统做交互的一种手段,在图形化操作系统诞生之前的所有操作系统界面,都是命令行界面。图形化的诞生让电脑迅速普及,因为界面式的学习成本更低,但这并不能说明图形界面的操作方式要比命令行更高效。当然我们不能否定有一些应用领域非图形界面不可,但是在服务器领域,命令行的操作确实是更高效的。
其实 每一个命令就是一个软件
,虽然它的功能很小很集中,只完成最简单的一个点,但是命令与命令之间可以互相组合起来干大事,这也是 Linux 设计哲学中的一部分。Shell 编程
玩的就是对命令的组合。
命令通常是带参数的,不同的参数作用了不同的命令功能,我们拿 ls
命令举例,它是最常用的 Linux 命令之一,用于列出目录文件。
root@localhost:~$ ls // 如果不带任何参数,列出当前目录
file
root@localhost:~$ ls -a // 列出当前目录所有文件 (包括隐藏文件,在 Linux 中,每一个以 . 开头的文件都是隐藏文件)
.
..
.cache
.mysql_history
.profile
.ssh
.vimrc
file
root@localhost:~$ ls -al // -l 是列出文件详情,由于命令的参数是可以组合的,所以 "-al" 就是列出所有文件详情信息
drwx------ 8 root root 4096 Nov 8 21:17 .
drwxr-xr-x 23 root root 4096 Jul 9 01:36 ..
-rw------- 1 root root 26849 Nov 27 00:06 .bash_history
-rw-r--r-- 1 root root 3106 Oct 22 2015 .bashrc
drwx------ 3 root root 4096 Aug 8 2017 .cache
drwxr-xr-x 3 root root 4096 Dec 6 2017 .config
-rw-r--r-- 1 root root 122 Dec 16 2017 .gitignore
-rw------- 1 root root 13 May 23 2018 .mysql_history
-rw-r--r-- 1 root root 0 Dec 6 2017 .node_repl_history
drwxr-xr-x 256 root root 12288 Apr 16 2018 .npm
-rw-r--r-- 1 root root 148 Aug 17 2015 .profile
...
man 是 Linux 操作系统自带的命令查询手册,它能帮助我们获取到一个命令的使用方法,例如 man ls
我们会得到关于 ls 命令的一切。
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default). Sort entries alphabetically if
none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
--author
with -l, print the author of each file
-b, --escape
...
一些常用的基本命令, 可以参考 - Linux 基础命令 .