Others

  • 获取公网IP

    1. curl ifconfig.me
  • 磁盘空间

    1. df -hl 查看磁盘剩余空间
    2. df -h 查看每个根路径的分区大小
    3. du -sh [目录名] 返回该目录的大小
    4. du -sm [文件夹] 返回该文件夹总M数
    5. du -h [目录名] 查看指定文件夹下的所有文件大小(包含子文件夹)
  • make

    1. 通过外部编译器的,比如linux中的gcc集来编译源码
    2. 获取Makefile文件的命令触发编译
  • curl

    1. -X GET/POST
    2. -I 获取head
    3. curl有cache
  • 查看tcp/udp端口

    1. netstat -tunlp
    2. sudo su - && lsof -i:8080
  • 查看系统启动时间

    1. who -b
    2. date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"
  • 查看进程的启动时间

    1. ps -p PID -o lstart
  • 查看cpu

    1. sar -u 1 5 每1秒采集一次,共5次
    2. top
  • 查看进程占用内存

    1. cat /proc/27930/status
    2. ps -e -o 'pid,args,rsz,uid,user,cmd' | sort -nrk3 | less
  • 查看进程个数

    1. ps -ef | wc -l
  • 查看进程个数限制

    1. ulimit -a
  • 查看ip

    1. hostname -i
    2. ifconfig
  • 查看环境变量

    1. export
  • 查看目录大小 :

    1. du -sh * | grep G | sort -nr
    2. du -s * | sort -nr
    3. du -h . 列出子目录
    4. du -sh * 不列出子目录
    5. df -h . 列出总量和使用情况
  • 压缩/解压缩

    1. tar

      1. 解压 tar -xzvf xx.tar.gz
      2. -c : 建立压缩档案
      3. -x:解压
      4. -f : 文件名字,切记,这个参数是最后一个参数,后面只能文件名。
      5. -z:有gzip属性的 gz
      6. -v:显示所有过程
    2. unzip x.zip/x.jar . : 解压缩
  • 查看系统内核

    1. uname -a
  • 获取RedHat版本

    1. cat /etc/redhat-release
  • 1>/dev/null 2>&1的含义

  1. 代表重定向到哪里,例如:echo "123" > /home/123.txt

  2. 1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
  3. 2 表示stderr标准错误
  4. & 表示等同于的意思,2>&1,表示2的输出重定向等同于1
  5. /dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功)
  6. 这句话等同于1>/dev/null 2>/dev/null 含义是将标准输入和输出丢弃
  • 遍历目录下文件

      for file in *
    do
    if [ -d "$file" ]
    then
    echo "a forder"
    else if [ -f "$file" ]
    then
    echo "a file"
    fi
    done
  • 获取当前shell的路径: basepath=$(cd dirname $0; pwd)

  • 字符串替换: sed -i "s/aaa/bbb/g" test.txt

  • find .|xargs grep -ri "IBM" : 查找字符在哪个文件

  • alias aName='xxx'

  • grep -A/-B 10 'XXX' XX.log: 带上grep语句后/前 10条

  • less -N: 显示行号

  • history 10: 察看前10条历史命令

  • chmod -R 777 folder: 赋权限

  • free -m -o | grep 'Mem' | awk '{print $4}': 查看服务器空间

  • crontab -e: 进入CRON JOB VI模式

  • ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep oracle | sort -nrk5: 查看进程

  • ps -ef | awk '{print $2}' | xargs kill -9: kill进程

  • :set ff=unix: vi 模式下将文件格式转换成unix,可以解决windows下shell脚本和Liunx格式不一样问题

  • awk

    1. echo abcde | awk '{print substr($0, 0, 2)}'
    2. ps -e -o 'cmd' | awk '{print substr($0,index($0,"'$APP_HOME'"),20)}'
    3. CURRENT_DATE=date ps -e -o 'rsz,cmd' | awk '{print $1, "'"$CURRENT_DATE"'"}'

      awk引用外部变量

  • nohup sh process_monitor.sh > process_monitor.out & : 后台持续启动脚本

  • find /xx/xx/ -name 'xx*.log': 查找文件

  • find /xx/xx/ -name 'xx*.log' | grep -v 'xxx' | xargs ls -l: find 和 ls 和用

  • wc *.out: 显示二进制文件的行数

