linux学习shell

参考:http://cn.linux.vbird.org/linux_basic/0320bash_1.php

shell的变量功能:变量就是以一组文字或符号等,来取代一些配置或者是一串保留的数据!

echo 这个命令来取用变量:echo $PATH,需要在变量名前加$。通过man命令可以查看命令的使用方法例如:man echo

  • 变量的配置守则
  1. 变量与变量内容以一个等号『=』来连结:
  2. 『myname=VBird』
  3. 等号两边不能直接接空格符,如下所示为错误:
  4. 『myname = VBird』或『myname=VBird Tsai』
  5. 变量名称只能是英文字母与数字,但是开头字符不能是数字,如下为错误:
  6. 『2myname=VBird』
  7. 变量内容若有空格符可使用双引号『"』或单引号『‘』将变量内容结合起来,但

双引号内的特殊字符如 $ 等,可以保有原本的特性,:『var="lang is $LANG"』则『echo $var』可得『lang is en_US』

单引号内的特殊字符则仅为一般字符 (纯文本),:『var=‘lang is $LANG‘』则『echo $var』可得『lang is $LANG』

8.可用跳脱字符『 \ 』将特殊符号(如 [Enter], $, \, 空格符, ‘等)变成一般字符;有点像转义字符

9.在一串命令中,还需要藉由其他的命令提供的信息,可以使用反单引号『`命令`』或 『$(命令)』。特别注意,那个 ` 是键盘上方的数字键 1 左边那个按   键,而不是单引号! 例如想要取得核心版本的配置:

『version=$(uname -r)』再『echo $version』可得『2.6.18-128.el5』

10.若该变量为扩增变量内容时,则可用 "$变量名称" 或 ${变量} 累加内容:『PATH="$PATH":/home/bin』

11.若该变量需要在其他子程序运行,则需要以 export 来使变量变成环境变量:『export PATH』

什么是『子程序』呢?就是说,在我目前这个 shell 的情况下,去激活另一个新的 shell ,新的那个 shell 就是子程序啦!在一般的状态下,父程序的自定义变量是无法在子程序内使用的。但是透过 export 将变量变成环境变量后,就能够在子程序底下应用了!

12.通常大写字符为系统默认变量,自行配置变量可以使用小写字符,方便判断 (纯粹依照使用者兴趣与嗜好) ;

13.取消变量的方法为使用 unset :『unset 变量名称』例如取消 myname 的配置:『unset myname』

如何能够内核模块目录 :[[email protected] ~]# cd /lib/modules/`uname -r`/kernel

  1. 先进行反单引号内的动作『uname -r』并得到核心版本为 2.6.18-128.el5
  2. 将上述的结果带入原命令,故得命令为:『cd /lib/modules/2.6.18-128.el5/kern
例题:

在变量的配置当中,单引号与双引号的用途有何不同?

答:

单引号与双引号的最大不同在于双引号仍然可以保有变量的内容,但单引号内仅能是一般字符 ,而不会有特殊符号。我们以底下的例子做说明:假设您定义了一个变量, name=VBird ,现在想以 name 这个变量的内容定义出 myname 显示 VBird its me 这个内容,要如何订定呢?

[[email protected] ~]# name=VBird
[[email protected] ~]# echo $name
VBird
[[email protected] ~]# myname="$name its me"
[[email protected] ~]# echo $myname
VBird its me
[[email protected] ~]# myname=‘$name its me‘
[[email protected] ~]# echo $myname
$name its me

发现了吗?没错!使用了单引号的时候,那么 $name 将失去原有的变量内容,仅为一般字符的显示型态而已!这里必需要特别小心在意!

例题:

在命令下达的过程中,反单引号( ` )这个符号代表的意义为何?

答:

