Lnixu Bash
一.简单命令
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的更多相关文章
- scp报错 -bash: scp: command not found
环境:RHEL6.5 使用scp命令报错: [root@oradb23 media]# scp /etc/hosts oradb24:/etc/ -bash: scp: command not fou ...
- bash字符串操作
参考 http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html 问题:bash怎么提取字符串的最后一位?例如python中strin ...
- grep 查找bash脚本中的注释代码
出于安全性的考虑,不建议在bash脚本中注释掉不使用的代码.也就是说如果某段代码不使用了,那么应该删除掉,而不是简单地注释掉.假如你突然意识到这一点,而以前并没有遵从这个原则,现在需要找出脚本中的注释 ...
- Bash 脚本编程语言中的美学与哲学
我承认,我再一次地当了标题党.但是不可否认,这一定是一篇精华随笔.在这一篇中,我将探讨 Bash 脚本语言中的美学与哲学. 这不是一篇 Bash 脚本编程的教程,但是却能让人更加深入地了解 Bash ...
- cmder git bash 使用
cmder 是一款 windows 下的命令集合软件,它可以集合各种系统下的命令,并且操作非常快速方便. 安装有两个版本,一个是简化版(4.27M),一个是完全版(75.7M),它们的唯一区别:完全版 ...
- 安装完成后在命令行运行bash时报错0x80070057
在命令运行bash 提示如下: 解决方法,不启用旧版本控制台: 右键命令提示栏 打开属性,把勾选去掉如下图红色边框标识: 然后重启,就可以使用,也包括可以打开Bash on Unbuntu on Wi ...
- Bash简明教程--变量
1. 前言 Bash是一门流行在*nix系统下的脚本语言.作为一门脚本语言,变量是一门语言的基本要素,在这篇教程中,我们将学习Bash中的变量是怎么表示的,以及变量相关的一些语法规则. 2. Bash ...
- 让BASH,VIM美美的Powerline
前言 鉴于BASH及其周边强大的工具以及VIM高效快捷,加上现在我工作重心转移到前端开发上,因此我华丽地转向Linux阵营(当然从最傻瓜式的Ubuntu开始啦!).但BASH和VIM默认样式确实颜值 ...
- 解决Bash On Ubuntu On Window安装Zsh无效问题附安装说明
前言 Zsh是一款非常棒的Shell,使用Linux和Mac系统的人,基本上都知道zsh的存在. 问题 在安装完Zsh后,zsh是可以使用的,但是重启之后,又恢复至默认的bash. 我在安装好之后,使 ...
随机推荐
- ubuntu16.04中将python3设置为默认+永久去除Ubuntu16.04报错
直接执行这两个命令: sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100 sudo updat ...
- 怎么给xshell服务配置密钥远程登陆
xshell密钥登陆 1.找一台测试服务器xiuxiu-test生成密钥对2. cd ./.ssh/ && 把公钥放在~/.ssh/authorized_keys文件中 cat id ...
- java+selenium+maven+IntelliJ IDEA 搭建简单的UI自动化测试环境
1. 用IntelliJ IDEA新建一个maven工程 2. 在pom.xml中添加依赖: <dependency> <groupId>org.seleniumhq.sele ...
- PXE自动化安装系统
准备(以centos7为例) ①关闭防火墙 ②关闭selinux ③dhcp服务设置为静态IP ④安装软件包 http:充当yum源安装包仓库 tftp-server :在它的工作目录存在引导主机的工 ...
- Linux test命令
test命令 长格式的例子: test "$A" == "$B" && echo "Strings are equal" t ...
- linux 服务器 php vue项目部署流程总结
服务器配置 购买阿里云服务器 (选择ubuntu 16系统 / 内存2G以上) 安全策略, 入规则: 添加端口 20,21,22, 80, 443, 3306, 8080, 安装宝塔 wget -O ...
- python基础知识09-继承,多继承和魔术方法
1.继承 class Father: def init(self,age,sex): self.age = age self.sex = sex class Son(Father): 类名后面写括号, ...
- luogu2894 [USACO08FEB]酒店Hotel
跟线段树求区间最值一样每个节点维护左边开始的最大连续空房间数.右边开始的最大连续空房间数.这个区间内的最大连续空房间数 #include <iostream> #include <c ...
- mysql5.7.20主从和主主搭建
环境描述mysql主从和主主同步 注意事项:1)同步服务器网络联通,ping通,对方授权信息连接到对方数据库(防火墙开发3306)2)关闭SELinux3)同步前,双方数据库需要同步数据保持一致. 主 ...
- 静态工具类中使用注解注入service实例
一般需要在一个工具类中使用@Autowired 注解注入一个service.但是由于工具类方法一般都写成static,所以直接注入就存在问题. 使用如下方式可以解决: /** * */ package ...