初识Shell

定变量并查看

先赋值 x=XXX # x:变量 XXX是所赋的值

[root@localhost ~]# a=test
[root@localhost ~]# echo $a
test

查看别名与定义别名

alias 定义别名

[root@localhost ~]# alias                     #查看已经定义的别名
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

alias X='指令' #X是指你想定义成什么
指令指的就是你想定义的linux指令

[root@localhost ~]# alias e='echo'
[root@localhost ~]# e 11
11

取消已经设置的别名

unalias X

[root@localhost ~]# unalias e
[root@localhost ~]# e 111
-bash: e: command not found

Bash shell 的内建命令 TYPE

[root@localhost ~]# type alias
alias is a shell builtin
[root@localhost ~]# type ls
ls is aliased to `ls --color=auto'

用途: 用来测试命令的类型
type [-tpa] name
选项和参数:
:不加任何选项,会显示name是外部命令,还是bash内置命令
-t //会将name以下面这些关键字来表示出他的意义:
file :外部命令
alias :命令别名
builtin :bash内置命令
不显示任何数据时,表示name不是任何命令

输入输出 与 重定向

文件描述符与输出重定向:
在 shell 程式中,常使用的 FD (file descriptor) 大概有三个, 分别是:
0: Standard Input (STDIN)
1: Standard Output (STDOUT)
2: Standard Error Output (STDERR)
在标准情况下, 这些FD分别跟如下设备关联: stdin(0): keyboard 键盘输入,
并返回在前端 stdout(1): monitor 正确返回值 输出到前端 stderr(2): monitor 错误返回值 输出到前端

0 标准输入:键盘
1 标准正确输出

[root@localhost ~]# echo 'hello world' 1> hello.txt    
     #1>把正确输出重定向到hello.txt中,默认> = 1>
[root@localhost ~]# cat hello.txt 
hello world

2标准错误输出

[root@localhost ~]# ls shdasdhaskj 2>error.txt
[root@localhost ~]# cat error.txt 
ls: cannot access shdasdhaskj: No such file or directory

&混合输出

[root@localhost ~]# ls /home/ /ssjkasd &> fix.txt
[root@localhost ~]# cat fix.txt 
ls: cannot access /ssjkasd: No such file or directory
/home/:
alice
t2sh

输入重定向

[root@localhost ~]# cat >> a.txt <<EOF
> hello world!
> hello shell!
> EOF        
[root@localhost ~]# cat a.txt 
hello world!
hello shell!

清空文档(适用于系统文件的清空)

[root@localhost ~]# cat a.txt 
hello world!
hello shell!
[root@localhost ~]# > a.txt 
[root@localhost ~]# cat a.txt 

shell的分类和切换

[root@newrain ~]# cat /etc/shells 
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin

默认shell: bash shell
centos中脚本使用的默认shell 为/usr/bin/sh
查看当前正在使用的shell
echo $SHELL
shell 的切换
vim /etc/passwd 编辑登录shell


初试shell脚本

[root@localhost ~]# vim start.sh

echo "显示磁盘分区"
lsblk   #shell指令
echo "*********************************"                  
echo "显示内存占用量"
free -h


sh start.sh     #sh 表示用shell运行

显示磁盘分区
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   30G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   29G  0 part 
  ├─centos-root 253:0    0   26G  0 lvm  /
  └─centos-swap 253:1    0    3G  0 lvm  [SWAP]
sr0              11:0    1  4.2G  0 rom  
**************************************************
显示内存占用量
              total        used        free      shared  buff/cache   available
Mem:           5.7G        170M        5.4G        8.6M        158M        5.3G
Swap:          3.0G          0B        3.0G
-----------------------------------------------------------
如果内存占用过高 请运行ffm.sh

vim ffm.sh #创建一个释放内存的脚本

echo 3 > /proc/sys/vm/drop_caches
echo "buffer/cache释放完"
-----------------------------------------------------------
运行
[root@localhost ~]# sh ffm.sh 
buffer/cache释放完

sh -x 用于shell脚本查错


##藏终端输入:**stty**
[root@localhost ~]# stty -echo 隐藏输入
[root@localhost ~]# -bash: sss: command not found
[root@localhost ~]#stty echo 显示输入

应用示例

[root@localhost ~]# vim echo.sh 
stty -echo
read -p "请输入密码:"
stty echo
[root@localhost ~]# sh echo.sh 
请输入密码:         #此时你输入密码是不可见的,输入完成后恢复

Bash的功能

Bash的初始化过程

bash处理初始化文件的顺序:
if /etc/profile exists,source it,
if ~/.bash_profile exists,source it,
if ~/.bashrc exists,source it,
else if ~/.bash_login exists,source it,
else if ~/.profile exists,source it.

shell编程特点

bash特性:
补全
历史
别名
快捷键
前后台作业
重定向
管道
命令排序执行
; && ||
通配符
{} ? *
正则表达式
脚本

Bash部分快捷键(常用)

Ctrl+a 切换到命令行开始(跟home一样,但是home在某些unix环境下无法使用)
Ctrl+e 切换到命令行末尾
Ctrl+u 清除剪切光标之前的内容
Ctrl+k 清除剪切光标之后的内容
Ctrl+y 粘贴刚才锁删除的字符
Ctrl+r 在历史命令中查找,输入关键字调出之前的命令

bash脚本的执行

./scripts ----------#scripts是脚本名称
/shelldoc/scripts
. ./scripts 使用当前shell执行
source ./scripts 使用当前shell执行 比如cd /tmp会改变当前shell环境,但是其他的方式不会
bash scripts


子shell

(指令) 表示使用shell的子进程来运行指令

[root@localhost ~]# pwd
/root
[root@localhost ~]# (cd /opt;mkdir test)          #利用 ; 可以依次执行多个指令
[root@localhost ~]# pwd
/root
[root@localhost ~]# ls /opt/
test

bash 的登录主机欢迎信息: /etc/issue, /etc/motd

当你登录到系统之前,想了解这个系统的一些简单的硬件及软件版本信息等可以做如下设置:


/etc/issue设置指令

/etc/motd //编辑这个文件,会在用户登录之后看到一些欢迎信息

[root@localhost ~]# echo 来了 老弟!> /etc/motd
exit
ssh : 1.1.1.1(你的服务器ip)
Last login: Tue Dec 17 02:50:05 2019 from 10.3.134.175
来了 老弟!

文件系统及程序限制关系

image.png

记住ulimit -a 即可

永久生效,编辑 /etc/security/limits.
格式:

用户 限制的级别 类型 限制的值
比如

t2sh soft nofile 100
t2sh hard nofile 100

nofile 限制文件打开数量
nproc 网络连接数

退出后生效

通配符与特殊符号

通配符 * 指的是所有
通配符表格:


image.png
[root@localhost ~]# ls [a-z].txt
a.txt  b.txt  c.txt
[root@localhost ~]# ls *[a-z].txt
1a.txt  2a.txt  3a.txt  4a.txt  5a.txt  a.txt  b.txt  c.txt  error.txt  fix.txt  hello.txt
[root@localhost ~]# ls ??.txt   #?指一定存在的任意字符
1a.txt  2a.txt  3a.txt  4a.txt  5a.txt
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容