马哥linux shell 笔记2

简介:

变量替换:用变量的值替换变量名:echo"$AGE"

命令替换:用命令的执行结果替换命令:$(COMMAND)='COMMAND'

echo "Today is 'date+%F'"


touch file-'date+%F-%H-%M-%S'

seq 用来列出一系列数

seq 5   1 2 3 4 5

seq 1 10 1 2 3 4 5 6 7 8 9 10

seq 10 2 100

NUMSEQ=’seq 1 10'

echo $NUSEQ


变量:配置文件

bash:

   全局:

    /etc/profile,/etc/profile.d/*, /etc/bashrc

   个人

    ~/.bash_profile ~/.bashrc ~/.bash_history

bash的运行方式:

    交互式:先读取/etc/profile-->/etc/profile.d/*--


>.bash_profile-->~/.bashrc-->/etc/bashrc

    非交互式:~/.bashrc-->/etc/bashrc-->/etc/profile.d/*

profile 类

      设定环境变量

      运行命令或脚本


bashrc类

       设定本地变量

       设定命令别名


source 文件名 = . 文件名  让bash重新读取配置文件


命令别名:

  alias cls=clear 将clear换为cls

  unalias cls     将cls撤销

  alias cdnet="cd /etc/sysconfig/"

bash脚本解释器:

shell脚本:

每一个脚本第一行必须加#!/bin/bash


练习:

#!/bin/bash

mkdir /tmp/test

touch /tmp/test/file-'date +%F-%H-%M-%S'

cp -r /etc/profile.d /tmp/test2


DESTDIR='/tmp/test'


mkdir $DESTDIR

touch %DESTDIR/file-'date+%F-%H-%M-%S'

cp -r /etc/profile.d/ $DESTDIR


nuset DESTDIR 撤销变量



输入输出重定向.管道


程序的默认输入设备,叫标准输入,stdin,键盘,0

程序的默认输出设备,叫标准输出,stdout,minitor,1

程序的默认错误信息输出设备,标准错误输出,stderr ,minitor,2


输出重定向:

command>FILE 覆盖输出(慎重)



set -C 关掉标准输入输出


set +C 打开标准输入输出

set >|强制覆盖


command >>FILE 追加输出


/dev/null 数据黑洞

date >/dev/null

echo $? 显示为0,则表示执行成功


/dev/zero 泡泡机,吐0

/dev/urandom 随机数生成器

输入重定向

COMMAND <FILE

tr 'a-z' 'A-Z' </etc/passwd


COMMAND <<"EOF"

echo -e "the fist line.\nwww.baidu.com.\nwww.qq.com" >/tmp/test

cat >>/tmp/test1

<the fist line

<www.baidu.com

<www.qq.com

<EOF


错误输出:

COMMAND 2>FILE

COMMAND 2>>FILE


正确或错误统统重定向

COMAND >FILE 2>&1

COMMAND &>FILE


管道:只传递正确信息

COMMAND1 |command2 |COMMAND3

ehco "the first line " |tr 'a-z' 'A-Z'

echo "the first line " |tr 'a-z' 'A-Z' |cut -d" " -f2|tr 'A-Z'


'A-Z'

RESULT=echo "the first line " |tr 'a-z' 'A-Z'

echo $RESULT


file 'ls /var/log' |cut -d: -f2|tr -d' ' |sort


uniq 对于连续的内容,只保留一个


tee

command |tee file |command

ls /etc |tee /tmp/tee.out |gr 'a-z' 'A-Z'



本文转自 穿越防火墙 51CTO博客,原文链接:http://blog.51cto.com/sjitwant/1399186


相关文章
|
10天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
27天前
|
安全 Shell Linux
【Shell 命令集合 系统管理 】Linux 锁定终端 vlock命令 使用指南
【Shell 命令集合 系统管理 】Linux 锁定终端 vlock命令 使用指南
35 1
|
27天前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 显示当前登录到系统的用户信息 who命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示当前登录到系统的用户信息 who命令 使用指南
42 1
|
27天前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 显示目前登入系统的用户信息 w命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示目前登入系统的用户信息 w命令 使用指南
42 2
|
27天前
|
存储 Shell Linux
【Shell 命令集合 系统管理 】Linux 修改用户的属性和配置 usermod命令 使用指南
【Shell 命令集合 系统管理 】Linux 修改用户的属性和配置 usermod命令 使用指南
30 1
|
11天前
|
Shell Linux
【Linux】12. 模拟实现shell
【Linux】12. 模拟实现shell
27 2
|
13天前
|
Linux API C语言
FFmpeg开发笔记(一)搭建Linux系统的开发环境
本文指导初学者如何在Linux上搭建FFmpeg开发环境。首先,由于FFmpeg依赖第三方库,可以免去编译源码的复杂过程,直接安装预编译的FFmpeg动态库。推荐网站<https://github.com/BtbN/FFmpeg-Builds/releases>提供适用于不同系统的FFmpeg包。但在安装前,需确保系统有不低于2.22版本的glibc库。详细步骤包括下载glibc-2.23源码,配置、编译和安装。接着,下载Linux版FFmpeg安装包,解压至/usr/local/ffmpeg,并设置环境变量。最后编写和编译简单的C或C++测试程序验证FFmpeg环境是否正确配置。
35 8
FFmpeg开发笔记(一)搭建Linux系统的开发环境
|
24天前
|
存储 算法 Shell
【Linux 环境变量相关】深入理解Linux下 CMake、Shell 与环境变量的交互(二)
【Linux 环境变量相关】深入理解Linux下 CMake、Shell 与环境变量的交互
44 0
|
24天前
|
Shell Linux 开发工具
shell的介绍以及Linux权限的讲解
shell的介绍以及Linux权限的讲解
31 2
|
27天前
|
网络协议 Shell Linux
【Shell 命令集合 系统管理 】Linux 查询域名的注册信息 whois命令 使用指南
【Shell 命令集合 系统管理 】Linux 查询域名的注册信息 whois命令 使用指南
45 1