linux——(7)了解shell
概念一:什么是shell
用户用来和内核交互的东西,他相当一个接口,我们通过这个接口调用别的程序,然后他调用内核来帮我们完成程序功能。shell有很多种类,他们之间有部分区别,Linux默认使用bash,下面也都按bash shell来介绍。
概念二:bash shell的基本功能
执行命令:基本功能不废话。
命令记忆功能:执行过的命令都会被记录在~/.bash_history这个文件里,这个文件在每次注销系统的时候更新,默认记录1000条,黑客比较喜欢看这个文件,能知道你的一些敏感信息。
补全功能:输入命令或文件可用tab键来补全。
设置命令别名:用alias命令设置。
作业控制:控制任务前后台执行。
程序脚本:一会儿介绍。
通配符:用于字符串相关处理。
概念三:shell的变量功能。
1,设置变量直接用"="赋值就行了,不用声明类型,等号两边不要有空格。
2,取变量内容可用的格式有"$variable"、"${variable}",打印变量的值用echo命令,取消一个变量用unset。
3,变量只能是英文字母开头包含字母和数字,特殊字符要用"\"转义为一般字符。
4,双引号内的变量若是加上了$就能取得变量内容,而单引号内的不会。
5,export命令可以将自定义变量转变为环境变量,自定义变量不会被子进程继承也不会留给父进程,但是环境变量都可以。
6,通常系统默认变量都是全大写,自己设置的会用小写。(仅仅是习惯)
常接触的系统环境变量
HOME:存了主文件夹的路径。
SHELL:目前环境使用的shell的种类。
HISTSIZE:历史命令的最大记录条数。
PATH:执行文件查找路径。
LANG:当前环境的语系。
RANDOM:用户可以用这个变量获取一个0~32767的随机数(bash环境下)
PS1:命令提示符变量。
$:目前这个shell的线程代号。
?:上一个执行命令的回传码。
变量的相关操作
读取变量内容:echo $variable 或者 echo ${variable}
删除变量:unset variable
将自定义变量换成环境变量:expert variable
查看所有变量:set
读入来自键盘的输入:
read [-pt] variable
-p后面接提示信息。
-t后面接等待用户输入的时间。
声明变量的类型:
declare [-aixrp] variable
-a 声明为数组类型变量。
-i 声明为整数类型。
-x 声明为环境变量。
+x 将环境变量变成自定义变量。
-r 设置为只读类型。
-p 列出变量类型。
变量内容的删除和替换(图片来自网络http://www.360doc.com/content/12/0618/11/2245786_218855156.shtml)
bash shell的操作环境相关
1,命令查找顺序
以相对路径或者绝对路径来执行命令。
有alias找到该命令来执行。
由bash内置的命令来执行。
通过$PATH这个变量的顺序查找出第一个来执行。
2,bash的登陆与欢迎信息。
登陆信息存放在/etc/issue内,通过telnet登陆的登陆信息存放在/etc/issue.net内
欢迎信息存放在/etc/motd内。
3,bash的环境配置文件。
之前用命令设置的命令别名和变量名在我们退出Linux后就会失效,若想一直保持这种设置,必须写入bash的环境配置文件。
关于配置文件的加载是有些复杂的。
首先shell配置分为login shell与non-login shell,输入账号后打开的shell就是login shell
login shell:先读取/etc/profile再读取~/.bash_profile或者~/.bash_login或者~/.profile。其中/etc/profile还会调用别的文件。
nonlogin shell:只读/etc/profile。
当我们修改了某个配置文件想直接生效的时候可以用source命令。
4,终端机的环境设置
stty:可以用来修改一些常用功能对应的按键。
set:设置命令输入输出环境。
5,bash通配符(5与6的图片来源于网络资源)
6,bash特殊符号(文档名尽量不要包含)
linux——(7)了解shell的更多相关文章
- Linux中的shell
shell的含义: 首先shell的英文含义是"壳": 它是相对于内核来说的,因为它是建议在核的基础上,面向于用户的一种表现形式,比如我们看到一个球,见到的是它的壳,而非核. Li ...
- linux 学习10 shell 基础
10.1 Shell概述 .Shell是什么 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至是编写一 ...
- linux下的shell运算(加、减、乘、除)
linux下的shell运算(加.减.乘.除) 标签: linuxshell运算加减乘除 2014-03-12 16:25 15127人阅读 评论(0) 收藏 举报 分类: linux(17) ((i ...
- 如何在java程序中调用linux命令或者shell脚本
转自:http://blog.sina.com.cn/s/blog_6433391301019bpn.html 在java程序中如何调用linux的命令?如何调用shell脚本呢? 这里不得不提到ja ...
- [转] 关于linux下通过shell命令(自动)修改用户密码
关于linux下通过shell命令(自动)修改用户密码 2012-04-23 18:47:39 分类: 原文地址:关于linux下(自动)修改用户密码 作者:ubuntuer 本文章总结了如何手动.自 ...
- 时隔两年最近再次折腾opensuse 的一些笔记 - opensuse linux java service shell
时隔两年最近再次折腾opensuse 的一些笔记 - opensuse linux java service shell opensuse 一些常用命令: service xxx start/s ...
- Linux生产服务器Shell脚本分享
Linux生产服务器Shell脚本分享 2012-6-6 86市场网 linux 作为一名Linux/unix系统管理员,我经常遇到人问这个问题:shell能做什么?PHP这么强大,为什么不用PHP来 ...
- linux下的shell命令的编写,以及java怎样调用linux的shell命令(java怎样获取linux上的网卡的ip信息)
程序猿都非常懒,你懂的! 近期在开发中,须要用到server的ip和mac信息.可是server是架设在linux系统上的,对于多网口,在获取ip时就产生了非常大的问题.以下是在windows系统上, ...
- (原创)鸟哥linux学习script shell相关笔记
在使用鸟哥linux进行script shell学习的过程中碰到一些不太明白的知识点,在这里进行一些记录 1. [root@www scripts]# vi sh03.sh #!/bin/bash # ...
- linux基础之Shell Script入门介绍
本文介绍下,学习shell script编程的入门知识,通过几个入门实例,带领大家走进shell script的神圣殿堂,呵呵,有需要的朋友参考下. 本文转自:http://www.jbxue.com ...
随机推荐
- bzoj 1901 Dynamic Rankings (树状数组套线段树)
1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec Memory Limit: 128 MB Description 给定一个含有n个数的序列a[1] ...
- CF839 D 容斥
求$gcd>1$的所有$gcd(a_i,a_{i+1}…a_{n})*(n-i+1)$的和 首先先标记所有出现的数.从高到低枚举一个数k,记录它的倍数出现次数cnt,那么当前所有组合的答案就是$ ...
- 更改gradle的java的class文件输出目录的结构
group 'com.thinkvenus.common'version '1.0-SNAPSHOT' apply plugin: 'java' sourceCompatibility = 1.8 r ...
- 【BZOJ】3302: [Shoi2005]树的双中心 && 2103: Fire 消防站 && 2447: 消防站
[题意]给定带点权树,要求选择两个点x,y,满足所有点到这两个点中较近者的距离*点权的和最小.n<=50000,h<=100. [算法]树的重心 [题解]代码参考自:cgh_Andy 观察 ...
- 【BZOJ】1537: [POI2005]Aut- The Bus
[算法]DP+线段树求区间max(二维偏序) [题解] 状态转移方程:f[i]=max(f[j]+v[i]),x[j]<x[i]&&y[j]<y[i]. 观察j的条件限制显 ...
- phpcms添加子栏目后的读取
一个栏目下面如果没有子栏目,那么它调用的模板就是列表页模板(及list_为前缀的模板):如果一个栏目下面有子栏目,那么它调用的就是栏目首页模板(category_为前缀的模板). 所以,当你这个栏目添 ...
- LintCode之硬币排成线
输入的n可以分为两种情况: 1. 如果n是3的倍数的话,不论A怎么拿B都可以拿(3-A拿的个数)来使其保持是3的倍数,他就一定能拿到最后一块,所以n是3的倍数的话B必胜 2. 如果n不是3的倍数的话, ...
- 爬行百度标题&URL案例
思路: 先将需要获取的匹配出,然后可以用"永真"(即while True:)来遍历使得URL可以一直自增变化(百度点击下一页URL的pn参数就增加10)每增加10就爬行一遍URL然 ...
- 15 - reduce-pratial偏函数-lsu_cache
目录 介绍 1 reduce方法 2 partial方法(偏函数) 2.1 partial方法基本使用 2.2 partial原码分析 2.3 functools.warps实现分析 3 lsu_ca ...
- 17 - 路径操作-shutil模块
目录 1 路径操作 1.1 os.path模块 1.2 pathlib模块 1.2.1 目录操作 1.2.2 文件操作 1.3 os 模块 2 shutil模块 2.1 copy复制 2.2 rm删除 ...