在一串命令中,在 ` 之内的命令将会被先运行,而其运行出来的结果将做为外部的输入信息!例如 uname -r 会显示出目前的核心版本,而我们的核心版本在 /lib/modules 里面,因此,你可以先运行 uname -r 找出核心版本,然后再以『 cd 目录』到该目录下,当然也可以运行如同上面范例六的运行内容啰。

另外再举个例子,我们也知道, locate 命令可以列出所有的相关文件档名,但是,如果我想要知道各个文件的权限呢?举例来说,我想要知道每个 crontab 相关档名的权限:

[[email protected] ~]# ls -l `locate crontab`

如此一来,先以 locate 将文件名数据都列出来,再以 ls 命令来处理的意思啦!瞭了吗? ^_^

例题:

若你有一个常去的工作目录名称为:『/cluster/server/work/taiwan_2005/003/』,如何进行该目录的简化?

答:

在一般的情况下,如果你想要进入上述的目录得要『cd /cluster/server/work/taiwan_2005/003/』, 以鸟哥自己的案例来说,鸟哥跑数值模式常常会配置很长的目录名称(避免忘记),但如此一来变换目录就很麻烦。 此时,鸟哥习惯利用底下的方式来降低命令下达错误的问题:

[[email protected] ~]# work="/cluster/server/work/taiwan_2005/003/"
[[email protected] ~]# cd $work

未来我想要使用其他目录作为我的模式工作目录时,只要变更 work 这个变量即可!而这个变量又可以在bash 的配置文件中直接指定,那我每次登陆只要运行『 cd $work 』就能够去到数值模式仿真的工作目录了!是否很方便呢? ^_^

---恢复内容结束---

原文地址:https://www.cnblogs.com/bingzzzZZZ/p/8321372.html

时间: 2024-08-06 17:35:35

linux学习shell的相关文章

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基础 -- Bash基本功能

历史命令 history -c   clear -w   写入 ~/.bash_history 默认保存1000条, 可在/etc/profile中修改 调用 Tab补全 命令.目录.文件 命令别名 alias 别名='原命令' 命令执行顺序: 绝对路径或相对路径 > 别名 > Bash的内部命令 > $PATH环境变量中找到的第一个命令(外部命令) 配置文件:/root/.bashrc 删除:unalias 别名 常用快捷键 输入输出重定向 标准输入输出 输出重定向 注意:2和>

linux学习—shell脚本知识点总结

Shell脚本 --Shell脚本有点像早期的批处理文件,将一些命令汇总起来一次执行,但Shell有更强大的功能,可以类似于程序的编写,不需要编译就能执行,使用起来很方便,可以简化我们日常的管理工作. 目录 什么是Shell 脚本的运行方法 #!(读shabang)的作用详解 结合案例分析变量类型 特殊变量及其[email protected] $*的区别 退出状态 算数运算 test和[ expression ]判断 一.什么是Shell 我们知道管理整个计算机硬件的其实是核心(kernel)

Linux学习-shell利用正则表达式验证邮箱合法性

引文:在今天这个时代,Email已经成为一种重要的通信方式.给导师发邮件,学术研究之间的交流,etc.常常用到Email,然而Email的验证却有点小难度,下面给出一个在Linux下使用shell脚本编写的一个实例. linux中将正则表达式和sed.gawk结合起来,功能非常强大.我说的是真的,没骗你的,好好学吧. 邮箱验证 Email地址的基本格式为: username@hostname 1.username部分模式匹配 username的值可以用字符数子字符以及以下特殊字符: 点号 单破折

大数据学习初体验:Linux学习+Shell基础编程+hadoop集群部署

距离上次博客时间已经9天,简单记录下这几天的学习过程 2020-02-15 10:38:47 一.Linux学习 关于Linux命令,我在之前就已经学过一部分了,所以这段时间的linux学习更多的是去学习Linux系统的安装以及相关配置多一些,命令会一些比较常用的就够了,下面记录下安装配置Linux系统时的注意事项. 这里配置的虚拟机的内存为4g 使用的 CentOS-6.5-x86_64-minimal.iso 映射文件 在进入linux系统中时,需要将虚拟机的主机名修改成自己想要的名字,还要

linux学习shell:人工解析lnmp脚本

入门脚本语言的最好方式是什么?? 没错:就是把自己当做语言解释器,去运行一次脚本 所以这里找到了lnmp安装脚本来学习..(源码地址:https://lnmp.org/) 本次解释以lnmp1.5为准 知识预备: linux基础知识,正常操作linux没问题. shell基础知识,了解shell的 "变量","条件","流程控制","函数","重定向","管道" 开始解析: 原文地址:h

Linux学习——Shell

概述 什么是shell shell作为用户与Linux系统间的接口,它允许用户向操作系统输入需要执行的命令.这一点与Windows的命令提示符很像,但强者更强大.Linux是个高度模块化的系统,允许你从各种不同的shell中选一个来使用. 常用的shell 在Linux系统中,/bin/sh总是GNU工具集中的bash(the GNU Bourne-Again SHell). 在大多数Linux distribution中,默认的shell程序/bin/sh实际上是对程序/bin/bash的一个

linux学习 – shell脚本

shell是命令和硬件之间的桥梁 shell的工作方式分为两种:交互式.批处置 交互式:用户一次输入一条命令,shell翻译并执行一条 批处理:用户将多条命令构成一个shell脚本,执行脚本时,shell一次执行全部的命令,shell脚本是将各种命令通过逻辑语句组合而成的程序 1.查看系统中所有的可用的shell解释器 cat /etc/shells 2.查看当前的shell解释器 3.编写简单的shell脚本 主要用到文本编辑器vi ,按照命令的执行顺序依次编写,每行写一条linux命令 一个

linux学习-----shell基础

shell基础 1.什么是shell shell是一个C语言开发的程序 他是用户使用linux的桥梁 既是一个命令语言 一种应用程序 这个应用程序提供了一个界面 用户通过这个界面访问操作系统内核的服务 又是一种程序设计语言 2.什么是脚本 脚本就是一条条的文字命令 这些命令是可以看得到的 常见脚本 JS   PHP JSP   SQL    PHTHON PERL    SHELL  RUBY  JAVAFX 3.shell的优点: linux内置的脚本 程序开发效率高(批处理) 语法简单易学