主要针对 Centos
一、各种查看
1、查看目录
pwd 查看当前目录
    ls               显示当前目录下的文件
         另: -l(ls -l 等价于 ll) 列出文件的详细信息
                -a 列出所有文件,包括隐藏的
                -Z 查看具体权限说明
</p>
2、查看文件
    不常用:cat 和 tac 分别是正向和逆向查看文件全内容
    常用:more 和 less(分页显示文件内容),head 和 tail(显示文件的头或尾内容)
        ① less 可以使用 pageup 和 pagedown 按键来翻页,并且可以使用 /关键字 来搜索内容(n键下一个,q键退出)
        ② head 和 tail 语法为 head [-n number] 文件名 (number是指定显示的行数)
        动态查看日志刷新时,使用 tail -f 文件名 来查看文件内容
        ③ tailf 几乎等价于 tail -f ,但区别就是当日志文件名更改之后,tailf 仍然可以进行跟踪
        查看指定末尾100行:tail -n 100 文件名
        ④ stat 查看文件的详细信息
查看指定文本的 行数、字数、字符数,用:wc
3、查看进程
    最常用:ps -ef | grep java   或者   ps aux | grep java
    其中:f 表示树状结构显示,a 表示所有用户,u 表示以用户为主的格式来显示
另:查看所有进程,用 ps -A 或者 ps -e
          查看指定用户jet的进程,用 ps -u jet
查看非root运行的进程,用 ps -U root -u root -N
          查找进行,用 pgrep java
查找指定用户jet的进程,用 pgrep -u jet java
          top 命令查看系统的动态实时视图
    杀进程用: kill -9 xxxx (xxxx代表pid)
4、查看安装 nginx 所生成的文件
rpm -ql nginx
5、查看主机等基础信息
    who           显示在线登陆用户
    w                查看当前在线用户的操作命令
    whoami     显示当前操作用户
    hostname  显示主机名
    uname       显示系统信息
ifconfig 显示网络情况(ip 等)
df -lh 查看磁盘
二、各种修改
1、文件夹
    创建:mkdir
移动(重命名):mv
2、文件
    创建空文件:touch
    添加内容到指定文件:echo 内容 > 文件名   或者    echo 内容 >> 文件名 (前者是覆盖,后者是追加)
修改内容:最基础的是 vi,vi 基础按键:
         ① 光标:k、j、h、l  对应上、下、左、右
nG 跳转到指定的 n 行
                    Ctrl + G 光标所在的位置的行数和列数报告
w 、 b 使光标向前或向后跳过一个单词
        ② 编辑:i、a、r  在光标的前、后、以及所在处插入字符
                      cw、dw 改变/删除光标所在处的单词
                      x、d$、dd  删除一个字符、删除光标所在处到行尾、删除整行
                      u  回复前一步的操作
        ③ 查找:/string、?string  从光标所在处向后或向前查找相应的字符串
        ④ 复制:yy、p   拷贝一行到剪贴板、取出剪贴板中的内容
        ⑤ 同时编辑两个文件:vi file1 file2
                两个文件之间切换:    :n
        ⑥ 保存:ZZ、:x  保存并退出
⑦ 退出::q、:q! 退出、不保存直接退出
3、打包压缩
    常用语法: tar 命令集 文件与目录
    命令集:
            -c 归档文件(压缩,create)
            -x 解压缩文件(c 和 x 只能存一)
            -z gzip 压缩文件
            -J bzip2 压缩文件
            -v 显示压缩或解压缩的过长
            -f 使用档名(f 之后不能加参数,如-zcvfp 就是错误的)
            -t 查看压缩包里面的文件
经典案例:
      压缩:
① 将abc 只打包不压缩 tar -cvf /home/abc.tar /home/abc
② 将abc 打包并使用gzip压缩 tar -zcvf /home/abc.tar.gz /home/abc
③ 将abc 打包并使用bzip2压缩 tar -jcvf /home/abc.tar.bz2 /home/abc</span>
      解压缩:把上述命令中的 c 替换成 x 就行
</span>
      查看压缩包内部:注意要根据压缩形式,即如果是gzip 压缩的,就要用 tar -ztvf /home/abc.tar.gz
</span>
华彩:如果只想解压出abc 文件内部的一个demo 文件夹,此时要使用 tar -zcvf /home/abc.tar.gz abc/demo</strong> /home/abc ,即在tar 包后面指定内部文件名</span></span></span>
三、各种删除
1、文件和文件夹
    删除空目录:rmdir
    删除:rm
        可选参数: -r 递归删除
                          -f 强制删除
