命令入门:
[root@localhost ~]# #/root
[jinxf@localhost ~]$ #/home/jinxf
用户名@主机名 当前目录 #系统权限 $普通权限
命令格式
命令 | 选项 | 参数(三者之间要有空格,区分大小写) |
command | [-options] | [args]:参数(多个参数之间用空格分隔) |
案例演示:
[root@node1 ~]# ls -a
. a anaconda-ks.cfg .bash_logout .bashrc install.log .tcshrc x
.. abc .bash_history .bash_profile .cshrc install.log.syslog .viminfo xyz
[root@node1 ~]# ls -a -l
total 72
dr-xr-x---. 6 root root 4096 Nov 27 12:37 .
dr-xr-xr-x. 22 root root 4096 Nov 27 09:22 ..
drwxr-xr-x 3 root root 4096 Nov 27 10:17 a
drwxr-xr-x 8 root root 4096 Nov 27 10:53 abc
-rw-------. 1 root root 900 Nov 27 03:47anaconda-ks.cfg
-rw-------. 1 root root 828 Nov 27 09:48.bash_history
-rw-r--r--. 1 root root 18 May 20 2009 .bash_logout
-rw-r--r--. 1 root root 176 May 20 2009 .bash_profile
-rw-r--r--. 1 root root 176 Sep 23 2004 .bashrc
-rw-r--r--. 1 root root 100 Sep 23 2004 .cshrc
-rw-r--r--. 1 root root 8815 Nov 27 03:47 install.log
-rw-r--r--. 1 root root 3384 Nov 27 03:46 install.log.syslog
[root@node1~]# ls -al install.log
-rw-r--r--. 1 root root 8815 Nov 27 03:47install.log
[root@node1 ~]# ls -al install.log install.log.syslog
-rw-r--r--. 1 root root 8815 Nov 27 03:47install.log
-rw-r--r--. 1 root root 3384 Nov 27 03:46install.log.syslog
[root@node1 ~]# ls -al install*
-rw-r--r--. 1 root root 8815 Nov 27 03:47install.log
-rw-r--r--. 1 root root 3384 Nov 27 03:46 install.log.syslog
[root@node1 ~]# ls -al *.log
-rw-r--r--. 1 root root 8815 Nov 27 03:47install.log
[root@node1 ~]# ls -al *.log*
-rw-r--r--. 1 root root 8815 Nov 27 03:47install.log
-rw-r--r--. 1 root root 3384 Nov 27 03:46install.log.syslog
1.2 获取命令的帮助
1、使用help查看内建命令的帮助(enable查看内建命令)
2、info命令
3、--help
4、#man命令
5、查手册
6、搜索引擎
1.2.1 help
[root@node1 ~]# help -s cd
cd: cd [-L|-P] [dir]
[root@node1 ~]# help -d cd
cd - Change the shell workingdirectory.
[root@node1 ~]# help -m cd
NAME
cd - Change the shell working directory.
SYNOPSIS
cd [-L|-P] [dir]
DESCRIPTION
Change the shell working directory.
Change the current directory to DIR. The default DIR is the value of the
HOMEshell variable.
……
但是help只能查看内建命令,比如我想查看mv的帮助信息就不行
[root@node1 ~]# help mv
bash: help: no help topics match`mv'. Try `help help' or `man -k mv' or`info mv'.
我们怎么知道哪些是内建命令呢?
[root@node1 ~]# enable
enable也不用背,该方式比较费时间,help无法使用时,根据提示换其他帮助方式就ok了。
1.2.2 命令 --help
[root@nodel ~]# mv --help
查手册&搜索引擎
手册见《参考手册&资料》
搜索:必应 www.bing.com
谷歌/百度等
man
man安装
当前虚拟机中不能直接使用man,默认是没有安装的,不识别man命令。
[root@node2 ~]# man ls
-bash: man: command not found
所以需要安装,安装man和man-pages手册,查看命令的帮助信息
[root@node1 ~]# yum install man man-pages -y
[root@node1 ~]# man ls
q退出命令查看
看到的全是英文,是不是很酸爽,慢慢多看看就好了。如果你英语烂到完全看不懂,那我再教你一招,汉化man提示信息。
要想汉化man提示信息,系统中需要安装man-pages-zh-CN软件包。默认情况下,系统自带的yum源不包含man-pages-zh-CN。
[root@node2 ~]# yum search man-pages-zh-CN
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base:mirrors.huaweicloud.com
* extras:mirror.bit.edu.cn
* updates:mirror.bit.edu.cn
Warning: No matches found for: man-pages-zh-CN
No Matches found
默认的源存放目录:
[root@node2 ~]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
所以下载后的第三方yum源epel也保存到该目录下,使用yum命令时会去该目录下解析后缀名为repo的文件。
[root@node1 ~]# wget -O /etc/yum.repos.d/epel.repohttp://mirrors.aliyun.com/repo/epel-6.repo
-bash: wget: command not found
wget不能使用,需要先安装,安装wget,否则无法通过该命令进行下载。
[root@node1 ~]# yum install wget -y
然后将epel的源放到本地,然后清除yum本地缓存,重新生成缓存。
[root@node1 ~]#wget -O /etc/yum.repos.d/epel.repohttp://mirrors.aliyun.com/repo/epel-6.repo
[root@node1 ~]# yum clean all
[root@node1 ~]#yum makecache
[root@node1 ~]# yum install man-pages-zh-CN -y
是不是可以使用了呢,相信你已经迫不及待的想要测试一把了。
[root@node1 ~]# man ls
发现还是英文,怎么回事?
这是因为虽然你安装了man的中文包,但是系统的语言还是英文环境,
[root@node1 ~]# echo $LANG
en_US.UTF-8
所以需要修改系统的语言环境。
[root@node1 ~]# LANG=zh_CN.UTF-8
[root@node1 ~]# echo $LANG
zh_CN.UTF-8
然后再次测试便有中文信息了。
但是这样修改这有效到断开连接,或者下次重启系统。如何才能长期有效呢?
[root@node1 ~]# vim /etc/sysconfig/i18n
1.2.4.2 man的使用
enter 向下一行 退出按q
空格按页向下翻 b向上翻页 p直接翻到首页 查找按/要查找的内容,查找 下一个/上一个: 按n/N
man
- 1 用户命令(/bin,/usr/bin,/usr/local/bin)
- 2 系统调用
- 3 库函数
- 4 特殊文件(设备文件)
- 5 文件格式(配置文件的语法)
- 6 游戏
- 7 杂项(Miscellaneous)
- 8 管理命令(/sbin,/usr/sbin,/usr/local/sbin)
指定查看某种帮助:
[root@node1~]# man 2 read
[root@node1 ~]# man read
1.3 echo
[root@node1 ~]# help echo
[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 test命令
计算3>2 的结果,打印返回值,计算3
echo $? 打印上一行命令的执行结果
[root@node1 ~]# test 3 -gt 2
[root@node1 ~]# echo $?
0
[root@node1 ~]# test 3 -lt 2
[root@node1 ~]# echo $?
1
[root@node1 ~]# test 5 -lt 2
[root@node1 ~]# echo $?
1
成立返回0(true),不成立返回1(false)
[root@node1 ~]# [ 3 -gt 2 ]
[root@node1 ~]# echo $?
0
[root@node1 ~]# [ 5 -lt 2 ]
[root@node1 ~]# echo $?
1
[root@node1 ~]# [ 5 -lt 2]
-bash: [: missing `]'
[root@node1 ~]# [5 -lt 2 ]
-bash: [5: command not found
[]和内容之间一定要有空格,否则抛错。
1.5 环境变量: PATH
当在shell中执行命令的时候,默认到PATH指定的路径中查找可执行文件
如果在PATH中的多个目录都包含该可执行文件,则执行最先找到的。
[root@node1 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
如果找不到,这提示命令不识别。
1.6 type 和 file
1.6.1 type命令:外部命令和内部命令
type 打印一个字符串的类型,可能的值为:别名、内置命令、函数、关键字、可执行文件或者什么都不输出(不是前面的类型)
操作系统:kernel内核+shell壳
查看cd命令的类型:
[root@node1 ~]# type cd
cd is a shell builtin
cd是一个builtin命令,也就是bash内置的命令。
查看yum命令的类型:
[root@node1 ~]# type yum
yum is /usr/bin/yum
yum是外部命令
1.6.2 file命令:检查文件的类型
[root@node1 ~]# file /usr/bin/yum
/usr/bin/yum: a /usr/bin/python script textexecutable
yum命令是外部命令,它的文件是python脚本类型文件。
[root@node1 ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
1.7 ls
ls命令用于列出目录内容: ls
添加-l以长格式输出,列出根目录下内容的详细列表 : ls -l
也可以后面跟多个目录,列出多个目录的内容:ls / /usr
也可以通过命令的别名列出详细列表:
ll
ls -a
ls -a -l
ls -al
1.8 pwd 打印当前工作目录路径
1.9 cd
cd用于更改shell工作目录,也就是切换目录 change directory cd
cd /etc
如果cd后什么都不写,表示直接回当前用户家目录
cd cd /etc
cd后跟波浪线,也表示回用户家目录
cd ~
cd后也可以跟减号(-)用以表示回到最后一次切换之前的目录,多次使用减号在最近两个目录之间切换
cd /etc/sysconfig/network-scritps cd -
root用户可以直接通过绝对路径进到普通用户的家目录
cd /home/god cd .. ll
也可以直接跟波浪线用户名表示直接进入到某个用户的家目录
cd ~bjsxt 到用户bjsxt家中去,root不受限制
1.10 ps
可以通过命令查看系统内进程信息
ps -ef
查看磁盘使用情况
l 进程查看命令
Ø ps(process status) :将某个时间点的程序运作情况截取下来
Ø 选项和参数
Ø a :和输入终端(terminal) 关联的所有 process,通常与x一起使用,
列出完整信息。
Ø x :后台进程,通常与 a 这个参数一起使用,可列出较完整信息
Ø u :有效使用者 (effective user) 相关的 process
l 常用组合
Ø ps aux 观察系统所有的程序数据 (常用)