• Linux学习笔记


    Linux安装在VM上

    直接安装即可,或者打开VMX文件,挂载到VM上

    Linux的目录结构

    /代表根目录。~不同的用户,代表的目录不同。

    超级管理员用户:root,终端中显示~,表示/root目录

    普通用户:在home目录下,终端中显示~,表示home目录中用户名对应的目录/home/itcast

    usr目录:很多软件安装在usr目录中

    Linux常用命令

    pwd(print working directory):打印当前工作目录

    ls:显示当前目录中的目录和文件

    ls -a:显示当前目录中的所有目录和文件,包括隐藏文件(.开头的)

    ls -l:显示当前目录中的所有目录和文件的详细信息,包括权限信息,用户,时间,大小,文件名

    ls -l 可以简化为:ll

    cd 改变目录

    cd -:返回上次所在目录

    mkdir:创建目录

    rmdir:删除单个目录(前提是该目录为空)

    如何创建多级目录?

    不能使用mkdir aaa/bbb,会报错

    mkdir --help:查看mkdir的帮助信息,大多数命令都可以通过–help来查看帮助信息

    1657939108825

    mkdir -p aaa/bbb:创建多级目录

    rm -rf aaa:可以递归强制无提示删除aaa目录及其子目录

    文件查看命令:

    cat:查看指定文件所有内容。concatenate:连续的,使连续,连接

    more:查看指定文件一屏内容。回车向下一行,空格下一屏,q键或者ctrl + c退出。

    less:同more,多了一个上下键翻一行的功能,退出方式同more

    tail -N 文件名:显示指定N行的文件内容,从末尾开始。默认显示尾部10行。

    tail -f 文件名:动态显示文件末尾内容,如果有追加内容,会动态显示。ctrl + c退出

    复制移动删除文件命令:

    cp 文件名 目标目录

    cp 文件名 目标目录/文件名 可以复制过来并重命名

    mv 文件名 目标目录/文件名 可以剪切过来并重命名,普通用法同cp

    rm -rf 目录名 递归强制删除(无提示)目录及其内容

    打包和压缩

    tar -cvf test.tar 要打包文件: -c是创建tar文件,-v是显示打包过程,-f是指定要进行打包的文件名。

    tar -zcvf test.tar.gz 要打包的文件: -z是使用gzip压缩:linux中压缩文件后缀名为tar.gz。这里的-f是指定要进行压缩的文件名。而不是压缩后的文件的文件名

    tar -zxvf test.tar.gz: 默认解压到当前目录

    tar -zxvf test.tar.gz -C …/test:指定解压目录

    查找文件:

    find / -name b.ta*.gz: 在/中查找文件名为b.ta*.gz的文件

    grep 要查找的字符串 文件名 --color -A1 -B1:在文件中查找指定的字符串,将含有该字符串的行显示出来,–color是高亮显示查找的字符串,-A1 -B1是显示后面,前面的指定行内容。

    其他命令:

    pwd

    touch:创建文件

    clear

    ps:查看进程

    Vim文件操作

    Vim的三种模式:命令行模式,插入模式,底行模式

    命令行模式:vim 文件名 即可进入:可以通过输入命令,对内容操作,如删除等

    插入模式:在命令行模式中,按下i,o,a可以进入插入模式,编辑内容。esc退出返回到命令行模式。

    i:在当前位置前插入

    I:在当前行首插入

    a:在当前位置后插入

    A:在当前行尾插入

    o:在当前行之后插入一行

    O:在当前行之前插入一行

    底行模式:在命令行模式中,输入:可以进入底行模式。wq是写入退出,q!是强制退出不写入。

    VIm中:可以编辑不存在的文件,保存后会自动生成。

    在Vim的底行模式中,输入/hello,就可以搜索到带有hello字符串的行,高亮显示出来。

    输出重定向和系统管理命令

    cat a.txt > b.txt,将cat a文件的输出重定向到b文件。是覆盖重定向。

    cat a.txt >> b.txt, 将cat a文件的输出重定向到b文件。是追加重定向。

    可以用于有输出的命令,有输出就可以使用>来重定向输出到指定的文件中。

    ifconfig >> a.txt,将IP信息重定向到a.txt文件中

    ps 查看进程信息

    -e 列出所有进程

    -f 全部扩展信息,时间等

    ps -ef | grep java, 查找包含java字符串的进程

    kill -9 pid:强制杀死指定pid(进程id)的进程。

    管道

    管道是Linux命令中重要的一个概念,其作用是将一个命令的输出作为另一个命令的输入。是一种命令的组合使用。

    ls --help | more 分页查询帮助信息

    ps -ef | grep java 查询名称中包含java的进程

    ifconfig | more

    Linux权限

    一共10个占位符,分为4个部分

    - — — —

    第一部分:

    • - 表示文件
    • d 表示目录
    • l 表示链接(快捷方式)

    第二部分:表示当前用户具有该文件的权限

    • r : read读权限
    • w : write 写
    • x : execute 执行

    三:当前组内其他用户具有该用户的权限

    • r : read读权限
    • w : write 写
    • x : execute 执行

    四:其他组的用户具有该文件的权限

    • r : read读权限
    • w : write 写
    • x : execute 执行

    修改权限命令:

    chmod u=rwx,g=rwx,o=rwx 文件名/目录,当然可以缺省

    可以通过数字赋权限:

    r : 4, w : 2, x : 1

    chmod 755 aa.txt , 读写执行:4 2 1

    可能的组合:1 2 4 3 5 6 7,可执行,可写,可读,可执行可写,可执行可读,可读可写,可读可写可执行

    Linux常用网络操作

    1、主机名配置

    hostname:查看主机名

    hostname 新名称:修改主机名,仅仅是临时修改不会持久化生效

    vim /etc/sysconfig/network 修改其中hostname = itheima,可以持久化修改主机名

    2、IP地址配置

    service network restart 重启网络服务

    持久化修改IP地址:vim /etc/sysconfig/network-scripts/ifcfg-eth0,修改其中的配置即可

    临时修改IP地址:ifconfig eth0 192.168.12.22

    3、域名映射

    /etc/hosts/ 文件作用域在通过主机名进行访问时做ip解析。 相当于windows的C:\windows\system32\drivers\etc\hosts文件的功能

    需要做域名映射直接修改该文件就可以了。

    4、网络服务管理

    service 服务名 操作(status:状态,stop,start,restart)

    service network restart

    service iptables stop 防火墙

    Linux上安装软件

    四种常用的Linux安装软件方式

    1、使用二进制发布包安装

    软件已经针对具体平台编译打包发布,只要解压,修改配置即可使用。

    2、RPM包

    软件已经按照redhat的包管理工具规范RPM进行打包发布,需要获取到相应的软件RPM发布包,然后用RPM命令进行安装。

    缺点是:不会自动安装当前软件依赖的其他软件。

    3、Yum在线安装

    需要在联网状态下使用。

    软件已经以RPM规范打包,但发布在了网络上的一些服务器上,可用yum在线安装服务器上的rpm软件,并且会自动解决软件安装过程中的库依赖问题。

    4、源码编译安装

    软件以源码工程的形式发布,需要获取到源码工程后用相应开发工具进行编译打包部署

    上传于下载工具介绍

    1、FileFizzla 用于连接服务器,上传下载文件

    2、lrzsz工具

    yum install lrzsz 安装提示:

    [root@itcast01 yum.repos.d]# yum install lrzsz
    Loaded plugins: refresh-packagekit, security
    Setting up Install Process
    No package lrzsz available.
    Error: Nothing to do

    3、sftp 安全文件传输协议

    在CRT中使用alt + p可以调出sftp界面

    put 本地文件路径:默认上传到服务器当前用户的操作目录。(root用户就是root, test用户就是home/test目录)

    get 文件名(都是以当前用户的操作目录为源点进行操作):默认下载到本地的文档目录中

    Linux安装JDK

    查看Linux版本:getconf LONG_BIT 可以获取系统是多少位的

    一般安装在/usr/local/ 目录下

    cd /usr/local
    mkdir jdk
    mv jdk-7u71-linux-i586.tar.gz /usr/local/jdk/
    # 可能需要卸载之前安装的jdk版本
    java -version
    # 搜索已经安装的包含java的软件
    rpm -qa | grep java
    # 卸载上面命令输出的软件
    rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
    rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    配置环境变量

    vim /etc/profile
    # 添加如下java环境变量配置
    #set java environment
    	JAVA_HOME=/usr/local/src/java/jdk1.7.0_71
    	CLASSPATH=.:$JAVA_HOME/lib.tools.jar
    	PATH=$JAVA_HOME/bin:$PATH
    	export JAVA_HOME CLASSPATH PATH
    source /etc/profile # 刷新配置
    java -version #查看是否安装配置成功
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    如果不小心改错文件,且没有备份,这里有一份profile默认配置文件:

    # /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
    # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
    
    
    if [ "$PS1" ]; then
      if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
        # The file bash.bashrc already sets the default PS1.
        # PS1='\h:\w\$ '
        if [ -f /etc/bash.bashrc ]; then
          . /etc/bash.bashrc
        fi
      else
        if [ "`id -u`" -eq 0 ]; then
          PS1='# '
        else
          PS1='$ '
        fi
      fi
    fi
    
    
    if [ -d /etc/profile.d ]; then
      for i in /etc/profile.d/*.sh; do
        if [ -r $i ]; then
          . $i
        fi
      done
      unset i
    fi 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    Linux安装Mysql

    cd /usr/local/
    mkdir mysql
    # 使用文件上传工具将mysql的安装包放到mysql目录下
    # 卸载系统中已存在的mysql
    rpm -qa | grep mysql # 查询已安装的mysql的文件名
    rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.i686 # 卸载已经安装的mysql
    tar -xvf MySQL-5.6.22-1.el6.i686.rpm-bundle.tar # 由于不是gz文件,不需要使用-g,-x解压,-v显示过程,-f指定文件名
    rpm -ivh rpm安装包名:安装软件
    rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm 
    rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm
    service mysql start
    cat /root/.mysql_secret # 查看密码
    mysql -uroot -pDTsvRBdhb8IISd9i # 进入mysql中
    set password = password('root'); # 第一次登录设置密码才能操作
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    远程连接mysql:

    grant all privileges on *.* to 'root' @'%' identified by 'root'; 
    flush privileges;
    
    • 1
    • 2

    然后就可以远程访问mysql数据库了。

    Linux安装Tomcat

    # 在usr/local/中创建对应目录
    # 上传文件
    # 解压
    tar -zxvf apache-tomcat-7.0.57.tar.gz
    # cd 进入bin目录
    ./startup.sh
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    http://192.168.31.129:8080/ 出现tomcat则安装成功

    Linux中部署项目

    将打好的war包,放到tomcat的webapp目录中即可。

    会自动解压。

    然后输入正确的路径,就可以正常访问了。

    Linux中查看占用端口,杀死对应进程

    # 1、通过ps或者netstat命令以及管道,grep命令查询指定端口,名称的进程对应的详细信息
    ps aux | grep nginx或者对应的端口号
    # root 13260 0.0  0.1   5180  1284 ? Ss 03:10 0:00 nginx: master process ./nginx
    
    netstat -anp | grep nginx或者对应的端口号 
    # tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 13260/nginx
    
    # 上面查询出来的结果中:13260是pid,通过kill -9 杀死进程
    kill -9 13260
    # 如果还是提示端口占用,就使用ps -aux | grep 名称,查出有关该应用的所有进程id,全部杀死
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    【opencv】颜色映射表操作-applyColorMap()和LUT()函数使用介绍
    最小生成树之Kruskal、Prim
    JavaScript-变量的作用域、let、const详解
    μC/OS-II---事件标志组管理1(os_flag.c)
    Haproxy实现负载均衡
    【信号处理】卡尔曼(Kalman)滤波(Matlab代码实现)
    Day05-Python组合数据类型
    【OpenCV】Chapter9.边缘检测与图像分割
    Linux内核4.14版本——drm框架分析(12)——DRM_IOCTL_MODE_SETCRTC(drm_mode_setcrtc)
    Pipenv
  • 原文地址:https://blog.csdn.net/u014685547/article/details/126618506