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

原文地址:https://www.cnblogs.com/wadmwz/p/9749410.html