四、各种运行
1、持续运行 jar 包,场景就是 spring-boot 项目打成了 jar 包,放 Linux 直接运行
    nohup java -jar name & (nohup 代表不挂断地运行,场景就是关掉SSH客户端之后程序继续运行,& 代表让程序自动运行,那么自然就是 jar 的名字啦,如:demo.jar)
2、关机、重启
关机:halt
重启:reboot
关机重启:shutdown -r
关机不重启:shutdown -h
立即关机: shutdown now
3、上传下载
    有很多方式,介绍一下 rz 、sz 配合 SSH 来实现上传和下载 
    上传 rz,
    下载 sz,
前提,需要安装:yum -y install lrzsz
五、基础操作
1、防火墙操作
① 查看已添加的iptables规则: iptables -L -n (service iptables status)
将所有iptables以序号标记显示: iptables -L -n —line-numbers
② 开端口:iptables -A INPUT -p tcp —dport 80 -j ACCEPT
        快速:
/sbin/iptables -I INPUT -p tcp —dport 80 -j ACCEPT
/etc/rc.d/init.d/iptables save</span>
③ 配置文件:vim /etc/sysconfig/iptables
④ 基本操作
# service iptables stop
# service iptables start
# service iptables restart
2、yum 源更换镜像
    ① 备份:# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    ② 下载,(centos6或者7,自行更替)
163:# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo
阿里:# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
    ③ 更新yum配置,生成缓存
# yum clean all
        # yum makecache
3、调整时间
① 联网同步
    在此只介绍如何同步系统时间和 NTP 时间(网络时间协议)。
ntpdate pool.ntp.org
    如果没有安装话需要先安装:
centos:yum install ntp
    ubuntu:apt-get update
                   apt-get install ntp
② 手动修改
命令:date [指令] [参数]
#设定日期20180330 时刻归零00:00:00
date —s “20180330”
#设定时刻20:32:59 日期保持不变
date —s “20:32:59”
#以下六种均可同时设定日期和时刻
date —s “20180330 20:32:59”
date —s “20:32:59 20180330”
date —s “2018/03/30 20:32:59”
date —s “20:32:59 2018/03/30”
date —s “20:32:59 03/30/2018”
date —s “03/30/2018 20:32:59”
    
    ③ 时区调整
        查看当前时区:date -R
手动设置时区:tzselect
            然后跟着一步一步设置,然后再替换系统时区文件或者创建软连接
demo:cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
六、环境配置
1、jdk
    ① 删除默认安装的 openjdk
查看包含 java 的程序:rpm -qa | grep java
rpm -qa | grep gcj
rpm -qa | grep jdk</span>
卸载对应程序:rpm -e —nodeps xxx</span></span>
    ②安装 jdk(本人喜欢 tar 包安装):
</span></span>
        解压:tar -zxvf xxx
    ③配置环境变量:
        修改配置文件:vim /etc/profile
在里面添加环境:
# jdk
export JAVA_HOME=/usr/java/jdk1.8.0_161
export PATH=$JAVA_HOME/bin:$PATH
使配置文件生效:source /etc/profile
七、权限相关
① SELinux
策略有三种:① enforcing 强制模式,② permissive 允许模式,③ disabled 禁用模式
配置文件:/etc/sysconfig/selinux
查看和临时修改:getenforce 和 setenforce 0
            说明,0:permissive,1:enforcing
    ② 调整文件所属用户和组
chown username:usergroup /path/to/file
    ③ 权限查看
ll 命令即可查看,
        权限有, r:读,w:写,x:操作
        从左至右依次为:所属人权限,所属组权限,其余人所有人权限
例:drwxr-xr-x
    ④ 修改权限
u:user,g:group,o:otner,a:all
        +:增加,-:取消
例,给予所有人w权限:chmod a+w /path/to/file
        r:4,w:2,x:1
例,给予文件所有人所有权限:chmod 777 /path/to/file
八、其它命令
① scp 命令文件上传下载
复制本地文件到远程服务器:scp local_file remote_username@remote_ip:remote_folder;
例如:scp /home/jet/file.md jet@192.168.1.1:/home/jet/test.md
复制远程文件到本地:scp remote_username@remote_ip:remote_folder local_file
例如:scp jet@192.168.1.1:/home/jet/test.md /home/jet/file.md
    ② 查看公网ip
curl ipinfo.io
    ③ 查域名指向的服务器ip
nslookup jetchen.cn
    ④ 查看有没有安装某服务
which vsftpd