一.简单命令

1.创建文件(vi)
vi hellowold.txt
2.创建目录(mkdir)
mkdir linux_bash
3.删除文件(rm)
rm helloworld.txt
4.复制文件(cp)
cp src des
5.移动文件或重命名(mv)
mv oldname newname
6.脚本中打印(echo)
echo "some print str"
7.文件中搜索字符串(grep)
grep 'searchworld' filename
8.指定输出文件中字符长度(cut)
cut -b 5-9 filename
9.输出文件内容到屏幕上(cat)
cat filename
10.得到文件类型(file)
file fimename
11提示用户输入。并将输入赋值给变量(read)
read var
12.对文件中的行进行排序(sort)
sort filename
13.删除文本文件中出现的行列(uniq)
sort filename | uniq
14.进行数学运算(expr)
add 2 and 3 expr
15 搜索文件(find)
find . -name filename -print
16 将数据输出到屏幕或文件中(teee)
somecommand | tee outfile
17 回返不包含路径的文件名(basename)
basename /bin/filename 返回filename
18 返回文件所在路径(dirname)
dirname /bin/filename 返回bin
19 打印文件开头几行或者末尾几行
head filename
tail filename
20 查找替换 可以从标准输入(如命令管道)读入文本,并将结果输出到屏幕
sed 's/linuxfocus/LinuxFocus'(待定)
21 从文本文件中提取字段awk
cat filename | awk -F,'{print $1 "," $3}' 使用","作为字段分割符,同时打印第一个和第三个字段
eg: srouce: Adam Bor,33,IndiaKerry Miller,22,USA
dest: Adam Bor,Indiakerry Miller,USA

23
管道 | 将一个命令的输出作为另一个命令的输入
eg: grep "hello" file.txt | wc -l
在file.txt从搜索包含有"hello"的行并计算其行数
重定向 >写入文件并覆盖旧文件
>>加入文件的尾部,保留旧文件内容
\ 将一个命令的输出作为另外一个命令的一个命令行参数

find . -mtime -1 -type f -print
用来查找过去24小时(-mtime -2则表示过去48小时)内修改过的文件,
tar -zcvf lastmod.tar.gz 'find . -mtime -1 -type f -print'
打包查找的文件

二:流程控制语法

1.流程控制if else
if [-f "somefile"] ;then
echo "somefile 是一个文件"
elif [-x "/bin/ls"] ;then
echo "/bin/ls有权限"
else
echo "if fi为固定格式"
fi

“if” 表达式,如果条件为真则执行then后面的部分
[-f "somefile"] 判断是否是一个文件
[-x "/bin/ls"] 判断/bin/ls是否存在并有可执行权限
[-n "$var"] 判断var变量是否有值
["$a"="$b"] 判断$a $b是否相等

2.流程控制 case 可以用来匹配一个给定的字符串而不是数字

ftype='file "$1"'
case "$ftype" in
"$1:Zip archve"*)
unzip "$1";
"$1: gzip compressed"*)
gunzip "$1";
"$1: bzip2 compressed"*)
bunzip2 "$1";
*) echo "File $1 can not be uncompressed with smartzip";
esac

3.流程控制 select表达式是一种bash的扩展应用,擅长于交互式使用,用户可以从一组不同的值中进行选择

echo "what is your favourite OS?"
select var in "Linux" "Gnu Hurd" "Free BSD" "Other";do
break
done
echo "You have selected $var"

如果你输入 1 ,输出 You have selected Linux

4 流程控制loop
4.1 while-loop 将运行直到表达式测试为真

while ...;do
...
done

4.2 for-loop 表达式查看一个字符串(字符串用空格分隔)然后将其赋给一个变量

for var in ....;do
.....
done

for var in A B C do
echo "var is $var"
done

3.简单脚本

#! /bin/sh

a="hellowold,boy!"
echo "A is"
echo ${a}

