• linux相关命令


    1. 关机

      • shutdown -h now // 立即关机
      • shutdown -r now // 重启
      • halt // 关机
      • reboot // 重启
      • service sshd start // 开启ssh服务,方便CRT进行连接
    2. 进入桌面

      • startx // 进入桌面
    3. 用户管理

      • logout // 注销用户
      • sudo root // 或者su root(su - 用户名 切换用户)
      • useradd 用户名 // 添加用户(useradd xiaoming) ,不设置密码无法进行登录
      • passwd 用户名 // 为新用户设置密码
      • userdel 用户名 // 删除用户但保存用户主目录
      • userdel -r 用户名 // 删除用户以及用户主目录(home下的用户目录)
      • who am i // 当前用户是谁
      • hostname // 主机名
      • uname // 显示系统信息
      • ssh -l 用户名 -p 22 端口号 // 用户连接
      • su 用户名 // 切换用户(su是switch user),还是在root目录
      • su - 用户名 // 切换用户,并且进入用户名的宿主目录
    4. 用户组管理

      • groupadd 组名 // 创建组
      • id // 当前用户的组信息
      • useradd 用户名 -g 组名 // 创建用户并为用户分配组(创建用户时,没有指定用户组,会自动生成一个用户组,组名与用户名相同)
      • groupdel 组名 // 删除组,但是注意如果组下存在用户是不允许删除的(使用userdel删除用户)
      • groups // 查看当前登录的用户组名
    5. 权限管理:

      1. /etc/password : 存储用户信息
      2. /etc/shadow : 存储用户密码
      3. /etc/group : 用户组信息
      4. 权限描述机制(字符和数字)
        1. -开头 : 普通文件
        2. d开头 : 目录文件
        3. l开头 : 链接,相当于快捷方式
        4. 之后每三个为一个权限,前三个表示当前用户对该文件是否有读写执行的权限(也就是属主权限),中间三个表示属组权限,后三个表示其他用户权限
          1. r : 读 4
          2. w : 写 2
          3. x : 执行 1
            • : 表示无权限 0
      5. 如何分配权限
        1. chmod 700 普通文件 : 对普通文件赋权限 700 表示当前用户可读可写可执行,其它的都无权限
        2. chmod u=rwx,g=rwx,o=rwx 普通文件 : 对普通文件赋权限 700 表示当前用户可读可写可执行,其它的都无权限(也可以将=换为+,去掉权限使用-)
        3. chown -R 用户 : public dir : 变更目中的所有子目录及文件的所属用户和组
          1. 所属用户和所属组的的位置(drwx------. 2 wzlove wzlove)
            1. 最后两个分别表示用户和组
        4. chown 所有者:所有组 文件
    6. 系统相关:

      • ifconfig : 查询网络情况
      • ping : 测试网络连通
      • netstat : 显示网络状态信息
      • man : 不了解(man ls)
      • clear : 清屏
      • kill : 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。
      • date : 显示时间
        • date -s "2018-09-19 16:40:50" 设置时间
      • df 查看磁盘/硬盘信息
        • df -h 友好显示
      • free 查看内存状态
        • free -h
      • top 显示,管理执行中的程序(很重要)
      • clear 清屏
        • clear -l
      • ps 查看进程
        • ps -ef 查看所有进程
        • ps -ef | grep ssh 查看指定进程
      • kill 杀死进程
        • kill 端口号 : 杀死指定进程
        • kill -9 : 强制杀死
      • du : 显示文件大小
        • du -h
        • du -sh * 查看文件占用的空间
      • who 显示当前登陆的用户名
      • hostname 显示当前主机名
        • vi /etc/sysconfig/network 修改主机名
      • uname 显示系统信息
        • uname -a 显示本机详细信息
    7. 树形目录

      • -root 存放root用户的相关文件(*),宿主目录
      • -home 存放普通用户的相关文件(*),普通用户的宿主目录
      • -bin 存放常用命令的目录,如vi,su(*),二进制可执行文件
      • -sbin 要具有一定权限才可以使用命令
      • -mnt 默认挂载光驱和软驱的目录
      • -etc 存放配置相关文件(*)
      • -boot 存放引导系统启动的相关文件
      • -usr 安装一个软件的默认目录,相当于windows下的program files(*),共享的资源文件信息
    8. 目录相关的命令

      • cd // 改变目录

      • cd - // 上一个目录

      • cd ~ // 切换到当前用户的家目录

      • ls // 列出当前文件夹下的文件和目录

      • ls -a // 显示目录下所有文件,包括隐藏文件

      • ls -l // 显示长列表格式

      • ll // 等同于ls -l

      • ll -h // 友好显示文件大小

      • dir // 等同于ls

      • tree // 树形结构展示

      • pwd // 显示当前目录 :

      • mkdir 用来创建文件夹(mkdir test/{test1/{test11,test12},test2},层级目录的创建)

      • mkdir -p 文件夹1/文件夹2 创建多级文件夹

      • cd .. 返回上级目录

      • touch 文件名.后缀 用来创建文件

      • rmdir 删除文件夹(rm -r,也可以删除文件夹)

      • rm 删除文件,有询问的(不能删除文件夹)

      • rm -rf(尽量不用) 删除文件,没有询问的(不能删除文件夹)

      • touch // 建立空文件

      • vim // 编辑文件,也可以创建文件

      • echo "内容" 打印(相当于java的输出)

      • echo "内容" > 文件 将内容写到文件中(直接替换原来的内容)

      • echo "内容" >> 文件 将内容追加到文件中

      • : 覆盖重定向(内容 > 文件)

      • : 追加重定向(内容 >> 文件)

      • | : 管道(ps -ef | grep java),简单来说,将 | 之前的输出当作 | 之后的输入

        • ps -ef 输出系统的进程信息(tail -f file1.log | grep -ni -A5 -B5 'exception' --color)
        • ps -ef 输出系统的进程信息(ps -ef | grep -n 'Exception' --color)
      • && : 两条命令一起执行

      • ./文件 执行文件

      • cp // 复制命令 (cp -r dir1 dir2,递归复制命令)

      • mv // 移动文件和改文件名

      • rm // 删除文件和目录

      • rm -f // 不询问删除

      • rm -rf * // 删除所有内容,包括目录和文件,r表示递归(),f表示强制()

      • rm -rf /* //自杀(绝对不能使用)

      • ln // 建立符号链接,类似于建立某个文件的快捷方式

      • ln -s 源目标 // ln ‐s /etc/inittab inittab,inittab指向实际文件/etc/inittab inittab

      • cat + 文件名 // 查看文件内容,一次性查看

      • more + 文件名 // 显示文件内容带分页,空格下翻页,B上翻页,enter下一行,q退出

      • less + 文件名 // 显示文件内容带分页,ctrl + page up上翻

      • tail -10 + 文件 // 显示后10行数据 ctrl + c 结束查看

      • tail -f + catalina.out // 动态查看tomcat的日志文件信息(查看尾部实时刷新的内容)

      • head -10 // 显示前10条数据

      • grep // 在文件中查询内容(假设存在某个文件test.cpp中含有hello关键字,此时可以使用grep名命令来查找,grep n “hello” test.cpp,n表示在第n行出现)

      • grep 'Hello' file 查找file文件中含有'Hello'的行

      • 参数:(grep -ni -A5 -B5 "exception" file1.log --color)

        • -n : 行号
        • -i : 忽略大小写
        • A : 后几行
        • B : 前几行
        • --color : 高亮显示
    9. 网络相关

      1. ifconfig 显示网络设备
      2. ifconfig eth0 up : 启用网卡
      3. ifconfig eth0 down : 关闭网卡
      4. ping 命令(ctrl + c停止)
      5. netstat -ano 查看端口的占用情况
        1. netstat -ano | grep java/端口号 : 查看某些端口的占用情况
        2. netstat(查看网络的端口信息,下面的命令可以组合使用)
          1. -n : 以数字形式展示
          2. -a : 展示所有
          3. -l : 展示监听者的进程信息
          4. -t : tcp
          5. -u : udp
          6. -p : 进程
    10. find搜索文件及目录

      • find / -name man:意思是说从根目录开始搜索名称为man的文件或目录
      • find /home -amin -10:十分钟内存取的文件或目录
      • find /home -atime -10:十小时内存取的文件或目录
      • find /home -cmin -10:十分钟内更改过的文件或目录
      • find /home -ctime +10:十小时前更改过的文件或目录
      • find /home -size +10k:意思是说查找/home目录下大小为10k的文件
    11. 压缩和解压缩

      • tar -czvf target.tar.gz target/ : 归档并压缩

      • zip file.zip fileName //zip后接压缩后的文件名,在它的后面输入要压缩的文件即可压缩后,

      • zip m file.zip to.txt:把to.txt文件压缩成file.zip文件,to.txt会自动删除的,自动删除原文件

      • zip ‐r file.zip fileName:将当前目录下的子目录一起压缩

      • zip ‐j file.zip fileName : 忽略子目录内容

      • 将已压缩的或没有必要压缩的文件去掉 zip ‐n .mpg: .jpg: .gif:第一种文件中间要用“:”分开

      • 直接解压缩文件 unzip file.zip

      • 使用gzip 文件 可以将文件压缩

      • 使用gzip -d 文件可以将文件解压缩

      • 使用tar -cvf 打包后的名字.tar 文件1 文件2 文件3 可以将多个文件(一个文件写一个就好)打包

      • 使用tar -xvf 包名.tar将打包后的文件释放出来

      • 使用tar -zxvf 包名.tar将打包后的多个文件释放出来

      • (多个文件一般先打包,再压缩,使用tar -zxvf 压缩后的名字(一般是.tar.gz结尾)进行解压缩,一步到位)

      • mv 文件 /路径 将文件移动到指定的路径(mv 重命名或者移动,mv java mnt 重命名,mv java mnt/ 不行的依然重命名,mv java /mnt 移动)

      • mv 文件 文件/ 重命名

      • mv 文件 参数 如果参数存在是移动,不存在时重命名

    12. vim相关

      • vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式(i,o,a都可以用来插入)。
        • 一般模式 : vi a.txt 就是进入一般模式(其他模式ESC可以推出到一般模式)
        • 插入模式 : i,o,a进入插入模式
        • 底部指令模式 : 使用 :
      • :q 退出
      • :q! 强制退出(不保存)
      • :wq 保存并退出(一般模式下shift + zz或者x也可以)
      • :set number 显示行号
      • :set nonumber 隐藏行号
      • cat 文件名.后缀名 可以用来查看文件中的内容
      • /apache 在文档中查找apache 按n跳到下一个,shift+n上一个
      • yyp 复制光标所在行,并粘贴
      • dd 删除(删除多行 number+dd)
      • u 撤销操作
      • h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)
    13. 安装插件

      1. tree : sudo yum -y install tree
      2. vim : yum -y install vim*
      3. wget : yum -y install wget
      4. ifconfig:yum install net-tools
    14. 删除JDK

      1. rpm -qa | grep java // 查看本机是否有jdk
      2. 如果有输出,就进行删除卸载
      3. rpm -e --nodeps java jar包 // 关于java的全部卸载就可以了

    12:安装JDK:

    使用gzip 文件  可以将文件压缩
    使用gzip -d 文件可以将文件解压缩
    使用tar -cvf 打包后的名字.tar 文件1 文件2 文件3  可以将多个文件(一个文件写一个就好)打包
    使用tar -xvf 包名.tar将打包后的文件释放出来
    使用tar -zxvf 包名.tar将打包后的多个文件释放出来
    (多个文件一般先打包,再压缩,使用tar -zxvf 压缩后的名字(一般是.tar.gz结尾)进行解压缩,一步到位)
    
    mv 文件 /路径     将文件移动到指定的路径(mv 重命名或者移动,mv java mnt 重命名,mv java mnt/ 不行的依然重命名,mv java /mnt 移动) 
    mv 文件 文件/     重命名
    
    如果本机存在请先删除本机上的jdk
    wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
    tar -zxvf jdk-8u181-linux-x64.tar.gz将文件进行解压
    
    vi /etc/profile(大G跳到最后 o插入一行)
    
    JAVA_HOME=/usr/local/java/jdk-8u181        // 切记是自己的目录
    JRE_HOME=/usr/local/java/jdk-8u181/jre
    PATH=$PATH:$JAVA_HOME/bin
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export JAVA_HOME JRE_HOME PATH CLASSPATH
    
    注意:保存退出后,重新加载环境变量
    source /etc/profile
    
    1. 安装tomcat

      1. wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz
      2. 将下载的压缩包移动到对应的文件夹下
      3. tar -zxvf apache(按tab键提示一下) 进行解压缩
      4. 进入到bin目录
      5. 执行 ./startup.sh ; tail -f logs/catalina.out
        (如果出现Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 和 At least one of these environment variable is needed to run this program,进入到tomcat的bin目录下,执行vi setclasspath.sh,添加两行
        export JAVA_HOME=/usr/local/software/jdk/jdk1.8.0_181
        export JRE_HOME=/usr/local/software/jdk/jdk1.8.0_181/jre )
      6. 在本机访问(有可能访问不了,尝试关闭防火墙(参考mysql安装的最后一个操作)或者让8080端口通过就好)
      7. tail -f logs/catalina.out 查看日志
    2. 安装Mysql

      1. 先删除电脑上原本的mysql(rpm -qa | grep -i mysql 查看),一般没有安装,如果安装使用rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64 进行相关的删除
      2. wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar
      3. tar -xvf mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar
      4. yum remove mysql-libs
      5. rpm -ivh mysql-community-common-5.7.23-1.el7.x86_64.rpm
      6. rpm -ivh mysql-community-libs-5.7.23-1.el7.x86_64.rpm
      7. rpm -ivh mysql-community-client-5.7.23-1.el7.x86_64.rpm
      8. rpm -ivh mysql-community-server-5.7.23-1.el7.x86_64.rpm (如果报错,执行wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm试试,安装就好)
      9. rpm -ivh mysql-community-devel-5.7.23-1.el7.x86_64.rpm
      10. 启动服务 : systemctl start mysqld
      11. 查看服务 : systemctl status mysqld
      12. cat /var/log/mysqld.log | grep password
      13. 不修改密码是禁止任何操作的( SET PASSWORD = PASSWORD('Mypwd123456$');) 密码需要大小写字母,数字和字符组合
      14. 授权远程客户端连接 : GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'Mypwd123456$' WITH GRANT OPTION;
      15. FLUSH PRIVILEGES;
      16. 需要关闭linux防火墙
        1. firewall-cmd --state #查看防火墙是否启用
        2. systemctl stop firewalld #关闭防火墙
      17. service mysql start 启动mysql服务
    3. 设置开机自启动

      1. chkconfig --add mysql // 添加入开机自启动
      2. chkconfig mysql on // 自启动
      3. chkconfig // 查看
    4. 过滤防火墙(CENTOS7之前)

      1. /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
      2. /etc/rc.d/init.d/iptables save
      3. /etc/rc.d/init.d/iptables restart #重启服务
        • 简单关闭防火墙的方法
        1. firewall-cmd --state #查看防火墙是否启用
        2. systemctl stop firewalld #关闭防火墙
        3. systemctl start firewalld #开启防火墙
      • 关闭防火墙(/etc/init.d/iptables stop)
        • setup
        • firewall
        • 按tab键切换到disablede项,然后按空格键选择,然后再按tab键切换到ok,按空格件选择
        • 按tab键切换到quit,按空格键选择
      • service iptables status 查看防火墙的状态
    5. 禁用防火墙

      • [root@rhel7 ~]# systemctl stop firewalld.service

      • [root@rhel7 ~]# systemctl disable firewalld.service

      • [root@rhel7 ~]# systemctl status firewalld.service

      • 启动防火墙 : systemctl start firewalld

      • 启动一个服务:systemctl start firewalld.service

      • 关闭一个服务:systemctl stop firewalld.service

      • 重启一个服务:systemctl restart firewalld.service

      • 显示一个服务的状态:systemctl status firewalld.service

      • 在开机时启用一个服务:systemctl enable firewalld.service

      • 在开机时禁用一个服务:systemctl disable firewalld.service

      • 查看服务是否开机启动:systemctl is-enabled firewalld.service;echo $?

      • 查看已启动的服务列表:systemctl list-unit-files|grep enabled

      • 开启端口 : firewall-cmd --zone=public --add-port=1521/tcp --permanent

      • 删除开放的端口号 : firewall-cmd --zone=public --remove-port=80/tcp --permanent

      • 查看所有开启的端口:firewall-cmd --zone=public --list-ports

      • firewall-cmd --reload //重启防火墙

    6. 使用systemctl工具管理服务程序

      1. systemctl list-unit-files|grep enabled
    7. 上传:

      1. alt + p ,使用put命令上传
      2. 使用WinSCP进行上传,或者使用其他工具
    8. 发布项目

      1. 将数据库还原到Linux上
        1. 备份Windows上的数据库(mysqldump -uroot -ppassword 数据库的名字 > 导出路径表名.sql)
        2. 将备份的数据库上传到Linux上,提前创建好数据库,使用命令mysql -uroot -ppassword 库名 < sql所在的路径进行还原.
        3. 或者在本机使用sqlyog连接linux上的数据库,直接使用图形化界面还原数据库.
      2. 将程序的代码发布到Linux上
        1. 修改druid.properties的数据库连接信息
        2. 使用package进行打包
        3. 将包放在linux下的tomcat下的webapp,直接执行tomcat,开始进行访问
    9. Nginx的安装

      1. 概念 : 高性能的web服务器,反向代理,负载均衡服务器
    10. Nginx + Tomcat 的集群配置

      1. 一台电脑模拟,本机安装两个tomcat,修改端口号(server.xml).
      2. 项目发布到两个tomcat,就可以通过两个url进行访问
      3. 安装nginx
        1. window直接解压就好,双击可执行文件启动,访问localhost就可以了

        2. 配置nginx,修改conf/nginx.conf

          设置服务器列表

          upstream server_lb{
          server 127.0.0.1:8080;
          server 127.0.0.1:8081;
          }

          server {
          listen 80;
          server_name localhost; # 域名

           #charset koi8-r;
          
           #access_log  logs/host.access.log  main;
          
           location / {
               root   html;
               proxy_pass   http://server_lb;    # 服务列表
               index  index.html index.htm;
           }
          
        3. 重启服务:nginx -s reload

        4. 设置session共享

          1. 一个用户只在tomcat1上操作,另一个用户只在tomcat2上操作.配置文件上的服务器列表上添加ip_hash;,并添加权重(了解).

            upstream server_lb{
            server 127.0.0.1:8080 weight=4;
            server 127.0.0.1:8081 weight=10;
            ip_hash;
            }

          2. 在多个tomcat上进行session共享,使用的是tomcat的广播机制,但是不推荐.

            1. 修改tomcat的server.xml文件,将cluster className的注释去掉
            2. 在项目的web.xml中添加
          3. 使用redis服务器的方式完成session的共享(推荐使用).

            1. 使用jedis保存用户信息

    /etc/sysconfig/network-scripts/ifcfg-eth0

  • 相关阅读:
    IOC / AOP
    Volatile
    观察者模式
    Gang Of Four的23中设计模式
    适配器模式
    享元模式
    设计模式
    B树和B+树
    Java内存模型(JMM)
    【Java的IO流之文件字符输入输出流 25】
  • 原文地址:https://www.cnblogs.com/wadmwz/p/9749410.html
Copyright © 2020-2023  润新知