linux从shell开始

1:shell基础:

     学过linux的都知道有shell这么个概念,shell是介于user与kernel之间的,user的操作或是指令经过shell解释传递给 kernel,kernel就能够理解并执行相应的操作,我们为什么要学习shell呢?因为shell很重要,有人说过linux的一切都可以使用命令行操作,那么你所使用的命令行又是什么呢?shell不仅包括命令行操作的命令,也包括图形界面的软件,而且据我看来,你只要是干linux相关的,就要求会写一定的脚本,当然,你说我能用python,我只能呵呵。

查看系统能使用的shell与正在使用的shell:我们可以查看/etc/shells文件,一般操作系统默认的是/bin/bash,你可以直接echo $SHELL,既然使用的是bash那就说明它肯定有优点呗,那它的优点是什么:1:history,2:tab,3:alias,4:shell script,5:jobs,bg,fg,&,6:wildcard。那我们之前的linux有那么多的conmands难道都是shell内置的,of course not,我们可以通过type来查看命令的类型,它可能是alias,可能是外部命令,然后才有可能是来自shell内置的,我们可以通过type查看,如type  –a  ls。

变量,就是可以变化的量,是用一串字符来替代一些设置或数据,我们比较常见的PATH, SHELL, HOME等,变量的显示与设置:echo,unset,前者输出,后者取消,另外有一点要注意的是export的使用,将变量设置为环境变量,变量一般使用大写字母表示,还有一个子进程,我们使用bash之后,就相当于是打开了一个新的进程,父进程的变量无法使用在子进程中,除非使用export设置,单引号与双引号,env查看环境变量,set查看所有变量,$?,语系变量locale,read (-p),array,declare,变量的删除,替换,alias,history。

