我们以RHEL6.3为例说明。
Linux的命令后面会有命令选项,有的选项还有选项值。选项的前面有短横线“-”,命令、选项、选项值之间使用空格隔开。有的命令没有选项,会有参数。选项是命令内置的功能,参数是用户提供的符合命令格式的内容。
1.1.1. 命令提示符
在桌面上点击鼠标右键,在弹出菜单中选择“Open in Terminal”,
系统会打开终端,类似于Windows下的命令行。Windows的命令行是dos环境,Linux下的命令行是shell环境。我们的所有命令都是在shell下运行的,后面所有章节的命令也是在shell下执行的。
用户刚打开终端时,显示如下的提示符,我们要注意的是中括号里面的内容。
提示符通过符号“@”分为两部分,前面的“root”是当前登录用户。如果你使用bling登录,那么这里会显示“[[email protected] Desktop]”。后面的“localhost Desktop”,被空格分为两部分,前面的“localhost”表示主机名称,是本机的唯一标识;如果我们修改了主机名称,那么该值就会变化;后面的“Desktop”表示shell显示的当前路径。中括号后面的“#”是提示shell类型,我们只关注黑色的光标在哪里就行了。
1.1.2. 路径操作
* 路径描述符
在Linux中,路径是通过斜线“/”划分的。在一个使用“/”划分的长路径中,开头的如果是“/”,这个斜线是特殊的,称作根路径。根路径使用“/”表示,在路径的开始位置,类似于Windows的“我的电脑”;点号“.”表示当前路径,无论你在哪个位置,点号都表示当前所在的路径;两个点“..”表示上级路径;波浪形“~”表示用户主目录,如果使用root用户登录,那么“~”表示/root;如果使用用户bling登录,那么“~”表示/home/bling。
* 路径跳转命令cd
格式:cd 目标路径
执行“cd ..”是从当前路径跳到上级路径。
执行“cd /usr/local”是跳转到根路径下的usr路径下的local路径。
1.1.3. 目录和文件操作
目录就是我们看到的文件夹,常见操作包括创建、删除、移动、复制、重命名、查找、查看、修改权限等。
* 查看命令ls
格式:ls 路径
命令“cd ~”表示跳转到root用户主目录。
通过“pwd”查看路径位置。
执行命令“ls”显示当前用户主目录下有哪些文件和文件夹。在RHEL中,蓝色字体显示的是文件夹,黑色字体显示的是文件,一共有11个文件(夹)。
执行命令“ls -a”显示的内容比前面的命令显示了更多,包括“.”开头的各种文件夹。在Linux中,“.”开头的文件(夹)表示隐藏文件,仅使用命令“ls”是看不到的,选项“-a”的作用是显示所有文件(夹),包含隐藏的。
选项“-l”表示以列表形式显示。
执行命令“ls -al”,显示的文件(夹)数量与前面的命令相同,只是排列方式不一样,每一个文件(夹)显示的内容更加全面。这里“-al”是参数“-a”和“-l”的简写。
注意:命令与选项之间使用空格区分,几个空格无所谓,只要有使用空格区分即可。
* 创建目录命令mkdir
格式:mkdir 目录名称
使用命令“mkdir –p”可以递归创建父目录,也就是说父目录不存在,会先创建父目录,再创建自身目录。在当前环境下,请读者分别执行“mkdir d1/d2/d3/d4”和“mkdir d1/d2/d3/d4”。
* 删除目录命令rmdir
格式:rmdir 待删除的目录
紧接着上面的步骤,执行以下命令
可以看到test目录被删除了。
注意:命令rmdir只能删除目录,并且是空目录。如果目录中含有文件(夹),该命令执行会失败,应该使用rm命令了。
* 最强大的删除命令rm
格式:rm 待删除的目录或文件
rm不仅可以删除文件,也可以删除目录,即使目录不空。
使用命令“rm -r”删除test,会出现各种提示,只要不断的输入“y”,按回车。最后成功删除了。可见命令rm可以递归删除目录。如果要避免繁琐的提示信息,使用命令“rm -rf”,请读者自己测试。
注意:命令“rm -rf”在递归删除的时候没有任何提示,所以一定要小心误删文件。
* 创建空白文件命令touch
格式:touch 文件名
该命令请读者自行测试,不再演示。
* 编辑文件vi
vi命令非常复杂,会占用太多篇幅,此处略过,请读者自行查询相关资料。
* 移动文件(夹)命令mv
格式:mv 源文件(夹) 目标路径
移动文件(夹)时,命令后面需要跟两个参数,第一个是源文件(夹)路径,第二个是目标路径。文件(夹)会从原路径移动到新的路径,原路径下不再存在了。
该命令与移动命令相同,如果第二个参数是目录,就是移动操作;如果第二个参数是文件,就是重命名操作。
* 复制文件(夹)命令cp
格式:cp 源文件(夹) 目标路径
复制文件(夹)时也跟两个参数,第一个是源,第二个表示目的地。
命令“cp -r”可以递归复制,也就是把源文件夹里面的所有内容一起复制到目的地。如果目的地存在相同名称的文件(夹),会提示覆盖。
注意:当复制文件并且目的地文件不存在的时候,复制操作有创建文件的作用了。
* 查看文件内容命令cat
格式:cat 文件名
该命令请读者自行测试,不再演示。
* 查看文件内容命令more
格式:more 文件名
请读者自行测试该命令,不再演示。与cat的区别是,当文件内容很多,一屏幕显示不下时,cat会滚屏到文件最后,more显示一屏后停止,用户按空格键,继续滚到下一屏。简单点说,more是分屏显示内容。
* 命令的百科全书man
格式:man 命令名称
命令man是Linux的帮助系统,对于任何命令都可以在man中查到。用法是“man 某个命令”。如果显示帮助内容太多了,会分屏,如果你想退出,请按“q”键。
* 修改权限命令chmod
当我们执行命令“ls -l”时,会看到以下输出
现在讲述每一行输出的前10位字符含义。
第一位字符表示文件类型,如果是“d”,表明是文件夹,如果是“-”,表示是普通文件。可以看到“file1”是文件,“test1”是文件夹。
后面的九位字符,表示文件(夹)的权限。把九位字符按照三个一组,划分为三个组。其中,第一组表示文件的用户,用u表示(可以理解为文件的所有人,英文是user)的权限,第二组表示文件的所有者所在组,用g表示(英文是group)的权限,第三组表示除此之外的其他人,用o表示(英文是other)的权限。
每一组都包括三位字符。其中,第一位字符表示读权限,用r表示(英文是read),第二位字符表示写权限,用w表示(英文是write),第三位字符表示执行权限,用x表示(英文是execute)。如果拥有该权限,对应位置的字符就使用该字符,如果没有改权限,就使用“-”表示。
命令格式是“chmod [权限模式] 文件”,表示对某文件执行权限模式。
以下举例说明
解释一下:
命令“chmod u+x file1”表示对用户增加执行权限;
命令“chmod o+wx file1”表示:对其他人增加写、执行权限;
命令“chmod a-r file1”表示:对所有人去掉读权限。
另外,每组的三位权限符号也可以使用数字表示,“r、w、x”对应的数字分别是“4、2、1”。如果一个用户对应的权限位是“rw-”,用数字表示就是6(即6=4+2),看以下示例:
使用数字表达权限更加简洁,以后我们经常会说某个文件有755、644权限,读者应该明白用户、组、其他人分别是什么权限。
1.1.4. 网络相关
* 主机名命令hostname
格式:hostname
该命令可以查看主机名。
如果使用命令“hostname 新主机名”,意味着修改主机名,但只对本次会话有效,重启机器后失效。
* 查看ip命令ifconfig
格式:ifconfig
可以查看所有网卡的配置信息。命令“ifconfig eth0”只查看指定网卡的配置信息;
l 服务管理命令service
命令“service”用户管理Linux的各种服务,操作包括四种类型start、stop、restart、status。前三种含义非常清晰,第四种表示查看服务当前运行状态。
如命令“service network restart”表示重启网卡设置。
1.1.5. 系统相关
* 修改密码passwd
格式:passwd 用户名
该命令的作用是修改密码。
l 别名命令alias
格式:alias 别名=“新的命令定义”
该命令的作用是给一个长命令起一个短名字,方便记忆和使用。例如:
* 解压缩命令tar
命令tar可以压缩也可以解压缩。我们关注解压缩。
我们常见的压缩格式是“*.tar”,指的是使用tar工具打包。更常见的是“*.tar.gz”,指的是使用tar工具打包并且压缩成“gz”格式。
常见的操作命令是“tar -xzvf [文件.tar.gz]”。现在解释一下这几个参数:
参数x表示解压操作;
参数z表示使用gzip解压文件;
参数v表示解压过程中显示文件详情;
参数f表示指定文件名,空格之后是一个文件名;
* 查看文件大小命令du
格式:du 文件(夹)
该命令是查看文件大小。常用方式“du -hs [文件(夹)]”
* 查看磁盘容量命令df
格式:df
查看磁盘容量,常用命令“df -h”
* 查看进程命令ps
格式:ps
查看进程使用命令“ps”,加上参数“-ef”,查看当前活动的进程。
在显示内容中,我们关系PID和CMD两项,前者表示进程号,后者表示进程名称。
* 结束进程命令kill
格式:kill 进程号
kill命令用来结束进程,我们一般都是强制结束某个进程,命令格式“kill -9 进程号”。这里的进程号,就是命令ps看到的PID。
读者可以结束CMD是“bash”的进程,试试结果如何。
* 管道
管道用符号“|”,左右两边都是命令。表示左边命令的输出作为右边命令的输入。如下命令:
解释一下:
命令“cat /etc/sysconfig/network”表示查看文件内容;
命令“wc -l”表示统计文件行数;
这两个命令使用管道连接到一起,表示命令“cat”的输出作为命令“wc”的输入,显示2行。
* 重定向
shell的命令默认输入信息是来自于命令行的,默认输出信息也是到命令行的。如果输入不是来自命令行、输出不是到命令行,那就需要重定向。
重定向使用“>>”或者“>”表示。前者表示追加,后者表示覆盖。
使用命令“cat file1 >> file2”可以把file1的文件内容追加到file2的内容后面。注意命令中“>>”的使用,如果改为“>”,则是覆盖操作,并且没有任何提示。
注意:Linux的命令,还有很多,上面的命令只是最常用命令中的一部分。即使上面讲到的命令的用法,也是很少一部分,这些命令和功能是学习本书必备的,更多命令和功能请问百度或者使用强大命令“man”。
Hadoop学习常用的Linux命令