shell简单命令

命令入门:

[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

shell简单命令_第1张图片

查手册&搜索引擎

手册见《参考手册&资料》

搜索:必应  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

shell简单命令_第2张图片

[root@node1 ~]# man ls

shell简单命令_第3张图片

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

shell简单命令_第4张图片

发现还是英文,怎么回事?

这是因为虽然你安装了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

shell简单命令_第5张图片

[root@node1 ~]# man read

shell简单命令_第6张图片

1.3 echo

[root@node1 ~]# help echo

shell简单命令_第7张图片

[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

查看磁盘使用情况

shell简单命令_第8张图片

l  进程查看命令

Ø  ps(process status) :将某个时间点的程序运作情况截取下来

Ø  选项和参数

Ø  a :和输入终端(terminal) 关联的所有 process,通常与x一起使用,

列出完整信息。

Ø  x :后台进程,通常与 a 这个参数一起使用,可列出较完整信息

Ø  u :有效使用者 (effective user) 相关的 process 

l  常用组合

Ø  ps aux 观察系统所有的程序数据 (常用)

你可能感兴趣的:(linux,centos,ubuntu)