linux的基本命令操作

发布时间 2023-08-15 21:48:32作者: 彼时听风

mkdir-命令

  • mkdir 用于创建新的目录
  • 语法mkdir [-p] 路径
  • -p 可选参数,表示自动创建不存在的父目录

touch-cat-more-命令

  • touch 路径 用于创建文件
  • cat 路径 直接将内容全部显示出来
  • more 路径 支持翻页(通过空格翻页,通过q退出查看)

cp-mv-rm-命令

  • cp命令可以用于复制文件/文件夹,来自英文单词:copy

    • 语法 :cp [-r] 参数1 参数2
    • -r选项,可选,用于复制文件夹使用,表示递归
    • 参数1,路径,表示被复制的文件或文件夹
    • 参数2,路径,表示要复制去的地方
  • mv命令可以移动文件/文件夹,来自英文单词:move

    • 语法 :mv 参数1 参数2
    • 参数1:路径,表示被移动的文件或文件夹
    • 参数2,路径,表示要移动去的地方。
  • rm命令用于删除文件、文件夹,来自英文单词:remove

    • 语法:rm [-r -f] 参数1 参数2 ... 参数n

    • 同cp命令一样,-r选项用于删除文件夹

    • -f 表示force,强制删除(不会弹出提示确认信息)

      • 普通用户删除不会提示,只有root用户删除才会有提示
      • 普通用户一般用不到-f 选项
    • 参数1、参数2、... 参数n 表示要删除的文件或文件夹路径,按空格隔开

which-find-命令

  • which 命令,查看所使用的一系列命令的程序文件的位置

    • 语法:which 要查找的命令
  • find 命令查找文件

    • 语法:find 起始路径 -name “被查找文件名” 支持使用通配符 * 模糊查询
    • 语法:find 起始路径 -size [+/-] n [kMG]
      • +/- 表示大于和小于
      • n表示大小数字
      • KMG表示大小单位,k(小写)表示kb,MB表示MB,G表示GB

grep-wc-管道符

  • grep命令,从文件中通过关键字过滤文件行

    • 语法:grep [-n] 关键字 文件路径
    • 选项-n,可选,表示结果中显示匹配的行号
    • 参数,关键字,表示过滤的关键字,使用“ ”包裹
    • 参数,文件路径,表示要过滤的文件路径 ,可以作为内容输入端口
  • wc命令,用来统计文件的行数、单数数量等

    • 语法:wc [-c -m -l -w] 文件路径
    • -c ,统计bytes数量
    • -m,统计字符数量
    • -l,统计行数
    • -w,统计单词数量
    • 参数,文件路径,被统计的文件,可作为内容输入端口
  • 管道符:| 含义是将管道符左边命令的结果,作为右边命令的输入

