Linux基础


云服务器

连接云服务器

  1. 首先要在本地安装xshell和xftp
  2. 然后通过xshell连接远程linux服务器:root是linux系统的登录用户(不是腾讯云),4*.***.***.**6是云服务器的公网地址
    ssh root@4*.***.***.**6
    

Linux基础操作

  1. 复制粘贴:在xshell命令界面,通过右键进行复制粘贴命令
  2. tab键进行文件名补全
  3. 命令结构:ls -R /rootls是命令, -R是选项(可组合,如-Rlh),/root是命令对象
  4. 蓝色文件名是文件夹,绿色一般是放命令的
  5. man ls查看帮助文档
  6. bin是存放指令的,sbin是管理员用的指令,etc是配置文件夹,sys是系统文件,usr是安装的命令文件,tmp是临时文件夹。(在自己家目录下玩最安全)
    • etc/passwd 所有用户信息
  7. 访问web程序:host/html文件夹下面的目录

Linux基础命令

文件基础命令

  1. 显示路径
    pwd
    
  2. 路径跳转
    cd /etc     # 绝对路径
    cd ../      # 相对路径:往上走一层
    cd ./www    # 相对路径:去当前目录下的www文件夹下
    cd ~        # 回到家目录
    
  3. 显示目录
    ls
    ls -a        # 显示所有文件(包括隐藏文件)
    ls -A        # 显示所有文件(不包括隐藏文件)
    ls -lh       # 显示详情
    ls -d        # 不展开文件夹显示
    ls *文件*     # 模糊显示
    
    
  4. 创建文档
    touch test.txt
    
  5. 创建文件夹
    mkdir dir1 
    mkdir -p dirt1/dir2/dirt3    # 递归创建
    
  6. 删除文件
    rm test.txt 
    rm text*        # 模糊删除
    rm -rf dir1     # 无询问删除
    
  7. 拷贝文件
    cp test.txt /var/
    cp test.txt /var/book.txt  # 拷贝并重命名         
    cp -r dir1 /var/           # 递归拷贝文件夹(文件夹需要递归拷贝)
    cp test1 test2  /var/      # 同时拷贝两个
    cp test1 /var/dir          # dir是文件夹,则test1放到dir文件夹下;如果dir是文档,则test1放到var文件夹下并重命名成dir
    
    # 跨主机拷贝
    scp -r root@192.168.1.20:/home/user/dir1  /home/lijunlong/
    
  8. 移动文件:规则和拷贝一致
    mv dir1  /var/dir2         # 移动文件夹不需要`-r`
    

文件压缩

  1. tar打包:不压缩,打包和解包都会先拷贝一份源文件
    tar -cf test.tar test1 test2     # 打包:test1和test2打包成test.tar
    tar -xf test.tar                 # 解包:test
    
  2. gzip压缩:只能压缩单个文件
    gzip test1        # 压缩:test1.gz
    gzip -d test1.gz  # 解压:test1
    
  3. zip压缩:压缩和解压缩都会先拷贝一份源文件
    zip test.zip test1 test2    # 压缩:test1和test2压缩成test.zip
    unzip test.zip              # 解压:解压名称是源文件名称
    

文件查找

  1. 示例
    locate test            # 支持模糊查询,和everything软件类似,可用`updatedb`手动更新数据
    
    find /root -name test  # 和locate一样,但是数据是实时的,所以慢
    find /root -name *.log -mtime +10  # 查找10天前被修改的日志
    

文本处理

  1. 进入编辑文档
    Vim test1       # 打开或创建并打开文档
    
  2. 文档编辑操作
    • i进入编辑模式
    • esc返回到命令模式(不可输入命令),按:进入到底行模式(命令编辑模式)
    • ^光标去到行首,$去行尾
    • yy复制所在行,dd剪切所在行,p粘贴
    • u撤销
    • /关键字搜索(底行模式)
  3. 查看文本
    cat test
    cat -n test    # 显示行号
    head -5 test   # 开头5行
    tail -f test   # 文尾监视
    
  4. 管道:再处理
    head -6 test | tail -3
    
  5. 计数:可以统计很多东西,不详述
    cat test | wc -l  # 计算行数
    
  6. 三剑客:grep
    grep 二 test      # 显示test中的所有带“二”的行
    grep -c 二 test   # 计算匹配的行数
    grep -n 二 test   # 把行号也显示出来
    grep ^$ test      # 显示空行
    grep -v ^$ test   # 显示非空行
    
  7. 三剑客:awk
    awk -F 二 '{print $2}' test                   # 显示test被“二”分割的每一行的第2段
    awk -F 二 '{if ($1 == "第") print $2}' test   # 显示test被“二”分割,且第1段是“第”的每一行的第2段
    

