shell基础
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基础的更多相关文章
- Shell基础学习小结
0 shell基础概念 Shell是解释性语言,使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象:缺点是它们的效率通常不如编译型语言.Shell命令有本 ...
- Shell基础-环境变量配置文件
Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...
- shell基础二十篇 一些笔记
shell基础二十篇 转自 http://bbs.chinaunix.net/thread-452942-1-1.html 研讨:Bash 内建命令 read (read命令更具体的说明见博客收藏的一 ...
- shell基础(转)
shell基础1:文件安全与权限 http://bbs.chinaunix.net/forum/viewtopic.php?t=434579&highlight=wingger 附:Linux ...
- Linux实战教学笔记17:精简shell基础
第十七节 精简shell基础 标签(空格分隔): Linux实战教学笔记 1,前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, ...
- shell基础及变量
一 Shell概述 1.Shell的作用——命令解释器,“翻译官” shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上. ...
- Shell 基础教程
一个比较好的shell基础教程: http://www.runoob.com/linux/linux-shell.html
- Linux基础学习(10)--Shell基础
第十章——Shell基础 一.Shell概述 1.Shell是什么: (1)Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来 ...
- Linux Shell基础(下)
Linux Shell基础(下) 目录 一.shell特殊符号cut命令 二.cut.sort.wc.uniq命令 三.tee.tr.split命令 四.简易审计系统 五.fork, exec, so ...
- Linux shell基础知识(上)
Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...
随机推荐
- hdu 1039 (string process, fgets, scanf, neat utilization of switch clause) 分类: hdoj 2015-06-16 22:15 38人阅读 评论(0) 收藏
(string process, fgets, scanf, neat utilization of switch clause) simple problem, simple code. #incl ...
- Ubuntu下Speedtest的安装
要安装Speedtest,需要先安装apache,参见<Ubuntu下Apache的安装>一文:*(再安装LAMP server,参见<Ubuntu下快速安装LAMP server& ...
- Get请求编码
遇到get请求中文编码的时候,有的人会采用在Tomcat/conf/server.xml中的如下添加一句: <Connector port="8080" protocol=& ...
- Cache-control使用Cache-control:private学习笔记
其作用根据不同的重新浏览方式,分为以下几种情况:(1).打开新窗口值为private.no-cache.must-revalidate,那么打开新窗口访问时都会重新访问服务器.而如果指定了max-ag ...
- BeanUtil体会
把字符串(非纯数字组成的字符串,带有字符的那种)拷贝到int属性中,int属性值设为0 把字符串(纯数字组成的),赋值给double类型,可以直接转换,int类型也可以直接转换成double类型 但是 ...
- 对HTML+CSS+JavaScript的个人理解
HTML就像人的骨头架子,是人的根基,要有个人样呀,一个网站,一个WebApp要是缺根儿骨头,那就像人少个胳膊少个腿儿的,行动不方便啊:CSS就像人穿得衣服.鞋子,男人的纹身,女人擦得粉儿,好看呀,一 ...
- 查找SAP标准程序用户出口及BADI的方法
查找SAP标准事务代码中使用的BADI: 在SE24中,查看类对象CL_EXITHANDLER,在其方法(Methods)GET_INSTANCE 的第14行打断点,之后运行事务代码: 当有BADI将 ...
- cocos2dx 3.8版关于#include "GB2ShapeCache-x.h"
关于coco2d-x 3.8版的PhysicsEditor.exe1.09版的GB2ShapeCache-x.h.cpp中有些方法更新了和容器的使用方法,还有就是头文件include "CC ...
- 黑马程序员——【Java基础】——泛型、Utilities工具类、其他对象API
---------- android培训.java培训.期待与您交流! ---------- 一.泛型 (一)泛型概述 1.泛型:JDK1.5版本以后出现的新特性,用于解决安全问题,是一个类型安全机制 ...
- linux的软硬链接的特性
硬链接的特征: 1.拥有相同的i节点和储存block块,可以看作是同一个文件 2.可以通过i节点识别 3.不能跨分区 4.不能针对目录使用 软链接的特征: 1.类似于windows的快捷方式 2.软链 ...