Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux的发行版说简单点就是将Linux内核与应用软件做一个打包。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
今天各种场合都有使用各种Linux发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用LAMP(Linux + Apache + MySQL + PHP)或LNMP(Linux + Nginx+ MySQL + PHP)组合。
目前Linux不仅在家庭与企业中使用,并且在政府中也很受欢迎。
安装方法 点击链接可供参考。此处不再赘述,相信大家不管是参考博客里面的方法还是百度搜索,经过一番“别有趣味”的探索折腾后,都可以成功,而且会对自己的电脑比起以前有更多更深入的了解。
那么我们接下来就继续说正题。
输入用户和密码,登录系统后,第一眼看到的内容是:
[root@localhost ~]#
这就是 Linux 系统的命令提示符。那么,这个提示符的含义是什么呢?
[]:这是提示符的分隔符号,没有特殊含义。
root:显示的是当前的登录用户,笔者现在使用的是 root 用户登录。
@:分隔符号,没有特殊含义。
localhost:当前系统的简写主机名(完整主机名是 localhost.localdomain)。
~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。
#:命令提示符,Linux 用这个符号标识登录的用户权限等级。如果是超级用户,提示符就是 #;如果是普通用户,提示符就是 $。
家目录是什么? Linux 系统是纯字符界面,用户登录后,要有一个初始登录的位置,这个初始登录位置就称为用户的家:
超级用户的家目录:/root/。
普通用户的家目录:/home/用户名/。
我们将在此命令提示符下输入一系列命令操作此系统。
命令的基本格式
[root@localhost ~]# 命令[选项][参数]
命令格式中的 [] 代表可选项,也就是有些命令可以不写选项或参数,也能执行。那么,我们就用 Linux 中最常见的 ls 命令来解释一下命令的格式。如果按照命令的分类,那么 ls 命令应该属于目录操作命令。
[root@localhost ~]# ls
anaconda-ks.cfg install.log install.log.syslog
(1) 选项的作用
ls 命令之后不加选项和参数也能执行,不过只能执行最基本的功能,即显示当前目录下的文件名。那么加入一个选项,会出现什么结果?
[root@localhost ~]# Is -l
总用量44
-rw-------.1 root root 1207 1 月 14 18:18 anaconda-ks.cfg
-rw-r--r--.1 root root 24772 1 月 14 18:17 install.log
-rw-r--r--.1 root root 7690 1 月 14 18:17 install.log.syslog
如果加一个"-l"选项,则可以看到显示的内容明显增多了。"-l"是长格式(long list)的意思,也就是显示文件的详细信息。至于"-l"选项的具体含义,我们稍后再详细讲解。可以看到选项的作用是调整命令功能。如果没有选项,那么命令只能执行最基本的功能;而一旦有选项,则可以显示更加丰富的数据。
Linux 的选项又分为短格式选项(-l)和长格式选项(--all)。短格式选项是英文的简写,用一个减号调用,例如:
[root@localhost ~]# ls -l
而长格式选项是英文完整单词,一般用两个减号调用,例如:
[root@localhost ~]# ls --all
一般情况下,短格式选项是长格式选项的缩写,也就是一个短格式选项会有对应的长格式选项。当然也有例外,比如 ls 命令的短格式选项 -l 就没有对应的长格式选项。所以具体的命令选项可以通过后面我们要学习的帮助命令来进行査询。
(2) 参数的作用
参数是命令的操作对象,一般文件、目录、用户和进程等可以作为参数被命令操作。例如:
[root@localhost ~]# ls -l anaconda-ks.cfg
-rw-------.1 root root 1207 1 月 14 18:18 anaconda-ks.cfg
但是为什么一开始 ls 命令可以省略参数?那是因为有默认参数。命令一般都需要加入参数,用于指定命令操作的对象是谁。如果可以省略参数,则一般都有默认参数。例如:
[root@localhost ~]# ls
anaconda-ks.cfg install.log install.log.syslog
这个 ls 命令后面没有指定参数,默认参数是当前所在位置,所以会显示当前目录下的文件名。
总结一下:命令的选项用于调整命令功能,而命令的参数是这个命令的操作对象。
ls 是最常见的目录操作命令,主要作用是显示目录下的内容。
命令名称:ls。
英文原意:list。
所在路径:/bin/ls。
执行权限:所有用户。
功能描述:显示目录下的内容。
[root@localhost ~]#ls [选项][文件名或目录名]
选项:
-a:显示所有文件;
–color=when:支持颜色输出,when 的值默认是 always(总显示颜色),也可以是 never(从不显示颜色)和 auto(自动);
-d:显示目录信息,而不是目录下的文件;
-h:人性化显示,按照我们习惯的单位显示文件大小;
-i:显示文件的 i 节点号;
-l:长格式显示;
cd 是切换所在目录的命令。
命令名称:cd。
英文原意:change directory。
所在路径:Shell 内置命令。
执行权限:所有用户。
功能描述:切换所在目录。
[root@localhost ~]#cd [目录名]
cd 命令是非常简单的命令,仅有的两个选项 -P 和 -L 的作用非常有限,很少使用:
-P(大写)是指如果切换的目录是软链接目录,则进入其原始的物理目录,而不是进入软链接目录;
-L(大写)是指如果切换的目录是软链接目录,则直接进入软链接目录。
特殊符号 | 作用 |
---|---|
~ | 代表用户的家目录 |
- | 代表上次所在目录 |
. | 代表当前目录 |
… | 代表上级目录 |
mkdir 是创建目录的命令,其基本信息如下:
命令名称:mkdir。
英文原意:make directories。
所在路径:/bin/mkdir。
执行权限:所有用户。
功能描述:创建空目录。
命令格式
[root@localhost -]# mkdir [选项]目录名
选项:
-p: 递归建立所需目录
mkdir 也是一个非常简单的命令,其主要作用就是新建一个空目录。
rmdir 是刪除目录的命令,其基本信息如下:
命令名称:rmdir。
英文原意:remove empty directories。
所在路径:/bin/rmdir。
执行权限:所有用户。
功能描述:删除空目录。
命令格式
[root@localhost -]# rmdir [选项]目录名
选项:
-p: 递归刪除目录
touch 的意思是触摸,如果文件不存在,则会建立空文件;
如果文件已经存在,则会修改文件的时间戳(访问时间、数据修改时间、状态修改时间都会改变)。
千万不要把 touch 命令当成新建文件的命令,牢牢记住这是触摸的意思。这个命令的基本信息如下:
命令名称:touch。
英文原意:change file timestamps。
所在路径:/bin/touch。
执行权限:所有用户。
功能描述:修改文件的时间戳。
命令格式
[root@localhost -]# touch [选项]文件名或目录名
选项:
-a:只修改文件的访问时间(Access Time)
-c:如果文件不存在,则不建立新文件
-d:把文件的时间改为指定的时间
-m:只修改文件的数据修改时间(Modify Time)
语法
rm [options] name...
参数:
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
在 Linux 中,文件有访问时间、数据修改时间、状态修改时间这三个时间,而没有创建时间。
stat 是査看文件详细信息的命令,而且可以看到文件的这三个时间,其基本信息如下。
命令名称:stat。
英文原意:display file or file system status。
所在路径:/usr/bin/stat。
执行权限:所有用户。
功能描述:显示文件或文件系统的详细信息。
命令格式
[root@localhost ~]# stat [选项]文件名或目录名
选项:
-f:査看文件所在的文件系统信息,而不是査看文件的信息。
cat 命令用来査看文件内容,这个命令是 concatenate(连接、连续)的简写,基本信息如下。
命令名称:cat。
英文原意:concatenate files and print on the standard output。
所在路径:/bin/cat。
执行权限:所有用户。
功能描述:连接文件并打印输出到标准输出。
命令格式
[root@localhost ~]# cat [选项]文件名
选项:
-A:相当于 -vET 选项的整合,用于列出所有隐藏符号;
-E:列出每行结尾的回车符 $;
-n:显示行号;
-T:把 Tab 键 ^I 显示出来;
-V:列出特殊字符;
语法
mv [options] source dest
mv [options] source... directory
参数说明:
-i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
-f: 在mv操作要覆盖某已有的目标文件时不给任何指示;
mv参数设置与运行结果
命令格式 | 运行结果 |
---|---|
mv 文件名 文件名 | 将源文件名改为目标文件名 |
mv 文件名 目录名 | 将文件移动到目标目录 |
mv 目录名 目录名 | 目标目录已存在,将源目录移动到目标目录,若目录不存在则改名 |
mv 目录名 文件名 | 出错 |
which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
语法
which [文件...]
参数:
-n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。
-w 指定输出时栏位的宽度。
-V 显示版本信息。
任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
语法
find path -option [ -print ] [ -exec -ok command ] {} \;
参数过多,请参看菜鸟教程
在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。
语法
chgrp [-cfhRv][--help][--version][所属群组][文件或目录...]
或 chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
参数说明
-c或–changes 效果类似"-v"参数,但仅回报更改的部分。
-f或–quiet或–silent 不显示错误信息。
-h或–no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件。
-R或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或–verbose 显示指令执行过程。
–help 在线帮助。
–reference=<参考文件或目录> 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
–version 显示版本信息。
语法
cp [options] source dest
或
cp [options] source... directory
参数说明:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。
语法
chmod [-cfvR] [--help] [--version] mode file...
参数说明
mode : 权限设定字串,格式如下 :
[ugoa…][[±=][rwxX]…][,…]
其中:
u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
其他参数说明:
-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
–help : 显示辅助说明
–version : 显示版本
利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。
一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限可以自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。
使用权限 : root
语法
chown [-cfhvR] [--help] [--version] user[:group] file...
参数 :
user : 新的文件拥有者的使用者 ID
group : 新的文件拥有者的使用者组(group)
-c : 显示更改的部分的信息
-f : 忽略错误信息
-h :修复符号链接
-v : 显示详细的处理信息
-R : 处理指定目录以及其子目录下的所有文件
–help : 显示辅助说明
–version : 显示版本
语法
ps [options] [--help]
参数过多,请参考菜鸟教程
tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
请参考菜鸟教程
shutdown 命令可以用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机。
使用权限:系统管理者。
语法
[root@localhost ~]#shutdown [-t seconds] [-rkhncfF] time [message]
参数说明:
-t seconds : 设定在几秒钟之后进行关机程序。
-k : 并不会真的关机,只是将警告讯息传送给所有使用者。
-r : 关机后重新开机。
-h : 关机后停机。
-n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
-c : 取消目前已经进行中的关机动作。
-f : 关机时,不做 fcsk 动作(检查 Linux 档系统)。
-F : 关机时,强迫进行 fsck 动作。
time : 设定关机的时间。
message : 传送给所有使用者的警告讯息。