Centos系统

CentOS 7系统安装

  • 官网下载DVD版本的iso镜像文件
  • 官网下载UltraIOS,将iso文件写入U盘,制作成为U盘启动盘
  • 通过BIOS设置从U盘载入,重启
  • 教程: https://www.augsky/599.html

系统版本

  • Centos操作系统版本

    1. cat /etc/redhat-release
  • Linux内核版本
    1. uname -a

使用鼠标

  • yum install gpm
  • service gpm start

基本操作

  • 关机 : poweroff
  • 重启 : reboot
  • 待机/挂起 : systemctl suspend
  • 休眠 : systemctl hibernate

笔记本关闭盖子不待机,只锁屏

  • vi /etc/systemd/logind.conf
  • 配置详解
    1. HandlePowerKey : 按下电源键后会触发的行为
    2. HandleSuspendKey : 按下挂起键后会触发的行为
    3. HandleHibernateKey : 按下休眠键后会触发的行为
    4. HandleLidSwitch : 关闭笔记本盖子后会触发的行为
  • 行为
    1. ignore、poweroff、reboot、suspend、hibernate、hybrid-sleep、lock 以及 halt, kexec
    2. HandleLidSwitch=lock : 关闭盖子锁屏

用户与权限

User

  • whoami :查看当前登录用户名
  • su user:切换用户,exit回到上个用户
  • cat /etc/passwd |cut -f 1 -d : : 查看用户
  • useradd name :添加用户
    1. -g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。
    2. -N:取消建立以用户名称为名的群组。默然group是 users
    3. -Umr: 创建同名组,home目录,系统用户
  • userdel user: 删除用户
    1. 删除用户会删除默然同名组
    2. 删除用户后用户文件属于user id,比如1000,当创建下个用户时user id会被占用,用户文件会属于新建的用户
    3. -r : 同时删除home和mail
  • passwd user passwd :设置密码
  • usermod : 修改用户
    1. -G :将用户添加进组
    2. -g : 将用户修改为属于组

Group

  • groups

    1. 查看当前登录用户组
    2. groups jude查看jude用户所在的组
  • groupadd/groupdel/groupmod

权限

  • which yum

    1. 查看yum命令的路径,然后可以看到所有者和权限

sudo : /etc/sudoers

  • 命令

    1. sudo -l
    2. visudo
    3. man sudo
  • 别名类型(Alias_Type):别名类型包括如下四种

    1. Host_Alias 定义主机别名;
    2. User_Alias 用户别名,别名成员可以是用户,用户组(前面要加%号)
    3. Runas_Alias 用来定义runas别名,这个别名指定的是“目的用户”,即sudo 允许切换至的用户;
    4. Cmnd_Alias 定义命令别名;
  • 别名规则定义格式如下:

    1. Alias_Type NAME = item1, item2
    2. Alias_Type NAME = ALL
  • 授权规则

    1. 授权用户 主机=命令动作
    2. jude ALL=(root)/bin/chmod,/bin/chmod
      1. 可以在任何可能出现的主机名的主机中,可以切换到root下执行 /bin/chown ,可以切换到任何用户招执行/bin/chmod 命令
    3. jude ALL= NOPASSWD: /bin/chown,/bin/chmod
      1. 不需要输入 用户的密码执行chown,但是执行chmod 要输入自己的密码
    4. !表示排除
    5. 授权规则3项都可以用别名代替

软件安装

wget

  • 后台自动下载网络资源
  • 安装 : yum install wget
  • wget基本命令
    1. wget http://xxx.rpm
    2. wget -i xxx.txt : 批量下载
    3. wget -r -np -nd http://xxx/download
    4. --accept rmp : 只下载.rpm文件
    5. -c : 断点续传
    6. -P : 指定目录

