1.显示当前登录linux系统的用户

2.当用户登录到linux系统后,一旦出现提示符时,便可以输入操作命令了。命令可以分为如下两类:

(1).bash内置的命令;

(2).应用程序。

怎么知道哪些指令是bash内置的命令,哪些是应用程序呢?可以用which命令进行查看,如下:

[root@redhat2 ~]# which echo

/bin/echo

[root@redhat2 ~]# which ls

alias ls='ls --color=auto'

/bin/ls

[root@redhat2 ~]#

3.特殊字符及引号

5.显示当前的目录

[root@redhat2 gok]# pwd

/usr/share/gok

6.命令的排列、替换和别名

在shell中可以使用命令排列同时执行多个命令,可以使用命令替换将一个命令的输出当作了另一个命令的输入,也可以将复杂命令定义别名。

(1).命令的排列

如果希望一次执行多个命令,shell允许在不听命令之间,放上特殊的排列字符。这里将介绍经常用的两种方法。

【1】 使用 “;”

使用 “;”命令时先执行命令1,不管命令1是否出错,接下来就执行命令2。

命令语法:

命令1;命令2

例:

注:先在屏幕上列出 /boot目录中的所有内容,然后列出目录/boot及其子目录所占磁盘大小

【2】使用“&&”

使用“&&”命令时只有当命令1正确运行完毕后,才能执行命令2.

命令1&&明令2

例:使用排列命令“&&”同时执行两个命令。

(2). 命令替换

命令替换这种机制的语法如下:

命令1 $(命令2)

