LINUX学习笔记-shell-09.04

Shell

Shell的作用 —— 命令解释器,“翻译官”
shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上。
用户请求——>shell——>Linux内核——>硬件
命令与文件补全
在Bash中,命令与文件补全是非常方便与常用的功能,我们只要在输入命令或文件时,按“Tab”键就会自动进行补全,

命令别名

alias 别名=’原命令’
例:

[root@localhost ~]# alias grep='grep --color=auto'(注意等号两边不能有空格)

alias的作用仅在该次登入的操作,即输入一次alias后,这个修改只在当前的Shell生效。如果重新开启一个 Shell,或者重新登录,则这些alias将无法使用。好在linux中提供alias永久化的方法:
<1>.若要每次登入就自动生效别名,则把别名加在/etc/profile或~/.bashrc中。然后# source ~/.bashrc
<2>.若要让每一位用户都生效别名,则把别名加在/etc/bashrc最后面,然后# source /etc/bashrc

删除别名

unalias别名

多命令顺序执行

,格式:命令一;命令二
作用:多个命令顺序执行,命令之间没有任何逻辑联系
&&,格式:命令一&&命令二
作用:逻辑与
当命令一正确执行,命令二才会执行
当命令一执行不正确,命令二则不会执行
||,格式:命令一||命令二
作用:逻辑或
当命令一执行不正确,命令二才会执行
当命令一正确执行,命令二则不会执行

管道符

命令格式:

[root@localhost ~]# 命令1 | 命令2 

命令1的正确输出作为命令2的操作对象

tee

在数据流的处理信息过程中将某段信息保存下来

[root@www ~]# tee [-a] file
选项与参数:
-a :以累加 (append) 的方式,将数据加入 file 当中!
[root@www ~]# last | tee last.list | cut -d " " -f1
# 这个范例可以让我们将 last 的输出存一份到 last.list 文件中;
[root@www ~]# ls -l /home | tee ~/homefile | more
# 这个范例则是将 ls 的数据存一份到 ~/homefile ,同时屏幕也有输出信息!
[root@www ~]# ls -l / | tee -a ~/homefile | more
# 要注意! tee 后接的文件会被覆盖,若加上 -a 这个选项则能将信息累加。

echo

[root@localhost ~]# echo [选项] [输出内容]

-e:支持反斜线控制的字符转换
-n:不在最后自动换行

Shell脚本

Shell脚本的基本元素

(1)#!/bin/bash 必须的,指出shell的类型
(2)# 注释
(3)变量
(4)控制

常见运行Shell脚本的方法

方法一:#sh ./脚本文件
方法二:
# chmod +x datewho.sh
# ./datewho.sh

Shell变量

shell 变量 可以保存如路径名、文件名或者一个数字
变量名称可以由字母、数字和下划线组成,但是不能以数字开头。如果变量名是“2name”则是错误的。
变量分类
本地变量(用户变量) 局部变量只在创建它们的Shell中使用,可以在shell程序内任意使用和修改它们。
环境变量 可以在创建它们的Shell及其派生出来的任意子程序中使用。有些变量是用户创建的,其他的则是专用的(比如PATH、HOME)。是系统环境的一部分,不必去定义它们,可以在shell程序中使用它们 。还能在shell中加以修改。
内部变量 由系统提供的。与环境变量不同,但用户不能修改它们。

本地变量

在用户现在的shell生命期的脚本中使用
变量名=值
注意:
 (1)等号两边不可以有空格
 (2)取值包含空格,必须用双引号括起来
 (3)Shell变量可以用大小写字母,区分大小写
变量的声明和使用
(1)变量是弱类型的(不用声明类型)
(2)变量声明及赋值格式
变量=值(等号两边不能有空格)
(3)变量的引用
$变量名
${变量名}
变量名为1个字符时建议使用方式一,多余一个字符时建议使
用方式二
举例: $a
${abc}

清楚变量
unset name (注意:name前没有$)

环境变量

环境变量用于所有用户进程(通常称为子进程)。登陆进程称为父进程,通过pstree可以查看
环境变量可以用于所有子程序,着包括编辑器、脚本和应用
举例:

vi a.sh
#!/bin/bash
# 检测环境变量
echo "家目录是 $HOME"

环境变量可以在命令行中设置,但用户注销时这些值将丢失
环境变量均为大写
必须用export命令导出
设置环境变量

variable-name=value
export variable-name(环境变量名大写)

显示环境变量

env 可以看到所有的环境变量
echo $环境变量名 (显示一个变量)

清除环境变量
unset 环境变量名
HOME : 代表使用者的家目录。cd ~ 去到使用者的家目录 或者利用 cd就可以直接回到使用者家目录了。
PATH : 就是执行文件搜寻的路径,目录与目录中间以冒号(:)分隔, 由于文件的搜寻是依序由 PATH 的变量内的目录来查询,所以,目录的顺序也是重要的喔。


让环境变量的修改在退出shell再次登录时仍有效,需要在相关配置文件中修改
Bash的初始化文件有:/etc/profile、~/.bash_profile、~/.bash_login、~/.profile、~/.bashrc、/etc/bashrc
/etc/profile 存放一些全局(共有)变量,不管哪个用户,登录时都会读取该文件。通常设置一些Shell变量PATH,USER,HOSTNAME和HISTSIZE等
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情
况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取.
/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.

上述配置文件的作用

1)登录Linux先启动系统配置文件/etc/profile,并从/etc/profile.d目录的配置文件中搜集shell的设置,为系统的每个用户设置环境信息。
2)用户配置文件~/.bash_profile,每个用户专用于自己使用的shell信息,仅用户登录时执行一次!默认情况下,此文件通过脚本执行同目录下用户的.bashrc文件。
3)~/.bashrc文件包含专用于用户bash shell的bash信息,登录及每次打开新的shell时都会执行。里面又会调用/etc/bashrc

内部变量

$# ——传送给shell程序的位置参数的数量
$?——最后命令的完成码或者在shell程序内部执行的shell程序(返回值)。0表示没有错误,其他任何值表明有错误。
$0——shell程序的名称
$*——调用shell程序时所传送的全部参数的单字符串, “参数1 参数2 …“形式保存的参数
$@—— “参数1 参数2”…形式保存的参数
$n—— 第n个参数
$$—— 本程序的PID

特殊符号

1、注释符#
除了#!/bin/bash里的#特殊
2、美元符 $
变量符。与反斜杠转义符相反,使其后的普通字符作为变量名,如$a表示变量a的值。变量字符长度超过1个时,用{}括起来
3、单引号
被引起的字符全部做普通字符,即全部原样

echo ‘my $SHELL’
4、双引号
引号内的内容,除\$、转义符\、倒引号`这三个保留特殊功能,其他字符均做普通字符。
5、倒引号(数字1键旁边的那个键)
引号内的字符串当做shell命令行解释执行,得到的结果取代整个倒引号括起来的部分。
6. 反斜线
反斜线是转义字符,它能把特殊字符变成普通字符。在某个字符前面利用反斜杠(\)能够阻止shell把后面的字符解释为特殊字符。
例4:

[yuqun@yuqun ~]$echoFilename is N0\$\*”
Filename is N0$*

注意:在单引号括起来的字符串中,反斜线也成为普通字符,而失去转义字符功能。
7.获取字符串长度

string="abcd"
echo ${#string} #输出 4

8.提取子字符串

string="runoob is a great site"
echo ${string:1:4} # 输出 unoo
基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip 【备注】 1、该资源内项目代码百分百可运行,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值