apt

  • apt-get update : 更新apt
  • apt-get install vim : 可以在docker容器中安装vi
  • sudo apt install yum : ubuntu安装yum

YUM

  • yum基本概念

    1. 基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装
    2. 可以自动处理依赖性关系,并且一次安装所有依赖的软体包
    3. yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令
  • yum源
    1. 默认源配置目录 : /etc/yum.repos.d/
    2. 配置里面所有enabled=1的(默认)源
    3. 命令
      1. yum repolist 查看当前可用源
      2. yum grouplist:显示包组
      3. yum list {available|installed|updates} :显示包列表
      4. yum list vsftpd* 显示和vsftpd匹配的列表
    4. 除了支持远程仓库源,还支持本地挂载目录和远程挂载目录
    5. yum-config-manager
      1. 安装:yum install -y yum-utils
      2. yum-config-manager --add-repo xxx.repo
      3. yum-config-manager --enable docker-ce-edge : 相当于手动将enabled=0
      4. yum-config-manager --disable docker-ce-edge
  • EPEL源
    1. 更丰富的,高质量的,更新的yum源
    2. yum search epel安装
    3. rpm下载安装
      1. 阿里巴巴开源镜像站
      2. 其他yum源设置disabled=0
  • Docker源
    1. yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • yum命令选项
    1. --nogpgcheck:禁止进行gpgcheck
    2. -y: 自动回答为“yes”
    3. -q:静默模式
    4. --disablerepo=repoidglob:临时禁用此处指定的repo
    5. --enablerepo=repoidglob:临时启用此处指定的repo
    6. --noplugins:禁用所有插件
  • yum安装卸载
    1. yum install/groupinstall package

      1. yum install package-version 安装指定版本
    2. yum restall package:重做
    3. yum update package:更新包
    4. yum check-update
    5. yum remove package1 [package2]
  • yum查询
    1. yum search xxx :搜索带有某个关键字的安装包
    2. yum info 查看search到的程序包信息
    3. yum list package --showduplicates : 查看所有版本
    4. yum list installed : 查看所有已安装的package

RPM

  • rpm命令

    1. 安装 rpm -ivh --prefix=$path XX.rpm
    2. 查看 rpm -qa XX
    3. 查看安装的文件 rpm -ql XX
    4. 卸载 rpm -e --nodeps 察看得到的包名字

gcc编译源码

命令安装路径

  • which less

网络设置

CentOS连接WIFI

  • 检查无线网卡/网口

    1. dmesg | grep firmware
    2. iw dev : Interface后的是网口名,这里是wlp3s0
  • 激活无线网口
    1. ip link set wlp3s0 up
    2. ip a: BROADCAST,MULTICAST,UP,LOWER_UP中的UP代表激活
  • 安装NetworkManager
    1. nmcli d status : 如果wlp3s0的status是unmanaged,说明没有NetworkManager
    2. yum install NetworkManager-wifi
    3. systemctl restart NetworkManager
  • wifi操作
    1. nmcli r wifi on/off : 打开/关闭wifi功能
    2. nmcli d wifi : 查找wifi
    3. nmcli c: 查看已经连接的wifi
    4. nmcli c up/down/delete Jude : 连接/关闭/删除已设置过的wifi
    5. nmcli --ask d wifi connect Jude : 连接wifi Jude,输入密码
      1. error connection activation failed (7) secrets were required but not provided : 重启电脑

Linux连接WIFI

  • 检查无线网络连接情况

    1. iw wlp3s0 link
  • 扫描可连接的wifi
    1. iw wlp3s0 scan | grep SSID
  • 连接指定的SSID
    1. wpa_supplicant -B -i wlp3s0 -c <(wpa_passphrase "[SSID]" "[PIN]")
  • 用dhcp 获得 IP 分配
    1. dhclient [name]
  • 测试是否成功地从路由器获取了ip
    1. ip a show [name]