echo-tail-重定向符

  • echo命令在命令行内输出指定内容

  • 语法:echo 输出的内容(建议用引号)

  • 反引号 ` ,将命令用反引号包裹,会作为命令执行,而非普通字符

  • 重定向符:>和>>

    • ">" ,将左侧命令的结果,覆盖写入到符号右侧指定的文件中

    • ">>",将左侧命令的和结果,追加写入到符号右侧的文件中

      echo "hello linux" >> test.txt
      
  • tail命令,可以查看文件尾部内容,跟踪文件的最新更改

    • 语法:tail [-f -num] 路径
    • 参数 -f ,表示持续跟踪
    • 参数 -num,表示查看尾部多少行,不填默认10行

vi\vim文本编辑器

root用户

  • su命令用于切换用户,来源英文单词:Switch User

    • 语法:su [ - ] [用户名]
      • [ - ] 符号是可选的,表示是否在切换用户后加载环境变量,建议带上
      • [用户名] ,表示要切换的用户,用户名也可以省略,省略表示切换到root
      • 切换用户后,可以通过exit命令回退上一个用户。
  • sudo命令,为普通用户授权,临时的root权限

    • 语法:sudo 其他命令
      • 在其它命令之前,带上sudo,即可为这一条命令临时赋予root权限
      • 但是并不是所有的用户,都有权力使用sudo,需要为普通用户配置sudo认证。
      • 切换到root用户,执行 visudo命令,会自动通过vi编辑器打开:/etc/sudoers
      • 在文件的最后添加:用户名 ALL=(ALL) NOPASSWD:ALL

用户和用户组管理

  • 用户组管理(以下命令需在root用户执行)

    • 创造用户组 groupadd 用户组名
    • 删除用户组 groupdel 用户组名
  • 用户管理

    • 创建用户

      • useradd [-g -d] 用户名
        • -g:指定用户组,不指定,会创建同名组自动加入
        • -d:指定用户HOME路径,不指定,就默认在:/home/用户名
    • 删除用户

      • userdel [-r] 用户名
        • -r:删除用户的home目录,不使用-r,删除用户时,home目录保留
    • 查看用户所属组

      • id [用户名]
    • 修改用户所属组

      • usermod -aG 用户组 用户名
  • getent passwd 命令,可以查看当前系统中有哪些用户

  • getent group 命令,可以查看当前系统中有哪些组

chmod命令

  • 作用:修改文件、文件夹的权限信息

  • 语法:chmod [-R] 权限 文件或文件夹

  • -R,对文件夹内的全部内容应用同样的操作

  • 示例:

    • chmod u=rwx,g=rx,o=x hello.txt,将文件权限修改为:rwxr-x--x

      • 其中u表示user所属的权限,g表示group组权限,o表示other其他用户权限
    • chmod -R u=rwx,g=rx,o=x test

  • 权限的数字序号

chown命令

  • chwon命令,可以修改文件,文件夹的所属用户和用户组

  • 语法:chown [-R] 用户 [:] [用户组] 文件或文件夹

    • -R,同chmod,对文件夹内部应用相同规则
    • 用户,修改所属用户
    • 用户组,修改所属用户组
    • :用于分隔用户和用户组
    • 示例:
      • chown root hello.txt,将hello.txt所属用户修改为root

常用快捷键

  • ctrl+c 强制停止
  • ctrl+d 退出登出
  • history 查看历史命令
  • !命令前缀,自动匹配上一个命令
  • ctrl+r,搜索历史命令
  • ctrl+a|e,光标移动到命令开始或结束
  • ctrl+←|→,左右跳单词
  • ctrl+l 或者 clear 命令 清屏

软件的安装

  • yum命令,RPM包软件管理器,用于自动化安装配置Linux,并可以自动解决依赖问题
  • 语法:yum [-y] [install |remove |search] 软件名称
  • -y:自动确认,无需手动确认安装或卸载过程
  • install:安装
  • remove:卸载
  • search:搜索

systemctl命令

  • systemctl命令控制:启动、停止、开机自启

  • 语法:systemctl start | stop|status | enable | disable 服务名

    • start 启动
    • stop 关闭
    • status 查看状态
    • enable 开启开机自启
    • disable 关闭开机自启
  • 系统内置的服务比较多,比如:

    • NetworkManager,主网络服务
    • network,副网络服务
    • firewalld,防火墙服务
    • sshd,ssh服务(finalShell远程登录linux使用的就是这个服务)

ln命令创建软连接

  • 类似于windows中的快捷方式

  • 语法:ln -s 参数1 参数2

    • -s,创建软连接
    • 参数1:被链接的文件或文件夹
    • 参数2:要链接去的目的地
  • 实例:

    • ln -s /etc/yum.conf ~/yum.conf

日期和时区

  • date命令可以在命令行中查看系统的时间

  • 语法:date [-d] [+格式化字符串]

  • -d,按给定的字符串显示日期,一般用于日期计算

  • 格式化字符串:

    • %Y 年
    • %y 年份后两位数字
    • %m 月份
    • %d 日
    • %H 小时
    • %M 分钟
    • %S 秒
    • %s 自1970-01-01 00:00:00 UTC 到现在的秒数
  • 实例

    • date +%Y-%m+%d
  • 修改时区

    • rm -f /etc/localtime
    • sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ip地址和主机名

  • hostname命令查看主机名
  • hostnamectl set-hostname修改主机名

网络请求和下载

  • ping [-c num] ip或主机名

  • wget命令

    • wget是非交互式的文件下载器,可以在命令行内下载网络文件
    • 语法:wget [-b] url
      • -b,可选,后台下载
      • url,下载链接
  • curl命令

    • curl cip.cc 发送网络请求
    • curl -o 下载链接

端口

  • 安装nmap
  • nmap 127.0.0.1 查看本机对外暴露的端口
  • 安装net-tools
  • netstat -anp | grep 端口号,查看指定端口的占用情况

进程

  • ps命令可以查看系统中的进程信息

    • 语法:ps -ef
      • -e,显示出全部的进程
      • -f,以完全格式化的形式展示信息
  • 从左到右分别是:

    • UID:进程所属用户
    • PID:进程的进程号ID
    • PPID:进程的父ID
    • C:此进程的CPU占用率
    • STIME:进程启动时间
    • TTY:启动此进程的终端序号,如显示?,表示非终端启动
    • TIME:进程占用CPU的时间
    • CMD:进程的启动命令或启动路径
  • kill -9 进程ID 强制关闭该进程

主机状态监控

  • 通过top命令查看CPU、内存的使用情况,类似于windows的任务管理器

  • 默认每5秒刷新一次

  • 语法:直接输入top即可,按q或ctrl+退出

  • 使用df命令,可以查看硬盘的使用情况

    • 语法:df [-h]
      • -h,以更加人性化的单位显示
  • 使用iostat查看CPU、磁盘的相关信息

    • 语法:iostat [-x] [num1] [num2]

    • 选项:-x,显示更多信息

    • num1:数字,刷新间隔,num2:数字,刷新几次

  • 使用sar命令查看网络相关统计

    • 语法:sar -n DEV num1 num2

    • -n:,查看网络,DEV表示查看网络接口

    • num1:刷新间隔,num2,查看次数

环境变量

  • 环境变量是操作系统在运行时,记录一些关键信息,用以辅助系统运行。

  • 使用env命令可以查看当前系统的环境变量

  • 环境变量时一种KeyValue型结构

  • $符号

    • 在linux系统中,$符号被用于取“变量”的值
    • 如 echo $PATH 就可以把这个环境变量的值,通过echo语句输出出来
    • echo ${PATH}abc 当和其他内容混合在一起时,可以通过{}来标注取的变量时谁
  • 环境变量的设置

    • 临时设置,语法:export 变量名=变量值

    • 永久生效

      • 针对当前用户,配置在当前用户的:~/.bashrc文件中
      • 针对所有用户生效,配置在系统的:/etc/profile文件中
      • 并通过语法:source配置文件,进行立即生效,或者重新登录FinalShell
    • 修改PATH的值

      • export PATH=$PATH:/自己的变量路径

文件的上传下载

  • rz、sz命令
  • rz进行文件上传
  • sz文件,进行文件下载
  • 使用FinalShell直接拖入上传,右键选中下载

压缩和解压

  • linux常用的压缩格式有,tar、gzip

  • tar命令

    • 语法:tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数N
    • -c,创建压缩文件,用于解压模式
    • -v,显示压缩,解压过程,用于查看进度
    • -x,解压模式
    • -f,要创建的文件,或要解压的文件,-f选项必须在所有选项中最后一个使用
    • -z,gzip模式,不使用-z就是普通的tarball格式
    • -C,选择解压的目的地,用于解压模式
  • tar常用压缩组合命令:

    • tar -cvf test.tar 1.txt 2.txt 3.txt 将1.2.3.txt压缩到test.tar文件内
    • tar -zcvf test.tar.gz 1.txt 2.txt 3.txt 将1.2.3.txt压缩test.tar.gz文件内,使用gzip模式
  • tar常用解压组合命令:

    • tar -xvf test.tar 将文件解压到当前目录
    • tar -xvf test.tar -C 路径 解压test.tar,将文件解压到指定目录
    • tar -zxvf test.tar.gz -C 路径 以Gzip模式解压到指定目录
  • zip命令压缩文件

    • 语法:zip [-r] 参数1 参数2 ... 参数N

      • -r,被压缩地文件包含文件夹地时候,需要使用
    • 示例:

      • zip test.zip a.txt b.txt c.txt 将a.b.c.txt压缩到test.zip文件内
      • zip -r test.zip test a.txt 将test文件夹和a.txt文件,压缩到test.zip内
    • unzip命令,解压zip

      • 语法:unzip 参数 [-d] 路径
      • -d,指定要解压地位置,同tar的-C选项
      • 参数,需要解压的zip文件
      • 路径,解压到什么位置

MySQL8.0的安装

  • 配置yum仓库

    #更新密钥
    rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
    
    #安装mysql8.0版本 yum库
    rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
    
  • 使用yum安装MySQL

    # yum安装mysql
    yum -y install mysql-community-server
    
  • 安装完成后,启动MySQL并设置自启动

    systemctl start mysqld  #启动
    systemctl enabele mysqld #开机自启
    
  • 检查MySQL的运行状态

    systemctl status mysqld
    
  • 查看mysql的root默认密码

    cat /var/log/mysqld.log | grep "temporary password"
    
    # 使用默认密码登录
    mysql -uroot -p 密码
    
    # 然后修改MySQL的密码,必须是8位包含大写字母和特殊符号
    ALTER user 'root'@'localhost' identified by '密码';
    
    # 或者
    set password='密码';
    
  • 配置root的简单密码

    set global validate_password.policy=0  #密码安全级别低
    set global validate_password.length=1;   #密码长度最低1位
    
  • 允许root远程登录

    # 第一次 设置root远程登录,其中%表示任意ip都可以使用远程登录
    create user 'root'@'%' identified with mysql_native_password by '';
    
    # 后续使用修改密码
    alter user 'root'@'%' identified with mysql_native_password by '';
    
  • 退出mysql

    # 退出命令
    exit
    
    #快捷键
    ctrl+d
    

jdk的安装

  • 下载对应的安装包 jdk-8u381-linux-x64.tar_2.gz,然后上传到linux中

  • 创建文件夹,用来部署jdk和Tomcat :/export/server

    mkdir -p /export/server
    
  • 解压jdk安装文件

    tar -zxvf jdk-8u381-linux-x64.tar_2.gz -C /export/server
    
  • 配置软链接

    ln -s /export/server/jdk目录  /export/server/jdk
    
  • 配置环境变量

    # 编辑 /etc/profile文件
    export JAVA_HOME=/export/server/jdk
    export PATH=$PATH:$JAVA_HOME/bin
    
    # 文件刷新
    source /etc/profile
    

tomcat安装

  • 下载对应的tapache-tomcat-9.0.78.tar.gz

  • 然后解压到/export/server下

  • 配置软连接

  • 开启服务 startup.sh

  • 查看8080端口的使用情况 sudo netstat -anp | grep 8080

  • 关闭防火墙

    systemctl stop firewalld  # 关闭防火墙
    systemctl disable firewalld  # 停止自启
    
  • 只放开对应的端口

    firewall-cmd --add-port=8080/tcp --permanent  #允许外部访问8080端口
    firewall-cmd --reload #永久生效
    

redis安装

  • 安装epel仓库 yum install -y epel-release

  • 安装redis yum -y install redis

  • 启动redis systemctl start redis

  • 防火墙设置同上,需要注意的是redis的端口是6379

  • 进入redis服务

    # 执行redis-cli 进入redis服务
    set key hello -->ok
    get key -->hello