用户相关

  1. 切换用户
    su zhangsan
    
  2. 登出
    exit
    
  3. 删除用户
    userdel -r user1  # 前提是user1必须`登出`了才能删除
    
  4. 创建用户
    # 先看是否存在用户
    cat /etc/passwd  # 展示所有用户,末尾是`bash`的才是可登录的用户
    
    # 查看有哪些用户组(用户必须在组下面)
    cat /etc/group
    
    # 创建组:65是组id,不能和已有的重复
    groupadd -g 65 testgroup
    
    # 创建用户:355是用户id(不能重复),主组是testgroup
    useradd -u 355 -g testgroup testuser   
    

权限相关

  1. 变更文件主人
    # 变更文档主人
    chown newuser test1.txt   # test1.txt新主人是newuser
    
    # 变更文件夹主人
    chown -R newuser test1    # 递归授权
    
  2. 变更操作权限
    chomd 755 test1           # 文档一般是644,文件夹一般是755(加了进入文件的`1`)
    

安装

  1. yum安装:联网安装(国外的库慢)
    yum install tree
    yum remove tree        # 卸载
    rpm -qa | grep tree    # 查看安装的tree
    rpm -qi mariadb        # 查看安装包的详细信息
    
  2. rpm安装:安装rpm格式的
    rpm -ivh zendao_2.3.rpm
    
    # 指定位置安装,有的不能指定位置,要根据安装包的详细信息看能不能指定
    rpm -ivh --prefix=/user/root zendao_2.3.rpm
    
  3. 源码安装:配置、编码、安装,格式一般是tar.gz
    • 先解压安装包:解压后看README看安装步骤
    • 配置:一般配置文件在config文件中,可以指定位置,也可以不指定
    ./configure --prefix=/user/root
    
    • 编码:直接在命令行输入make回车就会执行文件中的makefile
    • 安装:命令行输入make install回车即可
    • 查看命令:在安装程序的地方打开文件的bin文件夹,里面是程序的所有命令,直接输入这些命令即可执行
    • 配置环境变量:上面的命令只能在程序的bin文件夹中或者加上路径执行,要在任意地方不加入路径也能执行,要配置到环境变量中,让系统认识该指令
    • 通过将快捷方式放入环境变量中的bin文件夹实现:本质上,只要在环境变量的路径中,系统就能识别出路径中的指令
    • 通过echo $PATH打印出环境变量有哪些路径
    • 然后给程序的bin创建快捷方式
    # 前面的路径是程序的bin文件,后面的路径是一个环境变量路径
    ln -s /user/root/zendao/bin  /user/bin
    
    • 源码卸载就是把解压的文件删除就行
  4. zip安装
    • 直接解压就行,卸载就删除
  5. 脚本安装:有的程序可能要反复安装,跑脚本就不用手动操作了
    • 先写脚本
    #!/bin/bash
    echo "开始安装阿帕奇"
    yum -y install httpd httpd-devel
    
    systemctl start httpd
    systemctl enable httpd
    
    # 略
    
  6. 安装jdk:java开发的软件都需jdk环境,和windows里面一样
    • 下载jdk的rpm安装包,并通过rpm安装
    • 通过find命令找到安装地址
    • 目前的jdk没有jre文件夹,进到安装的jdk文件中要添加一个jre文件夹
    • 添加到系统配置文件中:效果和快捷方式放入环境路径效果一致
    vim /etc/profile
    
    • 在profile文档中加入这么几句
    JAVA_HOME=/user/java/jdk-15.0.2
    CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
    PATH=%PATH:$JAVA_HOME%/bin:$JAVA_HOME/jre/bin
    export PATH=CLASSPATH JAVA_HOME
    
    • 让环境变量生效
    source /etc/profile
    
    • 安装好后通过java -version 查看版本

Linux系统命令

进程相关

  1. 动态进程(不显示不活动的)
    top
    
  2. 静态进程(所有进程)
    ps -ef
    
  3. 查看网络情况
    netstat -tupln       # 显示使用网络的进程信息,包括端口号
    
  4. 开放端口:这里开放80端口,add换成remove就是关闭
    firewall -cmd --zone=public --add-port=80/tcp --permanent 
    
    # 如果报`firewall.service: Unit not found`,执行:
    yum install firewalld
    systemctl unmask firewalld
    systemctl enable firewalld
    systemctl start firewalld
    
  5. 杀进程
    kill -9 8976         # 8976是pid
    
  6. 关机和重启
    shutdown -h now
    reboot -h now
    
  7. 显示系统时间
    date
    

Linux高级一点的命令

打印

  1. 示例:特殊字符要转义
    echo hello
    echo $PATH         # 打印变量
    

变量

  1. 示例:等号两边不能有空格
    a=你好
    echo $a
    

输入:类似python的input

  1. 示例
    read -p "请输入:" name
    echo $name                 # 打印出输入的内容
    

命令替换:命令嵌套

  1. 规则:反引号内的命令要先执行了,结果在用来执行外面的。不加反引号结构就不是正常的命令结构,不会执行。
    echo `cat /etc/passwd | grep root`