转载自

​ 这两天一直在对CentOS 7.2进行初体验,各种学习命令肿么用,不过其实大多和DOS是一样的,只是命令的表达上可能有点儿不一样,毕竟这些都不是一家出来的嘛~

​ 废话不多说,直接上命令和解析!

常用命令

文件与目录操作

命令 解析
cd /home 进入 ‘/home’ 目录
cd ~ 进入回到用户主目录root
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd - 返回上次所在目录
cp file1 file2 将file1复制为file2
cp -a dir1 dir2 复制一个目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录(.代表当前目录)
ls 查看目录中的文件
ls -a 显示隐藏文件
ls -l 显示详细信息
ls -lrt 按时间显示文件(l表示详细列表,r表示反向排序,t表示按时间排序)
pwd 显示工作路径
mkdir dir1 创建 ‘dir1’ 目录
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树
mv dir1 dir2 移动/重命名一个目录
rm -f file1 删除 ‘file1’
rm -rf dir1 删除 ‘dir1’ 目录及其子目录内容

查看文件内容

命令 解析
cat file1 从第一个字节开始正向查看文件的内容
head -2 file1 查看一个文件的前两行
more file1 查看一个长文件的内容
tac file1 从最后一行开始反向查看一个文件的内容
tail -3 file1 查看一个文件的最后三行
vi file 打开并浏览文件

文本内容处理

