Shell基础整理

  Shell的作用是将用户输入的文本命令转换成内核能识别的数据指令交给内核进行执行,内核需要翻译成二进制交由CPU底层来执行

用户层->Shell->调用对应应用程序->kernel->硬件层->运算和周边外设->传递给kernal->应用程序->shell->用户

Shell就是底层命令解释器,Shell就是用户界面

Shell有两种语法: Bourne和C

Bourne家族包括:sh、ksh、Bash、psh、zsh

C家族包括:csh、tcsh(主要应用于Unix)

Bash是当前Linux系统的标准shell

echo $SHELL可以查看到shell对应的位置是:bin/bash

支持的shell在/etc/shells文件下

可以分级调用进入多个shell

输出命令:

echo "Hello World"会在命令行返回命令

echo -e "H\te\tl\nl\to"

-e指定识别转义字符,\t tab键 \n 换行

输出彩色打印:

echo -e "\e[1;31m hello world \e[0m"

\e[1;和\e[0m是固定格式,代表开启颜色和关闭颜色,如果不关闭后续命令行全部是指定颜色,中间部分指定颜色和内容

30m黑色,31m 红色, 32m 绿色, 33m 黄色,34m蓝色,35m洋红,36m青色,37m白色

第一个shell脚本编写:

建立脚本:vim hello.sh

输入:

#!bin/bash

# The first shell program

echo -e "\e[1;34m Hello Shell \e[0m"

:wq保存脚本

赋予可执行权限:chmod 755 hello.sh

执行:./hello.sh(常用方法)

或者直接调用:bash hello.sh

shello别名是为了简化命令执行

alias 查看当前shell的默认别名,系统默认添加了一些常用必要参数

设置别名,比如:alias ls=‘ls --color=never‘这样默认就添加了别名的参数,简化了命令输入

比如:alias vi=‘vim‘

别名为了方便用户习惯

alias命令设置的别名,当重新启动操作系统后设置会失效

不重启的情况下取消别名设置:unalias vi=‘vim‘

永久修改,修改对应存放别名的环境变量:vim ~/.bashrc

保存后立即生效:source ~/.bashrc

命令执行优先级:绝对或者相对路径执行命令 > 别名 > Bash内部命令 > 环境变量定义的顺序查找的第一个命令

shell常用快捷键:

强制终止程序 Ctrl+c

清屏 Ctrl+l

删除光标到行首的命令:Ctrl+u

光标定位到行首:Ctrl+a

光标定位到行尾:Ctrl+e

把前台执行的命令放到后台:Ctrl+z

在历史命令中搜索:Ctrl+r 按快捷键后,输入命令,根据搜索结果回车执行

查看所有的历史输入命令:history

清除历史输入命令:history -c

历史命令存放位置:~/.bash_history

文件中存放的命令比history查询到的少一些,因为在用户退出时文件才会更新

立即同步当前命令到~/.bash_history:history -w

建立不要随便删除历史命令,便于排错和检查入侵

history命令最多保存1000条,可以编辑/etc/profile修改HISTSIZE的属性值即可

上下箭头执行历史命令

history查询编号使用!n执行历史中的编号为n的命令,!!执行上一条命令,!字符串重复执行以该字符串开头的最后一条命令

TAB键执行命令和目录和文件补全,补全数据依赖于环境变量和操作路径

标准输入:/dev/stdin 文件描述符:0 设备:键盘

标准输出:/dev/stdout 文件描述符:1 设备:显示器

标准错误输出:/dev/stderr 文件描述符:2 设备:显示器

其实都是软链接,链接到实时硬件内存目录/proc

标准输出重定向:命令 > 文件 把正确命令输入覆盖到文件中,命令 >> 文件 内容追加

标准错误输出重定向:命令 2> 文件,命令 2>>文件 作用同上,注意2后面不要加空格

正确和错误同时输出到文件:命令 > 文件 2>&1 或者 命令 >> 文件 2>&1

或者使用:命令 &> 文件 和 命令 &>> 文件

分开文件写:命令 >> 文件1 2>>文件2 将正确结果放到文件1,错误结果放到文件2

命令 &>/dev/null 命令不输出任何一种执行结果,/dev/null相当于Linux下的黑洞,输出就不存在了

输入重定向 wc

然后输入文本按Ctrl+d结束

shell会返回统计行数,单词数和字符数

wc -c 只统计字符数包括空格和换行

wc -w 只统计单词数

wc -l 只统计行数

wc < success.log 或者 wc server.log   统计文件中的数据

命令 < 文件 把文件内容交给命令执行

wc << ddd

输入文本输入到ddd后输入就结束了,返回统计,ddd就是自定义结束标识符

多命令顺序执行:

命令1 ; 命令2  多个命令顺序执行,命令之间没有任何逻辑关系

命令1 && 命令2 逻辑与当命令1执行正确命令2才会执行

命令1 || 命令2 逻辑或当命令1执行不正确,命令2会执行;当命令1正确执行,命令2不会执行

统计某个操作脚本执行时间:date ; 命令 ; date

data +%s 显示当前Unix时间戳,便于统计

返回简单的正确或者错误提示:命令 && echo "yes" || echo "no"

管道符:命令1 | 命令2

命令1的输出结果作为命令2的操作对象;如果命令1执行错误,命令2不会被执行

比如:ls -l /etc/ | more 实现分屏显示

命令2一定能严格操作命令1的输出,不能随便使用

比如:netstat -an | grep ESTABLISHED | wc -l 处理命令结果中的指定数据,统计一些结果等

通配符:* 匹配一个或多个 ? 匹配1个 [abc]匹配abc中的1个 [a-z] [0-9]匹配a-z中的任何一个字母和0-9中的任何一个数字 [^0-9]匹配不是数字的的字符

特殊符号:

比如:aa=123 #定义变量

echo $aa 这样可以输出变量值

echo ‘$aa‘ 输出就是$aa这个字符串

echo "$aa" 输出就是$aa的变量值

单引号中‘‘所有特殊符号都原样输出 双引号中,$ ` \都有特殊含义

比如:aa=`ls`是把ls执行结果存放到变量aa中,使用反引号可以执行系统命令

aa=$(ls)和上面作用一致,建议使用

\$单纯代表$这个字符,比如:echo \$aa就输出$aa这个字符串,和单引号作用一致

#代表注释

时间: 2024-10-28 23:44:56

Shell基础整理的相关文章

linux常用命令整理(五):shell基础

大家好,我是会唱歌的程序猿------ 最近在学习linux,闲暇之余就把这些基本的命令进行了整理,希望大家能用的上,整理的的目的是在忘了的时候翻出来看看^?_?^,前后一共分为五个部分: linux基本命令整理(一):常用命令 地址:http://www.cnblogs.com/devinCat/p/7247824.html linux基本命令整理(二):用户.用户组.文件系统和网络 地址:http://www.cnblogs.com/devinCat/p/7247847.html linux

linux常用命令整理(四):软件包管理和shell基础

大家好,我是会唱歌的程序猿------ 最近在学习linux,闲暇之余就把这些基本的命令进行了整理,希望大家能用的上,整理的的目的是在忘了的时候翻出来看看^?_?^,前后一共分为五个部分: linux基本命令整理(一):常用命令 地址:http://www.cnblogs.com/devinCat/p/7247824.html linux基本命令整理(二):用户.用户组.文件系统和网络 地址:http://www.cnblogs.com/devinCat/p/7247847.html linux

Linux网络配置及SSH和Shell基础

Linux网络配置及SSH和Shell基础 一.Linux网络配置     ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数.用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在.要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了. 二.hosts文件的作用及修改主机名      Hosts : The static table lookup for host name(主机名查询静态表)       Linux 的/etc/hosts是

shell基础二十篇

shell基础二十篇 编者按:由 wingger  整理的 shell基础十二篇 以及L_kernel补充的第十三--二十篇,涉及shell 编程及使用的各个方面,又附有大量的例子,极适合初学者系统学习.如果配合網中人的shell 十三問? ,效果更加明显. 这里是其中的第十章 sed.  其他各章可察看相应的 link. shell基础1:文件安全与权限 http://bbs.chinaunix.net/thread-434579-1-1.html 附:Linux的用户和用户组管理 http:

linux基础整理0316

一.linux基础整理 由于这是学习linux的第一周,整理的东西很杂很分散,其中包括了查看虚拟机的各种信息,命令相关的只整理了alias.date.history.cal.帮助会话screen等命令的使用,最后加上了两个常见问题处理办法:在以后的学习中会不断完善文中整理的相关内容. 1.查看系统信息类命令: 查看内核版本 [root@CentOS7 ~]#uname -r 3.10.0-957.el7.x86_64 查看系统版本 查看配置文件 [root@CentOS7 ~]#cat /etc

【Linux系列】【基础版】第四章 Shell基础之正则表达式

4. Shell基础之正则表达式     4.1 正则就是一串有规律的字符串         4.1 grep              4.1.1 格式: grep [-cinrvABC] 'word' filename             4.1.2 -c //count,表示行数             4.1.3 -i //不区分大小写             4.1.4 -n  //显示行号             4.1.5 -r  //遍历所有子目录             4

Linux之shell基础

Shell基础 一.shell概述 1) shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动.挂起.停止甚至是编写一些程序. 我们输入的abc...24个字符是通过shell对照ASCII码翻译成二进制来让计算机识别的.我们从操作界面上输入命令,这个命令回车之后把此命令对照ASCII码翻译成指定的二进制,通过shell翻译成计算机内核能识别的二进制,然后内核调用硬件来处理,处理完之后再通过shell反馈给用户. 2)

【Linux系列】【基础版】第三章 Shell基础知识

3. Shell基础知识     3.1 Shell的由来         3.1.1 Bourne Agin Shell         3.1.2 其他的shell, 有 zsh, ksh等     3.2 查看有没有shell         3.2.1 yum list | grep zsh         3.2.2 ls /root/.bash_history         3.2.3 echo $HISTSIZE -> vi /etc/profile 修改HISTSIZE的值 -

shell基础(上)

Shell基础(上) 1.1什么是shell Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的 输入解释给操作系统.井处理各种各样的操作系统的输出结果,输出屏幕返回给用户 这种对话方式可以是 交互的方式:从键盘输入命令,通过/bin/bash的解折,可以立即得到shell的回应 非交互的方式:脚本 Shell执行命令分为两种方式 内置命令:如讲过的cd ,pwd, exit和echo等命令.当用户登录系统后,shell以及内置命令就被系统载入到内存,并且一直运行 一