shell --常用命令

diff

diff:用来比较两个文件或者目录的不同

常用参数:
-b    不检查空格字符
-B    不检查空行
-c    显示全部内容并且标出不同
-i    检查大小写不同
-q    仅仅显示有无差异,不显示详细信息
-r    比较子目录中的文件
-u    以合并的方式来显示文件内容的不同
diff在比较文件过程中结果读取方式:

a   添加
c   更改
d   删除

例:

vim file1
{
白茶清欢无别事
我的名字
}
vim file2
{
白茶清欢无别事
}
diff file1 file2

diff file2 file1

vim file2
{
白茶清欢无别事
我得名字
}
diff file1 file2

vim file2
{
白茶清欢无别事(空格字符)
我得名字
}

diff -b file1 file2   #不检测空格字符

vim file2
{
白茶清欢无别事

我得名字
}

diff -B file1 file2   #不检测空行

diff -c file1 file2   #显示所有内容并,标出不同之处

mkdir westos1 westos2
mkdir /westos1/westos3
diff -r westos1 westos2

diff -u file1 file2

diff -u file1 file2 > file.path

pacth

patch : 用于文件不同文件打补丁
-b

cat file.path
patch -b file1 file.path  #加上-b不会删除源文件,并且会生成file1.orig文件
cat file1 file2

cut

cut   #用于字符截取
常用参数:
-d   指定分割符
-f   截取的列
-c   截取字符的位置

例:

截取 172.25.254.251