除了使用“$( )”之外,还可以使用后引号“  `   ”,命令语法如下所示。

命令1  `命令2`

这样虽然可以减少输入,但可读性差,而且容易和没有替换功能的一般单引号混淆。命令替换是一项很实用的功能。假设想查看进程less的进程号,就可以使用如下命令:

发现less进程的进程号为2524。现在要杀死该进程,可以使用命令替换功能,命令如下所示:

[root@redhat2 ~]# kill -9 $(pidof less)

[root@redhat2 ~]#

命令 “pidof l ess”的输出“2524”作为命令“kill -9” 的参数,然后就可以杀死该进程了。结束一个名为less的进程前先得用命令pidof找出相应的进程号,然后以这个进程号为参数,运行kill命令,这样就可以结束less进程。

使用如下替换命令也可以实现同样功能:

7.命令别名

在需要执行某一非常长的命令时,所有的命令以及命令的选项、参数都要一一输入,很枯燥也容易犯错。可以为常用命令定义快捷方式,这些快捷方式可以用较简单的命令别名来定义。

命令语法:

alias [别名]=[需要定义别名的命令]

说明:命令中有空格的话,就需要用引号(如在命令与可选项间就有空格)。

例如,使用下面的命令查看/boot目录内容

显然,如果每次需要查看/boot目录都要输入这样的命令,会很麻烦,因此可以定义别名。

使用如下命令定义别名为ok。

当用户需要取消别名的定义时使用unalias,其命令格式如下:

语法命令:

Unalias [别名]

要取消之前定义的别名ok,使用如下命令。

在重新启动计算机以及关闭终端以后,定义的别名会失效。若系统中有一个命令,同时又定义了一个与其同名的别名,则别名将优先于系统中原有的命令的执行。

8.管道

它可以将某个命令的输出信息当作某个命令的输入,由管道符号“|”来标识。

命令语法:

[命令1] | [命令2] |[命令3]

例1:

[root@redhat2 ~]# ls --help|more
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort.

Mandatory arguments to long options are mandatory for short options too.
-a, --all do not ignore entries starting with .
-A, --almost-all do not list implied . and ..
--author with -l, print the author of each file
-b, --escape print octal escapes for nongraphic characters
--block-size=SIZE use SIZE-byte blocks. See SIZE format below
-B, --ignore-backups do not list implied entries ending with ~
-c with -lt: sort by, and show, ctime (time of last
modification of file status information)
with -l: show ctime and sort by name
otherwise: sort by ctime
-C list entries by columns
--color[=WHEN] colorize the output. WHEN defaults to `always'
or can be `never' or `auto'. More info below
-d, --directory list directory entries instead of contents,
and do not dereference symbolic links
-D, --dired generate output designed for Emacs' dired mode
-f do not sort, enable -aU, disable -ls --color
-F, --classify append indicator (one of */=>@|) to entries
--file-type likewise, except do not append `*'
--format=WORD across -x, commas -m, horizontal -x, long -l,

命令ls  /etc显示/etc目录的内容,命令more时分页显示内容.

例2:

使用复杂的管道

[root@redhat2 ~]# rpm -qa |grep a|more
system-config-network-tui-1.6.0.el6.2-1.el6.noarch
xdg-utils-1.0.2-17.20091016cvs.el6.noarch
liberation-fonts-common-1.05.1.20090721-5.el6.noarch
sgml-common-0.6.3-32.el6.noarch
khmeros-fonts-common-5.0-9.el6.noarch
iwl100-firmware-39.31.5.1-1.el6.noarch
alsa-utils-1.0.22-3.el6.x86_64
PackageKit-0.5.8-20.el6.x86_64
ncurses-base-5.7-3.20090208.el6.x86_64
readahead-1.5.6-1.el6.x86_64
openldap-2.4.23-26.el6.x86_64
spice-vdagent-0.8.1-3.el6.x86_64

//命令rpm -qa 显示已经安装在系统上的RPM包,命令grep a 是过滤软件包,命令more是分页显示这些信息。

9.重定向文件

有时,希望将命令的输出结果保存到文件中,或以文件内容作为命令的参数,这时就需要用到重定向。重定向不适用系统标准输入端口、标准输出端口或标准错误端口,而进行重新的指定。重定向有5种方式、分别是:输出重定向、输入重定向、错误重定向、追加重定向以及同时实现输出和错误的重定向。

(1).输出重定向

输出重定向,即将命令的输出保存到文件file中,如果存在相同的文件,则覆盖file文件中的内容。

命令语法:

Command >file

例1:

使用输出重定向将目录/boot的内容保存到文件/root/abc。

[root@redhat2 ~]# ls /boot >/boot/abc
[root@redhat2 ~]# cat /boot/abc
abc
config-2.6.32-279.el6.x86_64
efi
grub
initramfs-2.6.32-279.el6.x86_64.img
lost+found
symvers-2.6.32-279.el6.x86_64.gz
System.map-2.6.32-279.el6.x86_64
vmlinuz-2.6.32-279.el6.x86_64
[root@redhat2 ~]#

例2:使用echo 命令和输出重定向创建文本文件/root/mm,内容是hell ! Welcome to beijing!

[root@redhat2 ~]# echo hello>/root/mm
[root@redhat2 ~]# cat /root/mm
hello
[root@redhat2 ~]#

(2).输入重定向

输入重定向,即将文件file的内容作为command命令的输入。

命令语法:

Command <file

例1:使用输入重定向将文件/root/mm的内容作为输入cat命令执行。

[root@redhat2 ~]# cat </root/mm
hello
[root@redhat2 ~]#

(3).错误重定向

错误重定向,即将command命令执行的出错信息输出到文件file中。

Command 2> file

查看根本不存在的/root/kk文件,出现报错信息,将其保存到文件/root/b中。

[root@redhat2 ~]# cat /root/kk 2>/root/b
[root@redhat2 ~]# cat /root/b
cat: /root/kk: No such file or directory
[root@redhat2 ~]#

(4).追加重定向

追加重定向,即将命令执行的输出添加到已存在的文件中。

命令语法:

Command >>file

例:

使用追加重定向将数据写入文件/root/a。

[root@redhat2 ~]# cat /root/b
cat: /root/kk: No such file or directory
[root@redhat2 ~]# echo aaa>/root/a
[root@redhat2 ~]# echo bbb>>/root/a
[root@redhat2 ~]# cat /root/a
aaa
bbb
[root@redhat2 ~]#

(5).同时实现输出和错误的重定向

[root@redhat2 ~]# ls /boot &>/root/kk
[root@redhat2 ~]# cat /root/kk
abc
config-2.6.32-279.el6.x86_64
efi
grub
initramfs-2.6.32-279.el6.x86_64.img
lost+found
symvers-2.6.32-279.el6.x86_64.gz
System.map-2.6.32-279.el6.x86_64
vmlinuz-2.6.32-279.el6.x86_64
[root@redhat2 ~]#

shell基础的更多相关文章

  1. Shell基础学习小结

    0 shell基础概念 Shell是解释性语言,使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象:缺点是它们的效率通常不如编译型语言.Shell命令有本 ...

  2. Shell基础-环境变量配置文件

    Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...

  3. shell基础二十篇 一些笔记

    shell基础二十篇 转自 http://bbs.chinaunix.net/thread-452942-1-1.html 研讨:Bash 内建命令 read (read命令更具体的说明见博客收藏的一 ...

  4. shell基础(转)

    shell基础1:文件安全与权限 http://bbs.chinaunix.net/forum/viewtopic.php?t=434579&highlight=wingger 附:Linux ...

  5. Linux实战教学笔记17:精简shell基础

    第十七节 精简shell基础 标签(空格分隔): Linux实战教学笔记 1,前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, ...

  6. shell基础及变量

    一 Shell概述 1.Shell的作用——命令解释器,“翻译官” shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上. ...

  7. Shell 基础教程

    一个比较好的shell基础教程: http://www.runoob.com/linux/linux-shell.html

  8. Linux基础学习(10)--Shell基础

    第十章——Shell基础 一.Shell概述 1.Shell是什么: (1)Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来 ...

  9. Linux Shell基础(下)

    Linux Shell基础(下) 目录 一.shell特殊符号cut命令 二.cut.sort.wc.uniq命令 三.tee.tr.split命令 四.简易审计系统 五.fork, exec, so ...

  10. Linux shell基础知识(上)

    Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...

随机推荐

  1. MVC模型

    MVC:model.view.controller. 浏览器browser发出一个请求,被servlet(控制器controller)接收,由servlet去实例化一个模型层(JavaBean)的对象 ...

  2. Servlet路径跳转1---使用相对路径和绝对路径,在页面上调用servlet的路径写法(超链接的方式和表单的方式)

    课程1-13   http://www.imooc.com/video/5554 Servlet路径跳转: 绝对路径:放在任何地方都对的路径 相对路径:相对于当前资源的路径 index文件 加上/,表 ...

  3. 作业七:团队项目——Alpha版本冲刺阶段 001

    今天进展:准备开发环境,安装软件. 今天安排:因为软件过于庞大,所以我们第一天都在按软件,原本计划第一天要设计框架,但因为软件问题.所以我们决定留到第二天.

  4. Hadoop数据类型介绍

    我们知道hadoop是由Java 编程写的.因此我们使用Java开发环境来操作HDFS,编写mapreduce也是很自然的事情.但是这里面hadoop却对Java数据类型进行了包装,那么hadoop的 ...

  5. iOS 服务器端推送证书p12文件制作

    A.苹果服务器地址: Production和development用的push的服务器不同pdev是:$apnsHost = 'gateway.sandbox.push.apple.com';pro是 ...

  6. 利用Scrollow写一个下拉刷新

    利用scrollView滑动的2个监听方法实现 //滑动结束时候 出发的方法 - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView ...

  7. sqoop的export导入到oracle中

  8. Qt msgBox 快捷版

    使用 int iRet = msgBox(pos, tr("警告") , tr("确定要删除当前选中的行吗?") , tr(, ); == iRet) retu ...

  9. OSI模型

    1.物理层 •设备间接收或发送比特流 •说明电压.线速和线缆等 例子: EIA/TIA-232 V.35 2. 数据链路层 •将比特组合成字节进而组合成帧 •用MAC地址访问介质 •错误发现但不能纠正 ...

  10. php大力力 [039节] 修改一下后台项目,同时启用印象笔记,要做的事情todo列表,记录在印象笔记,速度快一些

    php大力力 [039节]  修改一下后台项目,同时启用印象笔记,要做的事情todo列表,记录在印象笔记,速度快一些