常用命令记录

文章目录

    • base64
    • [awk、sed 命令](#awk、sed 命令)
    • [tar 命令](#tar 命令)
    • [yum 安装rpm 命令](#yum 安装rpm 命令)
    • [git 命令](#git 命令)
    • [sbt 命令](#sbt 命令)

base64

python 的base64.decodestring方法做base64解码时报错。

bash 复制代码
Traceback (most recent call last):
File "/export/www/outofmemory.cn/controllers/user.py", line 136, in decryptPassword
encryptPwd = base64.b64decode(encryptPwd)
File "/usr/lib/python2.7/base64.py", line 76, in b64decode
raise TypeError(msg)
TypeError: Incorrect padding
python 复制代码
 def decode_base64(data):
            """Decode base64, padding being optional.
            :param data: Base64 data as an ASCII byte string
            :returns: The decoded byte string.
            """
            missing_padding = 4 - len(data) % 4
            if missing_padding:
                data += b'='* missing_padding
            return base64.decodestring(data)

awk、sed 命令

bash 复制代码
awk 'BEGIN{sum=0}{sum+=\$1}END{print sum}' test.txt
sed -F '\t' a.txt b.txt > test.txt
相同行合并并求和
awk 'BEGIN{FS=OFS="|"}{a[$2]+=$1;b[$2]=b[$2]$NF"/"}END{for(i in a)print  a,i,b}' file

tar 命令

root@linux \~# tar -cxtzjvfpPN 文件与目录 ....

参数:

-c :建立一个压缩文件的参数指令(create 的意思);

-x :解开一个压缩文件的参数指令!

-t :查看 tarfile 里面的文件!

特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!

因为不可能同时压缩与解压缩。

-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?

-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?

-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!

-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!

例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成

『 tar -zcvPf tfile sfile』才对喔!

-p :使用原文件的原来属性(属性不会依据使用者而变)

-P :可以使用绝对路径来压缩!

-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!

--exclude FILE:在压缩的过程中,不要将 FILE 打包!

yum 安装rpm 命令

bash 复制代码
yum -y install ruby rubygems ruby-devel rpm-build.x86_64

安装ruby模块

bash 复制代码
yum -y install ruby rubygems ruby-devel

查看当前使用的rubygems仓库

bash 复制代码
gem sources list

添加淘宝的Rubygems仓库,外国的源慢,移除原生的Ruby仓库

bash 复制代码
gem sources --remove http://rubygems.org/

gem sources -a https://upyun.gems.ruby-china.org

安装fpm,gem从rubygem仓库安装软件类似yum从yum仓库安装软件。首先安装低版本的json,高版本的json需要ruby2.0以上,然后安装低版本的fpm,够用。

bash 复制代码
gem install json -v 1.8.3

gem install fpm -v 1.3.3

上面的2步安装仅适合CentOS6系统,CentOS7系统一步搞定,即gem install fpm

创建工作目录:

bash 复制代码
mkdir /tmp/1/opt/elasticsearch/ -p

拷贝文件

bash 复制代码
cp -r /opt/elasticsearch/* /tmp/1/opt/elasticsearch/

编写删除脚本,命名为/tmp/remove_after.sh,内容为:

bash 复制代码
#!/bin/bash
rm -rf /opt/elasticsearch

创建rpm包:

bash 复制代码
fpm -s dir -t rpm -n elasticsearch -v 5.2.0 --iteration 1.el6 -C /tmp/1 -p /root --post-uninstall /tmp/remove_after.sh  -d 'gcc,gcc-c++'

之后在/root目录下生成包/root/elasticsearch-5.2.0-1.el6.x86_64.rpm

参数详解

-s 指定源类型 dir: 将目录打包成所需要的类型,可以用于源码编译安装的软件包

-t 指定目标类型 rpm: 转换为rpm包

-n 指定包的名字 elasticsearch

-v 指定版本 5.2.0

--iteration 指定打包次数 1

-C 指定打包的绝对路径 /tmp/1

-d 指定依赖包 gcc

-p 输出的安装包的目录,不想放在当前目录下就需要指定 /root

--post-uninstall 软件包卸载完成之后所要运行的脚本;同--offer-remove

git 命令

执行Git命令时出现各种 SSL certificate problem 的解决办法

bash 复制代码
#set GIT_SSL_NO_VERIFY=true git clone 
git config --global http.sslVerify false  

linux:
env GIT_SSL_NO_VERIFY=true git push  
在本机git bash中执行如下命令,可生成秘钥:
ssh-keygen -t rsa -C "jixiaoguang@ict.ac.cn"
-------------------------------------------------------------------------------------------------------
本地命令
git								查看命令

git status						查看状态

git init						初始化仓库(在目录内部)
								删除.git目录,则可以删除仓库

git add <file>					把文件增加到暂存区
git add .						全部

git rm --cached <file>			删除暂存区的文件

git commit -m '提交说明'		把暂存区的文件提交到仓库

git log							查看所有的commit记录

git branch						查看当前分支
git branch 分支名称				创建分支,在哪个分支里面创建分支,则创建的分支和那个分支的内容完全一样
git branch -d 分支				删除分支,如果正处于要删除的分支里,先切换到其他分支
git branch -D 分支				强制删除分支,如果要删除的分支还没合并到master分支,用"-d"删除	
								可能会失败,这时候则用"-D"强制删除

git checkout 分支名称			切换分支
git checkout -b 分支名称		创建分支并且切换到该分支
git checkout commit_id			切换到某次commit
git checkout <file>				撤销还没有add到暂存区的操作

git merge	 分支				合并分支
								第一步,想合并到哪个分支里,就要先切换到哪个分支;
								第二步,执行"git merge 分支名称"

git tag							查看版本标签
git tag 版本标签				新建版本标签(如V1.0)
git tag -d 版本标签				删除版本标签
git checkout 版本标签			切换版本标签

git diff						查看差异(当前目录里文件与暂存区文件的差异)
git diff <$id1> <$id2>			比较两次提交之间的差异
git diff <branch1>..<branch2>	比较两个分支之间的差异
-------------------------------------------------------------------------------------------------------

远程命令
git remote -v		  			查看当前项目有哪些远程仓库

git remote add 远程仓库名称 远程仓库地址
								把本地的当前仓库与远程的仓库关联
								如:git remote add origin git@github.com:stormzhang/test.git		
								origin是给本地仓库里项目的远程仓库起的名字
								git@github.com:stormzhang/test.git是远程仓库的地址

git push 远程仓库名称 远程仓库分支
								把本地代码推到远程仓库的分支里,push之前肯定执行过pull
								如:git push origin master		把本地代码推到远程master分支

git pull 远程仓库名称 远程仓库分支
								把远程仓库里分支的代码拉到本地
								如:git pull origin master		把远程master分支的代码拉到本地

git remote rm origin			删除远程仓库名

-------------------------------------------------------------------------------------------------------
远程与本地仓库对接步骤:
1.远程仓库新建分支,名称为非中文,如:1.01
2.本地仓库创建名为1.01的分支,执行:git branch 1.01
3.本地仓库切换到1.01分支,执行:git checkout 1.01
4.本地仓库更新代码后,把更新内容增加到暂存区,执行:git add .
5.本地仓库提交更新内容,执行:git commit,回车之后进入vim编辑环境,写一点提交概述
6.本地仓库push更新内容到远程仓库,执行:git push origin 1.01

三、将远程仓库项目与本地仓库代码做好映射

建立与远程仓库的关联

git remote add origin git@git.xxx.cn:tms/demo.git

将本地仓库代码同步到远程仓库

同步代码分支到远程仓库:git push -u origin --all

同步代码Tag到远程仓库:git push -u origin --tags

四、分支管理

  1. 从当前分支中克隆一个新的分支:git branch -c <分支名称> ##从当前分支新建一个分支,并切换到新分支:git checkout -b <分支名称>

  2. 将新建分支同步到远程仓库:git push origin <分支名称> ##不加分支名称,则把所有分支同步到远程仓库

  3. 删除分支:git branch -d <分支名称>

  4. 删除远程仓库分支:git push origin --delete <分支名称>

  5. 查看当前项目的分支:git branch ##查看所有仓库分支,使用:git branch -a

  6. 切换分支:git checkout <分支名称>

  7. 将远程仓库已经存在的分支同步到本地仓库:git checkout <分支名称>

五、Tag管理

  1. 查看当前存在的tag:git tag ##查看单个tag详情,可用命令:git show <tag名称>

  2. 新建Tag:git tag <tag名称> ##带说明信息的tag,可用命令:git tag -a <tag名称> -m '<注释信息>'

  3. 将新建的Tag同步到远程仓库:git push origin <tag名称> ##如果要把所有tag都同步到远程仓库,可用命令:git push origin --tags

  4. 删除Tag:git tag -d <tag名称>

  5. 删除远程仓库Tag:git push origin :refs/tags/<tag名称>

  6. 将远程仓库Tag同步到本地:git fetch origin tag <tag名称>

六、代码管理

  1. 从远程仓库拉取最新代码:git pull ##如果要拉取所有分支代码,可使用命令:git pull --all

  2. 新建文件添加到版本库:git add <文件名> ##如果要添加多个文件,可使用命令:git add -A

  3. 将当前项目中的改动同步到本地仓库中:git commit -m "日志"

  4. 将本地仓库中的代码同步到远程仓库:git push

  5. 将develop分支的改动同步到master分支:1)git checkout <master> 2) git merge <develop>

  6. 修改已commit,但还未push的提交日志(vi操作命令):git commit --amend

七、日志查看

  1. 查看全部提交日志:git log

  2. 查看某个人的提交日志:git log --author=<str>

  3. 依次查看详细的提交内容:git log -p ##如果要查看指定的一次提交记录, 后面加上 commitID即可

八、配置Git仓库

  1. 配置用户名和邮箱

git config --global user.name "Your Name"

git config --global user.email "you@example.com"

  1. 秘钥

2.1 生成秘钥

ssh-keygen -t rsa -C "you@example.com"

2.2 添加sshkey至ssh-agent

2.2.1. 执行eval "$(ssh-agent -s)"确认ssh-agent处于开启状态,打印pid... 表示启用中;

2.2.2. 执行指令ssh-add ~/.ssh/id_rsa 添加ssh key至ssh agent

  1. 添加sshkey至github

  2. 测试连通性

ssh -T git@github.com

本地项目和github项目建立连接

git remote add origin git@git.xxx.cn:tms/demo.git

初始化项目,进入项目根目录

git init

7.解决master push失败(两边代码不同步的问题)

git pull --rebase origin master

git push -u origin master


sbt 命令

1.下载

http://www.scala-sbt.org/download.html

解压:

sbt-0.13.12.zip

2.添加环境变量

SBT_HOME=D:\JavaDev\sbt

path=......;%SBT_HOME%\bin;

3.配置本地仓库

编辑:conf/sbtconfig.txt

bash 复制代码
# Set the java args to high
-Xmx512M
-XX:MaxPermSize=256m
-XX:ReservedCodeCacheSize=128m
# Set the extra SBT options
-Dsbt.log.format=true
-Dsbt.boot.directory=D:/JavaDev/boot/
-Dsbt.global.base=D:/JavaDev/.sbt
-Dsbt.ivy.home=D:/JavaDev/.ivy2
-Dsbt.repository.config=D:/JavaDev/sbt/conf/repo.properties

增加文件 conf/repo.properties

bash 复制代码
[repositories] 
local
Nexus osc : https://code.lds.org/nexus/content/groups/main-repo
Nexus osc thirdparty : https://code.lds.org/nexus/content/groups/plugin-repo/
 typesafe: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly 
typesafe2: http://repo.typesafe.com/typesafe/releases/
sbt-plugin: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/
 sonatype: http://oss.sonatype.org/content/repositories/snapshots 
 uk_maven: http://uk.maven.org/maven2/ 
 ibibli: http://mirrors.ibiblio.org/maven2/ 
repo2: http://repo2.maven.org/maven2/

4.测试

sbt -version

5.sbt 创建项目

用sbt创建eclipseIDE项目,新建一个文件夹,例如demo1,作为工程目录,sbt命令的执行都是在该目录下。分为两个步骤:

  1. 手工建立build.sbt,用sbt compile 命令建立sbt项目;执行之后,会在demo1目录下生成project和target两个目录。
  2. 在新生成的project目录下手工建立 plugins.sbt,用sbt eclipse命令建立eclipse项目,之后可以用eclipseIDE导入文件类项目
    具体文件如下:
    (1) build.sbt
bash 复制代码
   name := "demo1"
   scalaVersion := "2.11.1"
   version := "1.0"
   scalacOptions += "-deprecation"
   libraryDependencies <+= (scalaVersion)("org.scala-lang" % "scala-compiler" % \_)

说明:name 为创建的工程的名字,scalaVersion为你安装的scalaVersion的版本。version为你创建的工程的版本。

(2) plugins.sbt

bash 复制代码
    addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")

资源来源网络进行整理而来!

相关推荐
凡人叶枫16 分钟前
Effective C++ 条款28:避免使用 handles 指向对象内部
linux·服务器·开发语言·c++·嵌入式开发
AI帮小忙18 分钟前
Debian系linux操作系统里安装OpenClaw
linux·运维·debian
极创信息20 分钟前
Linux挖矿病毒深度清理实战教程,从进程隐藏、Rootkit驻留到彻底根除
java·大数据·linux·运维·安全·tomcat·健康医疗
志栋智能1 小时前
超自动化巡检剧本(Playbook):运维经验的数字化封装
运维·自动化
ElevenS_it1882 小时前
Nginx日志监控告警实战:access_log解析+5xx突增+慢请求+异常IP自动告警完整方案(Filebeat+Zabbix)
运维·网络·tcp/ip·nginx·zabbix
weixin_307779132 小时前
Python写入Shell文件使用Linux系统的换行符
linux·开发语言·python·自动化
阿里嘎多学长2 小时前
2026-06-13 GitHub 热点项目精选
开发语言·程序员·github·代码托管
liulilittle2 小时前
Linux Swap 文件配置与持久化(虚拟内存)
linux·运维·服务器
未若君雅裁2 小时前
日志采集与ELK:从本地日志到集中检索分析
运维·elk·jenkins
青梅橘子皮2 小时前
Linux---进程控制(2)(进程程序替换)
linux·c++·算法