①shell学习之路

本文介绍了一系列在Linux环境下实用的日志记录、属性文件配置读取、端口检查及进程管理的方法。其中包括如何将执行结果追加到日志文件、从配置文件中提取特定属性值、检查指定端口是否被占用、以及根据条件判断来后台启动服务等操作。
1.把执行的结果追加到日志中:
echo "加到日志中" >> ./logs/tnserver.log

2.根据key获取属性文件中的value值:
osgiPort=`cat ./configuration/config.ini | grep org.osgi.service.http.port | cut -d'=' -f2 | sed 's/\r//'`
(2解释:cat命令用来搜索config.ini文件,第一个grep用来筛选为org.osgi.service.http.port的一行,比如org.osgi.service.http.port=10927这句,但是现在想要得到是10927这个端口号,所以还需要进行剪接一下cut -d'=' -f2这句表示把org.osgi.service.http.port=10927以“=”号进行分割,然后通过-f2参数得到分割的第二个值,为什么之后还需要sed一下呢?这个问题是由于config.ini中在window中有换行符,如果不进行处理得到的值可能就是这样"10927\r")

3.查看端口号是否被占用:
netstat -an|grep ${osgiPort}或是netstat -an|grep 10927

4.if判断不等于,elif判断不等于,后台启动:
if [ "${osgiProcess}n" != "n" ]
then
echo "TNServer is already running..."
elif [ "${findPort}n" != "n" ]
then
echo "TNServer port \"${osgiPort}\" is already used.."
else
`nohup java -jar osgi_tnserver_start.jar -console &`
fi

5.linux中下载命令:
curl -O http://url
<think>好的,我需要帮助用户获取HBase Shell常用命令的完整示例代码及操作步骤,包括创建表、插入数据、更新数据、查询数据、删除数据等操作。首先,我需要回忆HBase Shell的基本命令,并确保每个步骤都正确无误。 首先,创建表。HBase中创建表需要指定表名和列族,语法是create '表名', '列族1', '列族2'。例如,用户可能需要个学生行为表,包含PC端和手机端两个列族,所以示例应该是create 's_behavior', 'pc', 'ph'。同时要提醒用户列族需要在创建表时定义好,之后不能轻易修改。 接下来是插入数据。用户提供的引用中提到了put命令的使用,格式是put '表名', '行键', '列族:列限定符', '值'。例如,插入PC端的数据和手机端的数据到同行键,这样它们属于同行不同列族。需要给出具体的示例,如put 's_behavior', '12345_1516592489001_1', 'pc:v', '1001',并说明行键的设计可能包含用户ID、时间戳等。 更新数据其实和插入数据使用相同的put命令,因为HBase中写入数据会覆盖相同单元格的旧值。需要举例说明如何更新特定列的值,比如将pc:v从1001改为2002。 查询数据部分包括get和scan。get用于获取单行数据,而scan用于扫描全表或指定范围。示例中需要展示如何通过行键查询整行数据,或者指定列族、列来过滤结果。例如,get 's_behavior', '12345_1516592489001_1',或者加上COLUMN参数来限制返回的列。 删除数据涉及delete和deleteall命令。delete用于删除特定单元格的数据,而deleteall可以删除整行。例如,删除pc:v的值使用delete 's_behavior', '12345_1516592489001_1', 'pc:v',删除整行则用deleteall。 最后,可能还需要包括禁用表、删除表等操作,因为用户要求完整的逻辑。禁用表后才能删除,所以步骤是disable 's_behavior',然后drop。 同时,要确保所有命令的语法正确,比如使用单引号包裹表名和参数,注意列族的命名规则,以及行键的设计。需要提醒用户注意事项,例如列族不可修改、数据覆盖机制、时间戳版本控制等。 现在需要将这些步骤组织成个结构清晰的回答,包含每个命令的示例和解释,并参考用户提供的引用内容,比如引用[1]中提到的put命令示例,引用[3]提到的BulkLoad方法可能作为补充,但用户主要需要的是Shell命令,所以可能不需要深入。同时,生成相关问题,帮助用户进学习,比如性能优化、架构设计等,参考引用[2]中的内容。 需要检查是否有遗漏的命令,比如是否存在更新数据的其他方法,或者是否有更详细的查询选项。确保每个操作步骤都有对应的示例代码,并用代码块展示,符合用户要求的格式。最后,确认所有LaTeX格式正确,虽然HBase命令中可能不太涉及数学公式,但如果有变量或表达式,要正确使用$符号。</think>以下是HBase Shell常用命令的完整操作指南,包含创建表、数据操作及查询等核心功能实现逻辑: ### 、创建表 ```shell # 创建包含两个列族的表 create 's_behavior', 'pc', 'ph' ``` $$create语法:create \'表名\', \{NAME => \'列族名\', VERSIONS => n\}, ...$$ **说明**:创建名为`s_behavior`的表,包含`pc`和`ph`两个列族[^2] ### 二、数据操作 1. **插入数据**(PUT命令) ```shell # 插入PC端行为数据 put 's_behavior', '12345_1516592489001_1', 'pc:v', '1001' # 插入手机端行为数据到同行键 put 's_behavior', '12345_1516592489001_1', 'ph:o', '1001' ``` *逻辑说明*:相同行键的数据会合并为条记录,通过不同列族区分数据类型[^1] 2. **更新数据**(覆盖写入) ```shell put 's_behavior', '12345_1516592489001_1', 'pc:v', '2002' ``` *特性说明*:HBase通过时间戳实现多版本存储,默认保留最新版本 3. **删除数据** ```shell # 删除指定单元格 delete 's_behavior', '12345_1516592489001_1', 'pc:v' # 删除整行数据 deleteall 's_behavior', '12345_1516592489001_1' ``` ### 三、数据查询 1. **单行查询**(GET命令) ```shell get 's_behavior', '12345_1516592489001_1' # 带列过滤查询 get 's_behavior', '12345_1516592489001_1', {COLUMN => 'pc:v'} ``` 2. **范围扫描**(SCAN命令) ```shell # 全表扫描 scan 's_behavior' # 带前缀过滤扫描 scan 's_behavior', {ROWPREFIXFILTER => '12345_'} ``` ### 四、表管理 ```shell # 禁用表 disable 's_behavior' # 删除表 drop 's_behavior' ``` ### 注意事项 1. 列族创建后不可修改,需预先设计 2. 数据更新采用覆盖写入机制 3. 默认保留1个数据版本,可通过`alter`命令修改版本数 4. 行键设计建议包含时间戳反序(如`1516592489001`)以实现时间范围查询优化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值