1、基本命令
1.1 命令入门
1.1.1 命令提示符详解
[root@localhost ~]# #/root [gtjin@localhost ~]$ #/home/gtjin [root@node1 ~]# #/root
用户名@主机名 当前目录 #系统权限 $普通权限
1.1.2 命令格式
命令 [选项] [参数] (三者之间要有空格,区分大小写)
command [-options] [args]
案例演示
[root@node1 ~]# ls anaconda-ks.cfg [root@node1 ~]# ls -a . .. anaconda-ks.cfg .bash_history .bash_logout .bash_profile .bashrc .cshrc .tcshrc .viminfo [root@node1 ~]# ls -a -l 总用量 32 dr-xr-x---. 2 root root 151 8月 18 12:13. dr-xr-xr-x. 17 root root 244 8月 16 21:30.. -rw-------. 1 root root 1201 8月 17 17:51anaconda-ks.cfg -rw-------. 1 root root 2660 8月 17 18:21.bash_history -rw-r--r--. 1 root root 18 12月 29 2013.bash_logout -rw-r--r--. 1 root root 176 12月 29 2013.bash_profile -rw-r--r--. 1 root root 176 12月 29 2013.bashrc -rw-r--r--. 1 root root 100 12月 29 2013.cshrc -rw-r--r--. 1 root root 129 12月 29 2013.tcshrc -rw------- 1 root root 3948 8月 17 18:15.viminfo
1.2 获取命令的帮助
查手册
man 命令
命令 --help
搜索引擎
1.2.1 查手册&搜索引擎
手册见《参考手册&资料》
搜索:必应 www.bing.com、谷歌、百度 等
1.2.2 man
[root@node1 ~]# man ls
q退出命令查看 看到的全是英文,是不是很酸爽,慢慢多看看就好了。如果你英语 烂到完全看不懂,那我再教你一招,汉化man提示信息。 要想汉化man提示信息,系统中需要安装man-pages-zh-CN软件 包。
[root@node1 ~]# yum search man-pages-zh-CN [root@node1 ~]# yum install man-pages-zh-CN -y
是不是可以使用了呢,相信你已经迫不及待的想要测试一把了。
[root@node1 ~]# man ls
但是有的同学发现还是英文,怎么回事?安装系统的时候,没有修 改安装语言环境,还是使用的默认英语的语言环境。虽然你安装了 man的中文包,但是系统的语言还是英文环境,
[root@node1 ~]# echo $LANG en_US.UTF-8
所以需要修改系统的语言环境。
#查看系当前语言包 [root@node1 ~]# locale #临时修改,重启服务器之后就会还原之前的设置 [root@node1 ~]# LANG="zh_CN.UTF-8" #修改为中 文 [root@node1 ~]# LANG="en_US.UTF-8" #修改为英 文 #永久修改就要把配置写入文件里面 [root@node1 ~]# vim /etc/locale.conf LANG=zh_CN.UTF8 #如果将来遇到没有中文包的系统,需要: #查看系统拥有语言包 [root@node1 ~]# locale -a|grep zh_CN* (zh_CN.UTF-8是简体中文,如果没有zh_CN.UTF-8,就安装语言包,如果存在可以直接设置) #安装简体中文语言包 [root@node1 ~]# yum install kde-l10n-Chinese
然后再次测试便有中文信息了。
man的使用:
enter向下一行
空格按页向下翻 b向上翻页
p直接翻到首页
查找按 /要查找的内容,查找 下一个/上一个:按n/N;
退出按q
1.2.3 命令 --help
[root@node1 ~]# mv --help
1.3 echo
[root@node1 ~]# help echo
#echo -n表示不要另起新行 [root@node1 ~]# echo "hello world" hello world [root@node1 ~]# echo -n "hello world" hello world[root@node1 ~]# #-e表示解释逃逸字符 [root@node1 ~]# echo -e "hello \nworld" hello world [root@node1 ~]# echo "hello \nworld" hello \nworld
1.4 环境变量:PATH
当在shell中执行命令的时候,默认到PATH指定的路径中查找可执 行文件。 如果在PATH中的多个目录都包含该可执行文件,则执行最先找到 的。
[root@node1 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
如果找不到,这提示命令不识别。
1.5 ls
ls命令用于列出目录内容
ls :添加-l以长格式输出,列出根目录下内容的详细列表
ls -l :也可以后面跟多个目录,列出多个目录的内容
ls / /usr :也可以通过命令的别名列出详细列表
1.6 pwd
打印当前工作目录路径
[root@node1 ~]# pwd /root
1.7 cd
cd用于更改shell工作目录,也就是切换目录 change directory
#如果cd后什么都不写,表示直接回当前用户家目录 cd cd /etc #cd后跟波浪线,也表示回用户家目录 cd ~ #cd后也可以跟减号(-)用以表示回到最后一次切换之前的 目录,多次使用减号在最近两个目录之间切换 cd /etc/sysconfig/network-scritps cd - #root用户可以直接通过绝对路径进到普通用户的家目录 cd /home/god cd .. ll #也可以直接跟波浪线用户名表示直接进入到某个用户的家目录
1.8 mkdir
mkdir用于创建目录
mkdir abc mkdir a1 a2 a3 #如果直接创建多层目录,则报错,因为默认只能创建最后一级目录 mkdir a/b/c #可以添加-p选项,用以创建多层目录,因为系统发现某一级目录不存在的时候创建父目录 mkdir -p a/b/c #也可以在mkdir后跟多个目录,用于一次性创建多个目录 mkdir ./abc/1dir ./abc/2dir ./abc/3dir #但是可以使用大括号高效创建相似的目录 mkdir ./abc/{x,y,z}dir mkdir abc/{a..c}dir
1.9 cp
cp 文件… 目标目录
拷贝文件…到目标目录,可以同时拷贝多个文件,文件名之间用空 格隔开
[root@node1 ~]# ls anaconda-ks.cfg test [root@node1 ~]# ls test/ a a1 a2 a3 abc [root@node1 ~]# cp anaconda-ks.cfg test/abc/ [root@node1 ~]# ls test/abc/ 1dir 2dir 3dir adir anaconda-ks.cfg bdir cdir xdir ydir zdir [root@node1 ~]# cd test/abc/xdir/ [root@node1 xdir]# pwd /root/test/abc/xdir [root@node1 xdir]# ls #太麻烦了 [root@node1 xdir]# cp /root/anaconda-ks.cfg /root/test/abc/xdir/ [root@node1 xdir]# ls anaconda-ks.cfg #简化版 [root@node1 xdir]# cp ~/anaconda-ks.cfg . cp:是否覆盖"./anaconda-ks.cfg"? y [root@node1 xdir]#
cp -r 目录 目标目录
拷贝目录到目标目录
[root@node1 test]# mkdir xyz [root@node1 test]# ls a a1 a2 a3 abc xyz [root@node1 test]# cp abc xyz/ cp: 略过目录"abc" [root@node1 test]# cp -r abc xyz/ [root@node1 test]# ls a a1 a2 a3 abc xyz [root@node1 test]# ls xyz abc [root@node1 test]# ls -R xyz/ xyz/: abc xyz/abc: 1dir 2dir 3dir adir anaconda-ks.cfg bdir cdir xdir ydir zdir xyz/abc/1dir: xyz/abc/2dir: xyz/abc/3dir: xyz/abc/adir: xyz/abc/bdir: xyz/abc/cdir: xyz/abc/xdir: anaconda-ks.cfg xyz/abc/ydir: xyz/abc/zdir:
1.10 mv
mv用于移动或重命名文件
• 移动文件/目录 #mv 源文件/[源文件1 源文件2] 目标目录
[root@node1 test]# ls a a1 a2 a3 abc xyz [root@node1 test]# cd abc/ [root@node1 abc]# ls 1dir 2dir 3dir adir anaconda-ks.cfg bdir cdir xdir ydir zdir [root@node1 abc]# mkdir -p x/y/z [root@node1 abc]# ls 1dir 2dir 3dir adir anaconda-ks.cfg bdir cdir x xdir ydir zdir [root@node1 abc]# mv anaconda-ks.cfg x/y/ [root@node1 abc]# ls x/y/ anaconda-ks.cfg z [root@node1 abc]# ls 1dir 2dir 3dir adir bdir cdir x xdir ydir zdir [root@node1 abc]# mv x /root/ [root@node1 abc]# ls 1dir 2dir 3dir adir bdir cdir xdir ydir zdir [root@node1 abc]# cd /root/ [root@node1 ~]# ls anaconda-ks.cfg test x [root@node1 ~]# ls -R x/ x/: y x/y: anaconda-ks.cfg z x/y/z:
• Linux中没有专门改名的命令,兼职改名工作:
[root@node1 ~]# cd test/ [root@node1 test]# ls a a1 a2 a3 abc xyz #修改目录名称 mv 旧名称 新名称 [root@node1 test]# mv a3 ao3 [root@node1 test]# ls a a1 a2 abc ao3 xyz [root@node1 test]# cp ~/anaconda-ks.cfg . [root@node1 test]# ls a a1 a2 abc anaconda-ks.cfg ao3 xyz #修改文件 [root@node1 test]# mv anaconda-ks.cfg ks.cfg [root@node1 test]# ls a a1 a2 abc ao3 ks.cfg xyz
1.11 rm
rm用于删除文件
直接删除,需要确认yes
rm file
添加-f选项可以不用确认强制删除
[root@node1 ~]# ls anaconda-ks.cfg ln1 profile test x [root@node1 ~]# rm profile rm:是否删除普通文件 "profile"?y [root@node1 ~]# ls anaconda-ks.cfg ln1 test x [root@node1 ~]# rm -f anaconda-ks.cfg
如果rm的参数是目录,则会提示需要迭代删除而不能成功
[root@node1 ~]# ls ln1 test x [root@node1 ~]# rm x rm: 无法删除"x": 是一个目录 #此时可以添加-r参数表示迭代删除 [root@node1 ~]# rm -r x rm:是否进入目录"x"? y rm:是否进入目录"x/y"? y rm:是否删除目录 "x/y/z"?y rm:是否删除普通文件 "x/y/anaconda-ks.cfg"?n rm:是否删除目录 "x/y"?n rm:是否删除目录 "x"?n [root@node1 ~]# ls ln1 test x #也可以使用-rf选项,迭代强制删除某个文件或目录,此命 令慎用。尤其是rm -rf / [root@node1 ~]# rm -rf x [root@node1 ~]# ls ln1 test