Lnixu Bash的更多相关文章

  1. scp报错 -bash: scp: command not found

    环境:RHEL6.5 使用scp命令报错: [root@oradb23 media]# scp /etc/hosts oradb24:/etc/ -bash: scp: command not fou ...

  2. bash字符串操作

    参考 http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html 问题:bash怎么提取字符串的最后一位?例如python中strin ...

  3. grep 查找bash脚本中的注释代码

    出于安全性的考虑,不建议在bash脚本中注释掉不使用的代码.也就是说如果某段代码不使用了,那么应该删除掉,而不是简单地注释掉.假如你突然意识到这一点,而以前并没有遵从这个原则,现在需要找出脚本中的注释 ...

  4. Bash 脚本编程语言中的美学与哲学

    我承认,我再一次地当了标题党.但是不可否认,这一定是一篇精华随笔.在这一篇中,我将探讨 Bash 脚本语言中的美学与哲学. 这不是一篇 Bash 脚本编程的教程,但是却能让人更加深入地了解 Bash ...

  5. cmder git bash 使用

    cmder 是一款 windows 下的命令集合软件,它可以集合各种系统下的命令,并且操作非常快速方便. 安装有两个版本,一个是简化版(4.27M),一个是完全版(75.7M),它们的唯一区别:完全版 ...

  6. 安装完成后在命令行运行bash时报错0x80070057

    在命令运行bash 提示如下: 解决方法,不启用旧版本控制台: 右键命令提示栏 打开属性,把勾选去掉如下图红色边框标识: 然后重启,就可以使用,也包括可以打开Bash on Unbuntu on Wi ...

  7. Bash简明教程--变量

    1. 前言 Bash是一门流行在*nix系统下的脚本语言.作为一门脚本语言,变量是一门语言的基本要素,在这篇教程中,我们将学习Bash中的变量是怎么表示的,以及变量相关的一些语法规则. 2. Bash ...

  8. 让BASH,VIM美美的Powerline

    前言  鉴于BASH及其周边强大的工具以及VIM高效快捷,加上现在我工作重心转移到前端开发上,因此我华丽地转向Linux阵营(当然从最傻瓜式的Ubuntu开始啦!).但BASH和VIM默认样式确实颜值 ...

  9. 解决Bash On Ubuntu On Window安装Zsh无效问题附安装说明

    前言 Zsh是一款非常棒的Shell,使用Linux和Mac系统的人,基本上都知道zsh的存在. 问题 在安装完Zsh后,zsh是可以使用的,但是重启之后,又恢复至默认的bash. 我在安装好之后,使 ...

随机推荐

  1. 使用Eclipse中的反编译插件jadClipse查看Class源码

    功安装完插件jadClipse 之后便可以查看源码class文件了 但是对于自己代码的class文件,直接复制过来却看不到,需要以下操作. 将此文件以及文件夹直接拷贝到Eclipse中发现 右击项目- ...

  2. 7 SQL 集合运算

    7 集合运算 7-1 表的加减法 本章将会和大家一起学习“集合运算”操作.在数学领域,“集合”表示“(各种各样的)事物的总和”:在数据库领域,表示“记录的集合”.具体来说,表.视图和查询的执行结果都是 ...

  3. 为公司架构一套高质量的 Vue UI 组件库

    有没有曾遇过,产品要我们实现一个功能,但是 iview 或者 elementui 不支持,我们然后义正言辞的说,不好意思,组件库不支持,没法做到. 有没有曾和设计师争论得面红耳赤,其实也是因为组件库暂 ...

  4. 剑指Offer(书):实现单例模式

    题目:设计一个类,我们只能生成该类的一个实例. 生成一个单例模式,有下列几种常用解法. 1.双重检查锁. 当运行在多线程环境中,此方法可以正常实现单例模式. public class Singleto ...

  5. solr之windws下搭建solr服务

    安装Solr 首先保证已经正确安装了Java 下载Solr,当前最新版6.1.0 Solr各个版本下载地址 Solr从6.0之后需要Java1.8所以如果使用Solr6.0及其以上版本,请确保Java ...

  6. 【HDU 2028】Lowest Common Multiple Plus

    Problem Description 求n个数的最小公倍数. Input 输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数. Output 为每组测试数据输出它们的最小公倍数 ...

  7. 如何设置目标并发(或者目标RPS)?

    基本概念 首先您需要了解什么是并发用户.TPS 和它们之间的关系. 并发用户:指的是现实系统中同时操作业务的用户,在性能测试工具中一般称为虚拟用户(Virutal User).一般是站在客户侧评估的角 ...

  8. Android渐变GradientDrawable叠加组合环ring

     Android渐变GradientDrawable叠加组合环ring 写一个Android环形shape之间的叠加组合形成新图像的例子.代码: <?xml version="1. ...

  9. [luoguP1773] 符文之语_NOI导刊2010提高(02)(DP)

    传送门 f[i][j]表示前i个数余数为j的最优解 sum[i][j]表示字符串i~j所构成的数 #include <cstdio> #include <cstring> #d ...

  10. linux下程序JDBC连接不到mysql数据库

    今天在linux下部署一个 JavaEE项目的时候总是连接不到Mysql数据库,检查之后发现连接池的配置确定是对的,进入linux服务器之后以mysql -uname -ppassword连接总是报A ...