zoukankan      html  css  js  c++  java
  • Linux 常用命令

    蓝色的 mandelbrot

    • 简单指令
    • ssh
    • scp
    • git
    • log
    • alias

    github ssh key

    https://segmentfault.com/a/1190000002645623
    1、设置Git的user name和email,只是一个提交的标记作用,并不用它登录git的
    git config --global user.name "humingx"
    git config --global user.email "humingx@yeah.net"

    2、生成密钥
    ssh-keygen -t rsa -C "humingx@yeah.net"

    3、添加密钥到ssh-agent
    ssh-add ~/.ssh/id_rsa
    4、登录github,把id_rsa.pub内容复制到ssh keys内
    5、测试
    ssh -T git@github.com

    ssh key

    公钥和私钥 -->非对称加密
    公钥:加密/验章
    私钥:解密/签章

    客户端把公钥放到服务器,服务器用你的公钥加密内容,用它的私钥签章;
    客户端收到后用服务端的公钥验章(保证是它发的)
    用你的私钥解密(内容必须加密)

    数字证书
    在上述过程中,黑客有两个方法获取信息:1、把你保存的服务器公钥替换为它的
    2、拿到服务器的私钥;为了保证开始的发送公钥不是其他人发的
    数字证书包含:
    证书的发布机构
    证书的有效期
    公钥
    证书所有者(Subject)
    签名所使用的算法
    指纹以及指纹算法

    通信过程
    “客户”->“服务器”:你好

    “服务器”->“客户”:你好,我是服务器,这里是我的数字证书 //这里用证书代替了公钥

    “客户”->“服务器”:向我证明你就是服务器

    “服务器”->“客户”:你好,我是服务器 {你好,我是服务器}[私钥|RSA]
    SSH 服务器端:
    OpenSSH 软件包包含了以下程序:
    sshd -- SSH服务端程序
    sftp-server -- SFTP服务端程序(类似FTP,但提供数据加密的一种协议)
    scp -- 非交互式sftp-server的客户端,用来向服务器上传/下载文件,安全复制
    sftp -- 交互式sftp-server客户端,用法和ftp命令一样。
    slogin -- ssh的别名
    ssh -- SSH协议的客户端程序,用来登入远程系统或远程执行命令
    ssh-add -- SSH代理相关程序,用来向SSH代理添加dsa key
    ssh-agent -- ssh代理程序
    ssh-keygen -- ssh public key 生成器

    SSH 客户端工具:
    ssh 客户端工具比较常用的有:
    Windows(SecureCRT / Xshell / Putty)
    Linux (ssh)

    文件传输

    http://blog.51cto.com/skypegnu1/1538371
    利用SSH管理远程Linux服务器时,经常需要与本地交互文件。当然,我们可以利用FTP方式,比如通过Filezilla客户端软件。不过直接使用SSH软件(SecureCRT、Xshell)自带的上传和下载功能无疑使最方便快捷的。通常SSH软件支持的文件传输协议主要有ASCII、Xmodem、Zmodem等
    rz,sz是便是Linux/Unix同Windows进行ZModem文件传输的命令行工具
    rz receive 接收
    sz send 发送

    scp

    scp local_file remote_username@remote_ip:remote_folder
    local_file 可选
    whoami username
    ifconfig ip
    pwd remote_folder
    最终有:
    scp ubuntu@host:/home/ubuntu/tmp/nrt_app.csv
    sudo scp root@host:system.conf /Users/t/Downloads/
    ubuntu 传输文件到其他地方

    tar

    c create
    v visualize
    z gizp 压缩工具
    j bzip2 压缩工具
    f file
    x 解压
    tar -cvzf akpi_name.tar.gz akpi
    chmod
    tar -xvf akpi_name.tar.gz
    tar -cvjf xx.tar.bz2 file 0.238压缩率
    zip xx.zip file 0.220压缩率
    cvzf 比zip稍好一点点
    解压:
    tar -xvf xxx.tar.gz -C 路径
    tar -xvf xxx.tar.bz2 -C 路径
    unzip xxx.zip -d 路经
    chmod u+w g-x o+r demo.txt
    rwx 421
    chmod 632 demo.txt

    alias

    设置命令别名
    $ alias vi='vim'
    $ alias rm='rm -i'
    查看所有别名:
    $ alias
    取消别名:
    $ unalias rm
    别名永久生效
    $ vim ~/.bashrc
    在文件最后面加入别名设置,如:alias rm=’rm -i’,保存后重新载入:
    $ source ~/.bashrc
    因为修改的是当前用户目录下的.bashrc文件,所以这样的方式只对当前用户有用。如果要对所有用户都有效,修改/etc目录下的bashrc文件就可以了。在ubuntu 12.04下,这个文件是/etc/bash.bashrc。此外在ubuntu 12.04下,细看~/.bashrc文件,会发有这样一段代码:
    if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
    fi
    参考:http://www.01happy.com/linux-command-alias-unalias/

    git

    git使用公约
    1、新功能从master创建新分支A
    2、在新分支A上自行开发测试
    3、在新分支A上开发结束后merge新分支A到develop,在测试环境pull最新的develop进行测试
    4、如测试有问题,回到2继续
    5、如测试通过后,把新分支A再merge到master 特别注意:千万不能把develop分支merge到master
    日常操作:

    1. git status
    2. git add xxxx,fjsafa
    3. git commit -m 'sfafja'
    4. git commit -am 'fasfs'
    5. git push origin local:far
    6. git checkout develop
    7. git pull (if forget do it ,can do git pull origin develop:develop after wrong)
    8. git merge local_branch
    9. git push origin develop
    10. git checkout local_branch
    11. (server)~$ git pull
      更新代码:
      当前status 为 clean -->git checkout master --> (master)git pull -->git checkout lizd -->(lizd) git merge master (保持最新的代码,最后完成也需要这样的操作)
    • (develop) 不能和master有任何的merge操作,

    • 当出现merge冲突可以试试如下:

    • git reset --hard

    • git checkout master

    • git branch -D develop

    • git checkout develop

    • git pull

    • git merge lizd

    • git push origin develop:develop
      git 设置局部参数
      git 修改当前的project的用户名的命令为:git config user.name 你的目标用户名;
      git 修改当前的project提交邮箱的命令为:git config user.email 你的目标邮箱名;
      如果你要修改当前全局的用户名和邮箱时,需要在上面的两条命令中添加一个参数,--global,代表的是全局。
      命令分别为:git config  --global user.name 你的目标用户名;
      git config  --global user.email 你的目标邮箱名
      建一个分支:
      git branch dev_name
      git checkout dev
      git checkout -b dev (new build and checkout to it)

    • git merge dev (git merge --no--ff -m 'xx' dev)

    • git branch (-r 查看远程分支) git branch -vv 查看跟踪关系

    • git log --oneline --graph
      git fetch 抓取远程到现在
      git push -u [远程仓库名remote-name 默认origin] [本地推送的分支名]
      git clone 默认创建了本地master分支关联远程master分支
      删除分支:
      git branch -d brach_name
      git branch -r -d origin/branch_name
      or
      git push origin :branch_name

    log

    • 实时监控数据
      tail -200f xxx.log
      tail -f xxx.log
      tail -f xxx.log |grep yyy
      tail -f xxx.log |grep yyy |grep zzz
    • 查看历史数据
      grep xxxuid xxx.log 查看关键日志信息
      grep -n xxxuid xxx.log 显示行号
      cat -n test.log |grep "debug" 得到关键日志的行号 效果同上
      cat -n test.log |tail -n +121292|head -n 20 选择关键字所在的中间一行. 然后查看这个关键字(121292行)之后20行的日志
    • 更加常用的获得行号后,显示详细信息的操作
      grep -5 'parttern' inputfile //打印匹配行的前后5行

    grep -C 5 'parttern' inputfile //打印匹配行的前后5行

    grep -A 5 'parttern' inputfile //打印匹配行的后5行

    grep -B 5 'parttern' inputfile //打印匹配行的前5行

    sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行

    简单指令

    • 在线安装软件
      sudo apt-get update
      sudo apt-get install xxxx
      sudo apt-get remove xxxx
    • ls
      ls *.txt
      ls .
      ls -a 显示所有文件信息
      ls -la = ll
      ls -lah
      ls -lh
    • tree
      sudo apt-get install tree
      tree -L 2 几层
    • 重定向 >
      ls -l >> xxx.txt 存在追加,不存在新建
      cat text.txt > Desktop/xxx.txt
    • 软连接 ln (windows的快捷方式,只有一份源文件,删除源文件则失效)
      ln -s 源文件 软连接文件名
    • 硬链接 ln (防止误删文件,只是起了两个名字,文件仍是一份,一改都该,只有名字都删才会删除文件)
      ln 源文件 硬链接文件名
    • mkdir 创建目录
    • touch 创建文件
    • 删除 rm -r (recursive)文件夹 , rm -f (force)强制删除没有提示, rm -i (interactive)有提示 rm * -rf 后果很严重
    • 复制 cp 1.txt xxx.txt 文件夹 -r
    • 移动/重命名(同级目录) mv
    • find ./ -name 'xxx.txt' , find /bin -size +100k -size -200k (大于100,小于200)
    • grep '^name' xxx.txt 以name开头的, grep 'name$' xxx.txt (以name为结尾的), -n 显示行号,
      -i 忽略大小写 -v:取反
  • 相关阅读:
    必须转载 PHP & memcached 太精彩了,看一遍就能入门
    SYSID 来指定当前system
    How to increase the JES2 spool size
    JOBPARM SYSAFF的用处
    使用多Volume来创建一个dataset
    如何解决db2nodes.cfg line number “1”, Reason code “10”
    epdf macro to remove comments
    如何停止重复的job
    mysql数值类型
    (九)solr实现autocomplete功能
  • 原文地址:https://www.cnblogs.com/bruspawn/p/10336987.html
Copyright © 2011-2022 走看看