常用命令记录

文章目录

    • 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 把文件增加到暂存区 git add . 全部 git rm --cached 删除暂存区的文件 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 撤销还没有add到暂存区的操作 git merge 分支 合并分支 第一步,想合并到哪个分支里,就要先切换到哪个分支; 第二步,执行"git merge 分支名称" git tag 查看版本标签 git tag 版本标签 新建版本标签(如V1.0) git tag -d 版本标签 删除版本标签 git checkout 版本标签 切换版本标签 git diff 查看差异(当前目录里文件与暂存区文件的差异) git diff <$id1> <$id2> 比较两次提交之间的差异 git diff .. 比较两个分支之间的差异 ------------------------------------------------------------------------------------------------------- 远程命令 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](mailto: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 \ 2. 新建Tag:git tag \ ##带说明信息的tag,可用命令:git tag -a \ -m '\<注释信息\>' 3. 将新建的Tag同步到远程仓库:git push origin \ ##如果要把所有tag都同步到远程仓库,可用命令:git push origin --tags 4. 删除Tag:git tag -d \ 5. 删除远程仓库Tag:git push origin :refs/tags/\ 6. 将远程仓库Tag同步到本地:git fetch origin 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 \ 2) git merge \ 6. 修改已commit,但还未push的提交日志(vi操作命令):git commit --amend 七、日志查看 1. 查看全部提交日志:git log 2. 查看某个人的提交日志:git log --author=\ 3. 依次查看详细的提交内容:git log -p ##如果要查看指定的一次提交记录, 后面加上 commitID即可 八、配置Git仓库 1. 配置用户名和邮箱 git config --global user.name "Your Name" git config --global user.email "[you@example.com](mailto:you@example.com)" 1. 秘钥 2.1 生成秘钥 ssh-keygen -t rsa -C "[you@example.com](mailto: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](mailto:git@github.com) 本地项目和github项目建立连接 git remote add origin [git@git.xxx.cn](mailto:git@git.xxx.cn):tms/demo.git 初始化项目,进入项目根目录 git init 7.解决master push失败(两边代码不同步的问题) git pull --rebase origin master git push -u origin master *** ** * ** *** ### sbt 命令 1.下载 解压: 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") ``` > 资源来源网络进行整理而来!

相关推荐
cccyi72 小时前
Linux Socket 编程全解析:UDP 与 TCP 实现及应用
linux·tcp socket·udp socket
刘一说2 小时前
深入理解 Spring Boot Actuator:构建可观测性与运维友好的应用
运维·spring boot·后端
洛卡卡了2 小时前
Typora + PicGo + 阿里云 OSS:一套自己的图床方案
github·设计
小苏兮2 小时前
【把Linux“聊”明白】自动化构建-make/Makefile详解
linux·服务器·学习·自动化·1024程序员节
kyle~3 小时前
计算机网络---安全外壳协议(SSH,Secure Shell)
运维·计算机网络·安全·ssh
逛逛GitHub3 小时前
本周 6 个最火火火火 GitHub 项目,AI 杀疯了。
github
fy zs3 小时前
linux文件系统和软硬连接
linux·centos
破烂pan3 小时前
Jenkins 定时触发(cron)使用说明
运维·jenkins
QT 小鲜肉3 小时前
【个人成长笔记】将Try Ubuntu里面配置好的文件系统克隆在U盘上(创建一个带有持久化功能的Ubuntu Live USB系统)
linux·开发语言·数据库·笔记·ubuntu