ifconfig eth0
{
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.25.254.251  netmask 255.255.255.0  broadcast 172.25.254.255
        inet6 fe80::5054:ff:fe00:30a  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:00:03:0a  txqueuelen 1000  (Ethernet)
        RX packets 168357  bytes 15229316 (14.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6098  bytes 883367 (862.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
}
   
ifconfig eth0 | cut -d " "  -f  10 | head -n 2 | tail -n 1
ifconfig eth0 | awk '/inet\>/{print $2}'        #截取ifconfig eth0信息中 172.25.254.251
   

sort

sort  #用于字符排序
常用参数:
-n  纯数字排序
-r  倒序
-u  去掉重复数字
-o  输出到指定文件中
-t  指定分割符
-k   指定排序的列
cp /etc/*.conf  /mnt

ls -l | sort -t " " -k 5 -nr | head -n 5 | cut -c 43-   

ls -S  | head -n 5    #按第5列排序并且输出最大的文件名称

uniq

uniq   #对重复的字符作相应处理
常用参数:
-u  显示唯一的行
-d  显示重复的行
-c  每行显示一次并统计重复次数

&& 和 ||

&& 用来执行条件成立执行的命令

|| 用来执行条件成立执行的命令


vim ping.sh
{

#!/bin/bash
ping -c1 -w1  172.25.254.111 &> /dev/null  &&{
     echo 172.25.254.111 is up
}||{
     echo 172.25.254.111 is down
}

}

sh ping.sh 172.25.254.111   #拔掉网线测试
172.25.254.111 is down

sh ping.sh 172.25.254.111
172.25.254.111 is up

tr

tr   #大小写转化

test

test和[]等同   使用[]注意内容前后必须加上空格  [空格 内容 空格]
常用参数:
-z   #为空
-n   #不为空
-ef  #节点号是否相同
-nt  #file1是否比file2建立的晚
-ot  #file1是否比file2建立的早
-e   #文件存在
-f   #文件存在并且是正规文件
-L   ##软链接	ln -s file westos	ll westos
-s   ##socket   套接字	 yum install -y mariadb-server  ll /var/lib/mysql/
-b   ##block	块设备    ll /dev/sda
-d   ##目录
-c   ##字符设备	ls /dev/pts	 date > /dev/pts/5
=    #等于    
-lt  #小于
-le  #小于等于
-ge  #大于等于
-gt  #大于
 a=1;b=2
 [ "$a" = "$b" ] && echo yes || echo no     
 [ "$a" -lt "$b" ] && echo yes || echo no     
 [ "$a" -le "$b" ] && echo yes || echo no   
 [ "$a" -ge "$b" ] && echo yes || echo no
 [ "$a" -gt "$b" ] && echo yes || echo no
 a=2;b=2
 [ "$a" -ge "$b" ] && echo yes || echo no
vim test.sh
{
#!/bin/bash
[ "$1" -gt "0" -a "$1" -le "10" ]&& echo yes || echo no   #判断一个数是否属于0-10

}
sh test.sh 5
yes
sh test.sh 11
no

#判断/的内存使用率,当超过30%时在/var/log/messages下发出报警

vim mnt.sh
{
#!/bin/bash
[ `df / | tail -n 1 | awk '/\/$/{print $5}' | cut -d % -f 1` -ge "30" ]&&{
    echo " Waring: System root is full !!" >> /var/log/messages
}
}             

sh  mnt.sh

#判断文件属性
{
#!/bin/base
[ -z "$1" ] &&{     #判断文件是否为空
     echo please input filename following scripts
     exit
}
[ -e "$1" ] ||{    #判断文件是否存在
     echo $1 is not exit
     exit
}
[ -L "$1" ] &&{    #判断文件是否是软连接
     echo $1 is softlink file
     exit
}
[ -f "$1" ] &&{    #判断文件是否是正规文件
     echo $1 is common file
     exit
}
[ -d "$1" ] &&{    #判断是否是个目录
     echo  $1 is directory
     exit
} 
[ -b "$1" ] &&{    #判断是否是个块设备
     echo $1 is block
     exit
}
[ -c "$1" ] &&{   #判断是否是字符设备
     echo  is acharacter device
     exit
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: hbase-shell命令是HBase提供的一个交互式命令行工具,用于管理HBase数据库。通过hbase-shell命令,可以执行各种操作,如创建表、插入数据、查询数据、删除数据等。同时,hbase-shell还支持HBase的各种高级功能,如过滤器、计数器等。使用hbase-shell命令可以方便地管理HBase数据库,提高工作效率。 ### 回答2: HBase是一个高性能、分布式的NoSQL数据库,它的存储结构是基于列族的,并且可以处理非常海量的数据。HBase中内置了一个HBase Shell命令行工具,它可以用来快速操作HBase数据库。以下是一些常用的HBase Shell命令。 1. 查看帮助信息 使用help命令可以查看HBase Shell的帮助信息,可以使用help <command>查看某个具体命令的帮助信息。 2. 连接HBase数据库 使用connect命令可以连接到HBase数据库,例如:connect 'localhost'。 3. 列出表 使用list命令可以列出所有表,例如:list。 4. 创建表 使用create命令可以创建表,例如:create 'table_name', 'family1', 'family2'。 5. 查看表结构 使用describe命令可以查看表结构,例如:describe 'table_name'。 6. 删除表 使用drop命令可以删除表,例如:disable 'table_name',然后使用drop 'table_name'。 7. 插入数据 使用put命令可以插入数据,例如:put 'table_name', 'row_key', 'family1:column1', 'value1'。 8. 获取数据 使用get命令可以获取数据,例如:get 'table_name', 'row_key'。 9. 删除数据 使用delete命令可以删除数据,例如:delete 'table_name', 'row_key', 'family1:column1'。 10. 批量操作 使用批量操作命令,可以批量插入、获取、删除数据,例如:batch 'table_name', [ { 'delete' => 'row_key', 'column' => 'family:column' }, { 'put' => 'row_key', 'column' => 'family:column', 'value' => 'value' }, { 'get' => 'row_key' } ] 以上是一些常用的HBase Shell命令,可以帮助用户快速操作HBase数据库。在实际使用过程中,还可以结合编程语言(如Java)使用HBase客户端API来操作HBase数据库。 ### 回答3: HBase-shell命令是Apache HBase数据库的交互式命令行界面,使用它可以进行HBase数据库的数据查询、插入和更新等操作。该命令支持的操作包括表的管理、数据的 CRUD 操作、Scan、Filter 等。 一、表管理: 通过hbase shell,可以将HBase的表进行管理操作。首先创建一个新表的话,需要为其指定表名,列簇和列。创建表时,列簇和列是必须参数,不能缺少。 1、 创建表 hbase(main):001:0> create 'testtable', 'colfamily' 输出: 0 row(s) in 1.5540 seconds 2、 删除表 hbase(main):001:0> drop '[table name]' 3、 关闭表 hbase(main):002:0> disable '[table name]' 4、 启用表 hbase(main):003:0> enable '[table name]' 5、 列出所有表 hbase(main):004:0> list 输出: testtable 二、数据CRUD操作: 1、查询数据 hbase(main):001:0> get '[table name]', '[row key]' 2、 插入数据 hbase(main):002:0> put '[table name]', '[rowkey]', '[columnfamily:column]', '[value]' 3、 批量插入数据 hbase(main):003:0> put '[table name]', '[rowkey]', '[columnfamily:column]', '[value]', timestamp 4、 删除数据 hbase(main):004:0> delete '[table name]', '[row]', '[column]', '[value]', timestamp 5、 批量删除数据 hbase(main):005:0> deleteall '[table name]', '[row]', '[columnfamily]' 6、 查询指定行键范围的数据 hbase(main):006:0> scan 'testtable', {STARTROW => 'row1', ENDROW => 'row2'} 三、Scan操作: 在HBase表中,Scan操作被定义为基于行的迭代器的集合。以下是一些常用的scan操作。 1、 扫描整个表 hbase(main):006:0> scan 'testtable' 2、 根据指定的列扫描整个表 hbase(main):007:0> scan 'testtable', {COLUMNS => ['colfamily', 'col']} 输出: row1 colfamily:col1 value1 row2 colfamily:col2 value2 row3 colfamily:col3 value3 3、 根据指定的行扫描整个表 hbase(main):008:0> scan 'testtable', {ROWPREFIXFILTER => 'row1'} 输出: row1 colfamily:col1 value1 row1 colfamily:col2 value2 row1 colfamily:col3 value3 4、 根据指定的列和行扫描整个表 hbase(main):009:0> scan 'testtable', {FILTER => "(PrefixFilter('row') AND (QualifierFilter (>=,‘binary:col:')))"} 输出: row1 colfamily:col1 value1 row1 colfamily:col2 value2 row1 colfamily:col3 value3 综上所述,HBase-shell命令是操作HBase数据库的一个重要工具,可用于管理表和进行数据的读写删除等操作。尤其是对于非Java开发人员,HBase-shell命令的简单操作可以减少学习和使用HBase的难度,提高工作效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值