与windows组成局域网

  • 需要linux与windows拥有相同的子网掩码,相同的网关,同段位ip

    1. 可以通过连接到相同的猫
    2. 连接到相同的路由器
    3. 同处于一个wifi
  • windows在Internate选项的网络共享里,需要开启网络发现和文件共享,linux才可以ping通windows

putty连接SSH

  • 打开centos的SSH服务

    1. service sshd start
  • 下载putty连接局域网ip

alias for gradle and git

  • alias

      unalias -a
    
      alias build="disableCB && gradle ktlintformat clean build && enableCB"
    alias branch="git branch -vv && git cherry -v"
    alias push="~/jude/alias_job.sh push_branch push"
    alias fast_commit_push="~/jude/alias_job.sh fast_commit_push"
    alias merge_develop="git merge origin/develop"
    alias develop_branch="git checkout develop && git pull && branch"
    alias show_all_branch="~/jude/alias_job.sh show_all_branch" alias bbset_branch="~/jude/alias_job.sh set_current_branch"
    alias bbcreate_all_branch="~/jude/alias_job.sh create_all_branch"
    alias bbpush_branch="~/jude/alias_job.sh push_branch push_new" alias ccbuild="ccenable && gradle ktlintformat clean build"
    alias ccenable="gradle enableCompositeBuild"
    alias ccdisable="gradle disableCompositeBuild"
    alias bbnew_branch="git pull && git checkout origin/develop -b `cat ~/jude/current_branch` && git branch --unset-upstream && branch"
    alias bbdelete_branch="~/jude/alias_job.sh delete_current_branch"
    alias bbresert_hard="~/jude/alias_job.sh hard_reset" alias aaa="cat ~/.bash_profile"
    alias eee="vi ~/.bash_profile"
    alias rrr="source ~/.bash_profile"
    alias la="ls -tral"
    alias ll="ls -trl"
    alias killjava="ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs kill -9"
  • alias job

              #!/bin/bash
    
      set_current_branch() {
    echo $1 > ~/jude/current_branch
    cat ~/jude/current_branch
    } hard_reset() {
    read -r -p "Git Hard Reset your local change? [Y/n] : " input case $input in
    [Y])
    git reset --hard
    ;;
    *)
    echo "do nothing"
    exit 1
    ;;
    esac
    } delete_current_branch() {
    read -r -p "Delete current branch `cat ~/jude/current_branch`? [Y/n] : " input case $input in
    [Y])
    git checkout develop && git branch -d `cat ~/jude/current_branch` && git branch -vv
    ;;
    *)
    echo "do nothing"
    exit 1
    ;;
    esac
    } fast_commit_push() {
    git branch -vv && git status read -r -p "Commit and push branch `cat ~/jude/current_branch`? [Y/n] : " input case $input in
    [Y])
    branch=`cat ~/jude/current_branch`
    git commit -m $branch -a
    push_branch push
    ;;
    *)
    echo "do nothing"
    exit 1
    ;;
    esac
    } push_branch() {
    case $1 in
    "push_new")
    git push --set-upstream origin `cat ~/jude/current_branch` && git branch -vv && git cherry -v
    ;;
    "push")
    git pull && git push && git branch -vv && git cherry -v
    ;;
    *)
    echo "do nothing"
    exit 1
    ;;
    esac
    current=`pwd`
    branch=`cat ~/jude/current_branch`
    case $current in
    "/Users/jude.sheng/IdeaProjects/paymentacceptance-adaptor")
    open https://github.com/airwallex/paymentacceptance-adaptor/compare/develop...$branch?expand=1
    ;;
    "/Users/jude.sheng/IdeaProjects/paymentacceptance-executor")
    open https://github.com/airwallex/paymentacceptance-executor/compare/develop...$branch?expand=1
    ;;
    "/Users/jude.sheng/IdeaProjects/paymentacceptance-core")
    open https://github.com/airwallex/paymentacceptance-core/compare/develop...$branch?expand=1
    ;;
    "/Users/jude.sheng/IdeaProjects/paymentacceptance-gateway")
    open https://github.com/airwallex/paymentacceptance-gateway/compare/develop...$branch?expand=1
    ;;
    "/Users/jude.sheng/IdeaProjects/paymentacceptance-tokenservice")
    open https://github.com/airwallex/paymentacceptance-tokenservice/compare/develop...$branch?expand=1
    ;;
    "/Users/jude.sheng/IdeaProjects/paymentacceptance-common")
    open https://github.com/airwallex/paymentacceptance-common/compare/develop...$branch?expand=1
    ;;
    *)
    echo "do nothing"
    exit 1
    ;;
    esac
    } create_all_branch() {
    current=`pwd`
    cd /Users/jude.sheng/IdeaProjects
    cd paymentacceptance-adaptor
    pwd && git pull && git checkout origin/develop -b `cat ~/jude/current_branch` && git branch --unset-upstream
    cd ../paymentacceptance-common
    pwd && git pull && git checkout origin/develop -b `cat ~/jude/current_branch` && git branch --unset-upstream
    cd ../paymentacceptance-executor
    pwd && git pull && git checkout origin/develop -b `cat ~/jude/current_branch` && git branch --unset-upstream
    cd ../paymentacceptance-core
    pwd && git pull && git checkout origin/develop -b `cat ~/jude/current_branch` && git branch --unset-upstream
    cd ../paymentacceptance-gateway
    pwd && git pull && git checkout origin/develop -b `cat ~/jude/current_branch` && git branch --unset-upstream
    cd ../paymentacceptance-tokenservice
    pwd && git pull && git checkout origin/develop -b `cat ~/jude/current_branch` && git branch --unset-upstream cd /Users/jude.sheng/IdeaProjects
    cd paymentacceptance-adaptor
    git branch -vv
    cd ../paymentacceptance-common
    git branch -vv
    cd ../paymentacceptance-executor
    git branch -vv
    cd ../paymentacceptance-core
    git branch -vv
    cd ../paymentacceptance-gateway
    git branch -vv
    cd ../paymentacceptance-tokenservice
    git branch -vv cd $current
    } show_all_branch() {
    current=`pwd`
    cd /Users/jude.sheng/IdeaProjects
    cd paymentacceptance-adaptor
    echo "=============================" && pwd && git status && echo "----------------------" && cherry -v
    cd ../paymentacceptance-common
    echo "=============================" && pwd && git status && echo "----------------------" && cherry -v
    cd ../paymentacceptance-executor
    echo "=============================" && pwd && git status && echo "----------------------" && cherry -v
    cd ../paymentacceptance-core
    echo "=============================" && pwd && git status && echo "----------------------" && cherry -v
    cd ../paymentacceptance-gateway
    echo "=============================" && pwd && git status && echo "----------------------" && cherry -v
    cd ../paymentacceptance-tokenservice
    echo "=============================" && pwd && git status && echo "----------------------" && cherry -v
    cd $current
    } case $1 in
    "set_current_branch")
    set_current_branch $2
    ;;
    "hard_reset")
    hard_reset
    ;;
    "delete_current_branch")
    delete_current_branch
    ;;
    "create_all_branch")
    create_all_branch
    ;;
    "push_branch")
    push_branch $2
    ;;
    "fast_commit_push")
    fast_commit_push
    ;;
    "show_all_branch")
    show_all_branch
    ;;
    *)
    echo "do nothing"
    exit 1
    ;;
    esac