命令 解析
grep str /tmp/test 在文件 ‘/tmp/test’ 中查找 “str”
grep ^str /tmp/test 在文件 ‘/tmp/test’ 中查找以 “str” 开始的行
grep [0-9] /tmp/test 查找 ‘/tmp/test’ 文件中所有包含数字的行
grep str -r /tmp/* 在目录 ‘/tmp’ 及其子目录中查找 “str”
diff file1 file2 找出两个文件的不同处
sdiff file1 file2 以对比的方式显示两个文件的不同
vi file 操作解析:i进入编辑文本模式;Esc退出编辑文本模式;:w保存当前修改:q不保存退出vi;:wq保存当前修改并退出vi

查询操作

命令 解析
find / -name file1 从 ‘/’ 开始进入根文件系统查找文件和目录
find / -user user1 查找属于用户 ‘user1’ 的文件和目录
find /home/user1 -name *.bin 在目录 ‘/ home/user1’ 中查找以 ‘.bin’ 结尾的文件
find /usr/bin -type f -atime +100 查找在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 查找在10天内被创建或者修改过的文件
locate *.ps 寻找以 ‘.ps’ 结尾的文件,先运行 ‘updatedb’ 命令
find -name ‘*.[ch]’ | xargs grep -E ‘expr’ 在当前目录及其子目录所有.c和.h文件中查找 ‘expr’
find -type f -print0 | xargs -r0 grep -F ‘expr’ 在当前目录及其子目录的常规文件中查找 ‘expr’
find -maxdepth 1 -type f | xargs grep -F ‘expr’ 在当前目录中查找 ‘expr’

压缩、解压

命令 解析
bzip2 file1 压缩 file1
bunzip2 file1.bz2 解压 file1.bz2
gzip file1 压缩 file1
gzip -9 file1 最大程度压缩 file1
gunzip file1.gz 解压 file1.gz
tar -cvf archive.tar file1 把file1打包成 archive.tar(-c: 建立压缩档案;-v: 显示所有过程;-f: 使用档案名字,是必须的,是最后一个参数)
tar -cvf archive.tar file1 dir1 把 file1,dir1 打包成 archive.tar
tar -tf archive.tar 显示一个包中的内容
tar -xvf archive.tar 释放一个包
tar -xvf archive.tar -C /tmp 把压缩包释放到 /tmp目录下
zip file1.zip file1 创建一个zip格式的压缩包
zip -r file1.zip file1 dir1 把文件和目录压缩成一个zip格式的压缩包
unzip file1.zip 解压一个zip格式的压缩包到当前目录
unzip test.zip -d /tmp/ 解压一个zip格式的压缩包到 /tmp 目录

yum安装器

命令 解析
yum -y install [package] 下载并安装一个rpm包
yum localinstall [package.rpm] 安装一个rpm包,使用你自己的软件仓库解决所有依赖关系
yum -y update 更新当前系统中安装的所有rpm包
yum update [package] 更新一个rpm包
yum remove [package] 删除一个rpm包
yum list 列出当前系统中安装的所有包
yum search [package] 在rpm仓库中搜寻软件包
yum clean [package] 清除缓存目录(/var/cache/yum)下的软件包
yum clean headers 删除所有头文件
yum clean all 删除所有缓存的包和头文件
rpm -qa |grep mysql 查询安装包
yum -y remove [package] 删除安装包

网络相关

命令 解析
ifconfig eth0 显示一个以太网卡的配置
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 配置网卡的IP地址
ifdown eth0 禁用 ‘eth0’ 网络设备
ifup eth0 启用 ‘eth0’ 网络设备
iwconfig eth1 显示一个无线网卡的配置
iwlist scan 显示无线网络
ip addr show 显示网卡的IP地址

系统相关

命令 解析
su - 切换到root权限(与su有区别)
shutdown -h now 关机
shutdown -r now 重启
top 罗列使用CPU资源最多的linux任务 (输入q退出)
pstree 以树状图显示程序
man ping 查看参考手册(例如ping 命令)
passwd 修改密码
df -h 显示磁盘的使用情况
cal -3 显示前一个月,当前月以及下一个月的月历
cal 10 1988 显示指定月,年的月历
date –date ‘1970-01-01 UTC 1427888888 seconds’ 把一相对于1970-01-01 00:00的秒数转换成时间

XSheel 5相关操作

窗体快捷键

命令 解析
Ctrl + u 删除光标之前到行首的字符
Ctrl + k 删除光标之前到行尾的字符
Ctrl + c 取消当前行输入的命令,相当于Ctrl + Break
Ctrl + a 光标移动到行首(ahead of line),相当于通常的Home键
Ctrl + e 光标移动到行尾(end of line)
Ctrl + f 光标向前(forward)移动一个字符位置
Ctrl + b 光标往回(backward)移动一个字符位置
Ctrl + l 清屏,相当于执行clear命令
Ctrl + r 显示:号提示,根据用户输入查找相关历史命令(reverse-i-search)
Ctrl + w 删除从光标位置前到当前所处单词(word)的开头
Ctrl + t 交换光标位置前的两个字符
Ctrl + y 粘贴最后一次被删除的单词
Ctrl + Alt + d 显示桌面
Alt + b 光标往回(backward)移动到前一个单词
Alt + d 删除从光标位置到当前所处单词的末尾
Alt + F2 运行
Alt + F4 关闭当前窗口
Alt + F9 最小化当前窗口
Alt + F10 最大化当前窗口
Alt + Tab 切换窗口
Alt + 左键 移动窗口(或在最下面的任务栏滚动鼠标滑轮)

操作小技巧

​ 鼠标中间键:粘贴突出显示的文本。(使用鼠标左键来选择文本。把光标指向想粘贴文本的地方。点击鼠标中间键来粘贴。)

​ Tab:命令行自动补全。使用 shell 提示时可使用这一方式。键入命令或文件名的前几个字符,然后按 [Tab] 键,它会自动补全命令或显示匹配键入字符的所有命令。

​ 在滚动条的空白处点击鼠标中键:屏幕即滚动到那个地方。

​ 在桌面或文件管理器中直接按 / 就可以输入位置,打开文件管理器。

​ 在 vi 或 Firefox 中直接按 / 即可进入快速搜索状态。

​ 网站链接和图片可直接拖放到桌面或者目录,可以马上下载。

​ 直接将文件管理器中的文件拖到终端中就可以在终端中得到完整的路径名。

ngrok安装卸载脚本

摘自:【git链接】

#!/bin/bash
# -*- coding: UTF-8 -*-
#############################################
#作者网名:Sunny                             #
#作者博客:www.sunnyos.com                    #
#作者QQ:327388905                           #
#作者QQ群:57914191                           #
#作者微博:http://weibo.com/2442303192        #
#ngrok一键安装脚本,适用于Centos版本服务器       #
#默认安装路径                                 #
#git:/usr/local/git                        #
#go:/usr/local/go                          #
#ngrok:/usr/local/ngrok                    #
#使用说明: chmod +x ngrok.sh                #
#sh ./ngrok.sh                             #
#进行选择,安装                               #
#                                           #
#客户端编译好存放的路径: /usr/local/ngrok/bin/ #
#需要根据客户端的操作系统环境编译,脚本也已经写好    #
#############################################
# 获取当前脚本执行路径
SELFPATH=$(cd "$(dirname "$0")"; pwd)
GOOS=`go env | grep GOOS | awk -F\" '{print $2}'`
GOARCH=`go env | grep GOARCH | awk -F\" '{print $2}'`
echo '请输入一个域名'
read DOMAIN
install_yilai(){
    yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++ unzip
}

# 安装git
install_git(){
    unstall_git
    if [ ! -f $SELFPATH/git-2.6.0.tar.gz ];then
        wget https://www.kernel.org/pub/software/scm/git/git-2.6.0.tar.gz
    fi
    tar zxvf git-2.6.0.tar.gz
    cd git-2.6.0
    ./configure --prefix=/usr/local/git
    make
    make install
    ln -s /usr/local/git/bin/* /usr/bin/
    rm -rf $SELFPATH/git-2.6.0
}

# 卸载git
unstall_git(){
    rm -rf /usr/local/git
    rm -rf /usr/local/git/bin/git
    rm -rf /usr/local/git/bin/git-cvsserver
    rm -rf /usr/local/git/bin/gitk
    rm -rf /usr/local/git/bin/git-receive-pack
    rm -rf /usr/local/git/bin/git-shell
    rm -rf /usr/local/git/bin/git-upload-archive
    rm -rf /usr/local/git/bin/git-upload-pack
}


# 安装go
install_go(){
    cd $SELFPATH
    uninstall_go
    # 动态链接库,用于下面的判断条件生效
    ldconfig
    # 判断操作系统位数下载不同的安装包
    if [ $(getconf WORD_BIT) = '32' ] && [ $(getconf LONG_BIT) = '64' ];then
        # 判断文件是否已经存在
        if [ ! -f $SELFPATH/go1.7.6.linux-amd64.tar.gz ];then
            wget https://www.golangtc.com/static/go/1.7.6/go1.7.6.linux-amd64.tar.gz --no-check-certificate
        fi
        tar zxvf go1.7.6.linux-amd64.tar.gz
    else
        if [ ! -f $SELFPATH/go1.7.6.linux-386.tar.gz ];then
            wget https://www.golangtc.com/static/go/1.7.6/go1.7.6.linux-386.tar.gz --no-check-certificate
        fi
        tar zxvf go1.7.6.linux-386.tar.gz
    fi
    mv go /usr/local/
    ln -s /usr/local/go/bin/* /usr/bin/
}

# 卸载go

uninstall_go(){
    rm -rf /usr/local/go
    rm -rf /usr/bin/go
    rm -rf /usr/bin/godoc
    rm -rf /usr/bin/gofmt
}

# 安装ngrok
install_ngrok(){
    uninstall_ngrok
    cd /usr/local
    if [ ! -f /usr/local/ngrok.zip ];then
        cd /usr/local/
        wget http://www.sunnyos.com/ngrok.zip
    fi
    unzip ngrok.zip
    export GOPATH=/usr/local/ngrok/
    export NGROK_DOMAIN=$DOMAIN
    cd ngrok
    openssl genrsa -out rootCA.key 2048
    openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
    openssl genrsa -out server.key 2048
    openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
    openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000
    cp rootCA.pem assets/client/tls/ngrokroot.crt
    cp server.crt assets/server/tls/snakeoil.crt
    cp server.key assets/server/tls/snakeoil.key
    # 替换下载源地址
    sed -i 's#code.google.com/p/log4go#github.com/keepeye/log4go#' /usr/local/ngrok/src/ngrok/log/logger.go
    cd /usr/local/go/src
    GOOS=$GOOS GOARCH=$GOARCH ./make.bash
    cd /usr/local/ngrok
    GOOS=$GOOS GOARCH=$GOARCH make release-server
    /usr/local/ngrok/bin/ngrokd -domain=$NGROK_DOMAIN -httpAddr=":80"
}

# 卸载ngrok
uninstall_ngrok(){
    rm -rf /usr/local/ngrok
}

# 编译客户端
compile_client(){
    cd /usr/local/go/src
    GOOS=$1 GOARCH=$2 ./make.bash
    cd /usr/local/ngrok/
    GOOS=$1 GOARCH=$2 make release-client
}

# 生成客户端
client(){
    echo "1、Linux 32位"
    echo "2、Linux 64位"
    echo "3、Windows 32位"
    echo "4、Windows 64位"
    echo "5、Mac OS 32位"
    echo "6、Mac OS 64位"
    echo "7、Linux ARM"

    read num
    case "$num" in
        [1] )
            compile_client linux 386
        ;;
        [2] )
            compile_client linux amd64
        ;;
        [3] )
            compile_client windows 386
        ;;
        [4] ) 
            compile_client windows amd64
        ;;
        [5] ) 
            compile_client darwin 386
        ;;
        [6] ) 
            compile_client darwin amd64
        ;;
        [7] ) 
            compile_client linux arm
        ;;
        *) echo "选择错误,退出";;
    esac

}


echo "请输入下面数字进行选择"
echo "#############################################"
echo "#作者网名:Sunny"
echo "#作者博客:www.sunnyos.com"
echo "#作者QQ:327388905"
echo "#作者QQ群:57914191"
echo "#作者微博:http://weibo.com/2442303192"
echo "#############################################"
echo "------------------------"
echo "1、全新安装"
echo "2、安装依赖"
echo "3、安装git"
echo "4、安装go环境"
echo "5、安装ngrok"
echo "6、生成客户端"
echo "7、卸载"
echo "8、启动服务"
echo "9、查看配置文件"
echo "------------------------"
read num
case "$num" in
    [1] )
        install_yilai
        install_git
        install_go
        install_ngrok
    ;;
    [2] )
        install_yilai
    ;;
    [3] )
        install_git
    ;;
    [4] )
        install_go
    ;;
    [5] )
        install_ngrok
    ;;
    [6] )
        client
    ;;
    [7] )
        unstall_git
        uninstall_go
        uninstall_ngrok
    ;;
    [8] )
        echo "输入启动域名"
        read domain
        echo "启动端口"
        read port
        /usr/local/ngrok/bin/ngrokd -domain=$domain -httpAddr=":$port"
    ;;
    [9] )
        echo "输入启动域名"
        read domain
        echo server_addr: '"'$domain:4443'"'
        echo "trust_host_root_certs: false"

    ;;
    *) echo "";;
esac