命令的执行:1:以相对或绝对的路径执行命令2:通过alias,3:bash内置命令4:通过$PATH,bash的登录欢迎界面/etc /motd,bash环境配置文件,login shell,取得bash时有完整的登录流程,non-login shell,这里比较典型的是图形界面登录,取得bash时不需要完整的登录。Login shell,每个用户登录到bash是都会执行/etc/profile,然后是/etc/inputrc,同时/etc/profile.d/*.sh 都会被执行,这里的LANG.sh会调用/etc/sysconfig/i18n,之后便到了用户~/.bash_profileà~/.bashrc— >/etc/bashrc,假如是non-login的话直接会使用~/.bashrc。

通配符与特殊符号(这里一定要严格区分通配符与正则表达式完全不搭边)。数据流重定向<,<<, >,>>, 2>,2>>;命令执行的依据;&& ||,

ls /tmp/sun && echo “exist” || echo “not exist”,管道命令会处理标准输出,对于错误输出忽略,另外,他把输出结果当做标准输入,关键词搜索grep,基于列的处理cut:last | grep “root” | cut –d “ ” –f 1

文本统计wc,文本排序sort,文本比较diff:last | cut –d “ ” –f 1 | sore | uniq –c;tee双向重定向 ls / | tee sun.txt | more,字符转化命令:tr,col,join,paste,expand。切割文件split。

2:正则表达式:

     通过一些特殊字符的排列,用以查找,替换,删除一行或多行文字字符串,是一种字符串处理依据,一种表示法,只要工具程序支持这个表示法,那么该工具程序就可以用来作为正则表达式的字符串处理了,RE分为基础正则表达式,扩展正则表达式,先直接指明语系,特殊符号[:alnum:], [:alpha:],^,  .,  [-], [^], sed的使用,a,c,d,I,p,nl /etc/passwd | sed “2,5p”, 扩展正则表达式,egrep,

Grep –v “^$” file | grep –v “^#”,egrep –v “^$|^#” file, last –n 5 | awk ‘{print $1 “\t” $3}’.awk将一行分为若干个字段。

3:shell script:

      Shell script就是利用shell功能写“程序”,这个程序主要使用shell命令,正则表达式,重定向,管道等功能达到我们处理的目的,有点类似于我们早期所写的bat文件,学习shell script的意义在于你可以实现自动化管理,配置防火墙之类,简单的数据处理,跨平台等诸多特性。Shell的编写与执行:从上到下从左到右,忽略空格,遇到enter就执行,“#”开头为注释;执行要看是相对路径与绝对路径或直接通过bash的进程来执行,编写第一个shell:

声明所使用后的shell,告知script的用途,历史,声明部分,执行部分,接下来就是你自己的练习了。

时间: 2024-10-13 23:13:37

linux从shell开始的相关文章

linux下shell脚本执行方法及exec和source命令

exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息. bash shell的命令分为两类:外部命令和内部命令.外部命令是通过系统调用或独立的程序实现的,如sed.awk等等.内部命令是由特殊的文件格式(.def)所实现,如cd.history.exec等等. 在说明exe和source的区别之前,先说明一下fork的概念. fork是linux的系统调用,用来创建子进程(child

Linux系统shell脚本编程——生产实战案例

Linux系统shell脚本编程--生产实战案例     在日常的生产环境中,可能会遇到需要批量检查内网目前在线的主机IP地址有哪些,还可能需要检查这些在线的主机哪些端口是开放状态,因此依靠手工来检查是可以实现,但比较费时费力,所以需要结合shell脚本来实现批量检查的功能,那么今天就来做个小小的实验. 1.开发脚本前准备 一般大家都知道,测试主机是否在线,常用的命令无非就是ping.nmap,因此,首先找一个地址来测试下ping命令的效果 [[email protected] scripts]

Linux/Unix shell sql 之间传递变量

灵活结合Linux/Unix Shell 与SQL 之间的变量传输,极大程度的提高了DBA的工作效率,本文针对Linux/Unix shell sql 之间传递变量给出几个简单的示例以供参考. Linux/Unix 下调用SQL,RAMN 请参考:Linux/Unix shell 脚本中调用SQL,RMAN脚本 一.示例 [python] view plain copy print? 1.shell变量接受sql返回值之方式一 [email protected]:~> more ./retval

Linux/Unix shell 监控Oracle告警日志(monitor alter log file)

使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等.本文给出Linux 下使用 shell 脚本来监控 Oracle 告警日志(monitor alter log file). Linux Shell的相关参考:        Linux/Unix shell 脚本中调用SQL,RMAN脚本        Linux/Unix shell sql 之间传递变量   

Linux学习 -- Shell基础 -- 概述

Shell是什么? 命令解释器 编程语言 Linux支持的Shell类型 cat /etc/shells 主要学习 bash 脚本执行方式 echo echo -e 单引号 -- 原始字符串  双引号 -- 支持转义字符串 \e[1;31m xxx  开启颜色 \e[0m    关闭颜色 首行:#!/bin/bash #写好注释 执行方式: 方式1 sh xxx.sh 方式2 chmod 755 xxx.sh  ./xxx.sh 或 绝对路径 Linux学习 -- Shell基础 -- 概述

Linux修改Shell命令提示符及颜色

Linux修改Shell命令提示符及颜色 1. Linux登录过程中加载配置文件顺序: /etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~/.bashrc → [/etc/bashrc] 可查看默认的~/.bashrc文件如下: [root@~/wade/codeReview/redis-2.8.17] cat ~/.bashrc # .bashrc   # User specific aliases and functions  

Linux的shell终端常用快捷键大全

在日常工作中,许多事情要经常与电脑打交道,特别是高频率地使用一些专业性的软件,或者是玩一些键盘流性质的游戏,就应该熟知常用的快捷键,这样玩起来不仅高效,而且略显专业性. 对于某些IT工作者来说,Linux的shell终端是一个经常要用到的工具,如果能够熟练使用快捷键,做起事情来且不事半功倍. 下面列举一些shell终端常用的快捷键,它们一般是Shift.Ctrl.Alt键与其它按键的组合键,这些快捷键都在Ubuntu/GNOME上做过测试,可以正常使用. 1. 设置快捷键 快捷键设置可以打开sh

Linux使用shell自动切换网关

编写名为auto_change_gw.sh的脚本,用来自动切换主机网关,相关说明如下: 1)有2个可用的网关地址,分别是主网关192.168.10.254和备用网关192.168.10.253,当前使用的默认网关是192.168.10.254: 2)若当前使用的网关地址192.168.10.254出现问题,自动把网关地址切换为192.168.10.253: 3)当网关地址192.168.10.254能正常工作后,当前主机再把网关地址切换到192.168.10.254. 讲下思路: 1.先用whi

linux下的shell命令的编写,以及java如何调用linux的shell命令(java如何获取linux上的网卡的ip信息)

程序员都很懒,你懂的! 最近在开发中,需要用到服务器的ip和mac信息.但是服务器是架设在linux系统上的,对于多网口,在获取ip时就产生了很大的问题.下面是在windows系统上,java获取本地ip的方法.贴代码: package com.herman.test; import java.net.InetAddress; /** * @see 获取计算机ip * @author Herman.Xiong * @date 2014年5月16日 09:35:38 */ public class

Linux/Unix shell 监控Oracle监听器(monitor listener)

使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等.本文给出Linux 下使用 shell 脚本来监控 Oracle 监听器. Linux Shell的相关参考:        Linux/Unix shell 脚本中调用SQL,RMAN脚本        Linux/Unix shell sql 之间传递变量        Linux/Unix shell 调用