Linux命令速查手册的更多相关文章

  1. Linux命令速查手册,超详细Linux命令教程

    一.常用命令速查 ls cd pwd cat more less tail head cp scp mv mkdir rmdir touch rm ps kill top free clear tre ...

  2. Linux命令速查手册(第2版)学习

    第1章.需要了解的命令行相关事项 表1-1 如何在文件名字符中使用特殊字符 字符 建议 / 绝不使用.不能转义 \ 必须转义.避免使用 _ 绝不能作为文件或目录名的第一个字符 [] 必须转义.避免使用 ...

  3. cmd命令速查手册

    CMD命令速查手册ASSOC显示或修改文件扩展名关联AT 计划在计算机上运行的命令和程序ATTRIB 显示或更改文件属性BREAK 设置或清除扩展式 CTRL+C检查CACLS显示或修改文件的访问控制 ...

  4. Docker常用命令速查手册(华贵铂金版)

    原创声明:作者:Arnold.zhao  博客园地址:https://www.cnblogs.com/zh94 Docker常用命令速查手册 搜索仓库镜像 docker search nginx 获取 ...

  5. 基础 Linux 命令速查清单

    jaywcjlove/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册.详解.学习.搜集.https://git.io/linux  https://github. ...

  6. Linux 命令速查

    学生信,Linux是最最基本的技能,要尽量将自己的工作平台转移到Linux,编程写脚本,这样会极大的提升工作效率,找工作时也不会太怂.Linux所有的任务都是通过命令来完成的,具有高度的统一性.Lin ...

  7. Linux系统常用命令速查手册

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 系统信息 arch      #显示机器的处理器架构(1 ...

  8. Linux/Unix 系统分析命令速查手册

    1.Hardware CPU information: cat /proc/cpuinfo 物理core个数: 统计core 逻辑CPU个数:统计processor Memory informatio ...

  9. Ubuntu常用命令速查手册-珍藏版-完整版

    sudo apt-get install 软件名 安装软件命令 sudo nautilus 打开文件(有root权限) su root 切换到“root” ls 列出当前目录文件(不包括隐含文件) l ...

随机推荐

  1. axios 参数为payload的解决方法

    1. 添加头部headers headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, axios.post(url, {a ...

  2. Java中的标签

    @SuppressWarnings 简介:java.lang.SuppressWarnings是J2SE 5.0中标准的Annotation之一.可以标注在类.字段.方法.参数.构造方法,以及局部变量 ...

  3. learning rndis protocol

    reference:  https://docs.microsoft.com/en-us/windows-hardware/drivers/network/overview-of-remote-ndi ...

  4. learning scala write to file

    scala 写文件功能: scala> import java.io.PrintWriterimport java.io.PrintWriter scala> val outputFile ...

  5. nginx:负载均衡实战(一)

    1.负载均衡说明 2.准备 我自己在电脑布置了两台虚拟机,两台都有nginx和tomcat,两台虚拟机布置的ip分别是37以及54,我在tomcat的首页动了点手脚,方便自己看是来自哪个ip的 接着在 ...

  6. iOS 设置不同环境下的配置 Debug Release 生产 测试 等等

    其实这个问题大家都知道,但是一般都是清楚一些皮毛的东西,只能进行一些简单的应用.在这里详细说一下模式切换的使用. Xcode给我们自带了两种编译模式Release 和 Debug,通常情况下我们可以利 ...

  7. xshell无法在小键盘输入数字

    自从很久之前用小键盘输入数字后出现奇怪的字母并换行后就不用小键盘,今天脑抽又用小键盘写数字,并决定解决问题. 原因分析: 当xshell终端类型不是"VT220"或者"A ...

  8. 第一章 使用功能测试协助安装Django

    1.1 第一个简单的测试--断言 from selenium import webdriver browser = webdriver.Firefox() browser.get('http://lo ...

  9. Lookaside

    频繁申请和回收内存,会导致在内存上产生大量的内存碎片,从而导致最终无法申请内存.DDK提供了Lookaside结构来解决这个问题.可以将Lookaside结构想象成一个内存容器.在初始的时候,它先向W ...

  10. FPGA复位的可靠性(转)

    FPGA复位的可靠性(同步复位和异步复位)  reference:http://www.eetop.cn/blog/html/17/743817-24442.html 一.特点: 同步复位:顾名思义, ...