• Linux常用操作汇总:内容有点杂,但很实用


    这一阵操作虚拟机Linux比较多,一些操作使用也比较频繁,在这里总结一下,方便回顾。

    1.获取动态IP

    刚装的centos,你可能获取不到动态IP,类似下面的情况:

    image-20220823231118096

    解决方案:

    1. 首先确定你网卡的名称,使用指令ip addr即可查看。如上图,我的当前网卡名称是 ens33

    2. 修改网卡配置文件:指令 vi /etc/sysconfig/network-scripts/ifcfg-[网卡名称]

    3. 将配置文件中修改两处:BOOTPROTO=dhcpONBOOT=yes。修改后(记得保存)如下:

      BOOTPROTO=dhcp
      DEVICE=eth0
      HWADDR=52:54:00:d2:5a:83
      ONBOOT=yes
      PERSISTENT_DHCLIENT=yes
      TYPE=Ethernet
      USERCTL=no
      
    4. 重启网络服务:systemctl restart network

    5. 再次测试:ip addr,就可以看到动态的IP了

    2.如何关闭SELinux

    科普:SELinux是一个增强型的Linux,它是一个Linux的一个内核模块,是Linux的一个安全子系统。

    具体可以参读:

    一文彻底明白linux中的selinux到底是什么 - 知乎 (zhihu.com)

    关闭步骤:

    1. 首先查看SELinux的状态是否开启,使用命令:cat /etc/selinux/config

    2. 如果你的SELINUX=enforcing,说明SELinux处于开启状态

    3. SELINUX的值修改为disabled(如下)即可关闭(需要重启机器才能生效,快速重启:shutdown -r now)。

    [root@VM-16-12-centos ~]# cat /etc/selinux/config 
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.
    #     permissive - SELinux prints warnings instead of enforcing.
    #     disabled - No SELinux policy is loaded.
    SELINUX=disabled
    # SELINUXTYPE= can take one of three values:
    #     targeted - Targeted processes are protected,
    #     minimum - Modification of targeted policy. Only selected processes are protected. 
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted
    

    3.防火墙操作

    1. 查看防火墙状态systemctl status firewalldfirewall-cmd --state

    2. 查看所有开启的端口:firewall-cmd --list-ports

    3. 手动开启端口:firewall-cmd --zone=public --add-port=[端口号]/[tcp或者udp] --permanent

    4. 设置防火墙开机自启:systemctl enable firewalld.service

    5. 查看防火墙是否开机自启:systemctl is-enabled firewalld.service ;echo &?

      [root@VM-16-12-centos ~]# systemctl is-enabled firewalld.service ;echo &?
      enabled
      [1] 27811
      
      -bash: ?: 未找到命令
      [1]+  完成                  echo
      
    6. 防火墙重启:systemctl restart firewalld.service

    7. 查看防火墙版本:firewall-cmd --version

    8. 永久关闭防火墙:chkconfig iptables off

    4.lsof命令没有找到咋办

    image-20220823143849017

    有些系统一些命令是没有预先安装的,需要我们手动安装一下,巧用工具yum工具搞定,步骤如下:

    1. 先用yum search [命令] 找一下你需要安装哪个插件和工具,如这里我要找lsof相关的:

      image-20220929090719422

    2. 使用yum install [名称] 进行安装

      image-20220929090742367

    3. 等安装完成后,就可以使用这个命令了。

    4. (安装其他的命令也同理)

    5.vi编辑器设置

    vi或者vim是linux里很强大的编辑工具,具体如何使用可以百度一下,这里不详细展开。

    下面是一些常用的配置,让你的vi或者vim用起来更加丝滑。

    1. 设置行号显示
      1. 首先打开配置文件:vi ~/.vimrc
      2. 编辑输入set number
      3. 保存退出 (当你下次再打开vi的时候,就会发现显示行号了!)
    2. 设置鼠标控制光标位置
      1. 在当前编辑的文件开启,先切换到命令模式,然后输入set mouse=a,然后回车确认即可,只在本次生效。
      2. 全局配置,编辑~/.vimrc文件,在里面添加一行set mouse=a,保存即可,全局生效。
    3. 如何在docker 容器中安装vi
      1. 很多docker容器里面开始进去是没有安装vi或者vim的,为方便我们在容器内部编辑文件,可以手动安装一下该工具
      2. apt-get update
      3. apt-get install vim
      4. 待安装完即可使用

    6.文件权限修改

    文件属性信息:

    参考:

    https://www.cnblogs.com/JZjuechen/p/15689796.html

    演示:

    权限标示:r-可读,w-可写,x-可执行

    权限分配角色:u-文件创建者 g-用户所在组,o-用户组外的其他人

    7.文件的打包、压缩、解压

    参考学习:tar 解压缩命令详解_追求者2016的博客-CSDN博客_tar

    使用系统自带的 tar 工具即可完成文件的压缩与解压。

    参数说明:

    • -c: 建立压缩档案
    • -x:解压
    • -t:查看内容
    • -r:向压缩归档文件末尾追加文件
    • -u:更新原压缩包中的文件

    可选参数:

    • -z:有gzip属性的
    • -j:有bz2属性的
    • -J:具有xz属性的
    • -Z:有compress属性的
    • -v:显示所有过程
    • -O:将文件解开到标准输出

    打包

    仅打包,不压缩。

    命令:tar -cvf [打包后文件名称] [要打包的文件]

    示例:创建两个文件夹,并打包(如果打包全部文件,可以直接用*代替)

    [root@VM-16-12-centos demo]# touch d1.txt
    [root@VM-16-12-centos demo]# touch d2.java
    [root@VM-16-12-centos demo]# ll
    总用量 0
    -rw-r--r-- 1 root root 0 824 23:31 d1.txt
    -rw-r--r-- 1 root root 0 824 23:31 d2.java
    [root@VM-16-12-centos demo]# tar -cvf d.tar ./*
    ./d1.txt
    ./d2.java
    [root@VM-16-12-centos demo]# ls
    d1.txt  d2.java  d.tar
    [root@VM-16-12-centos demo]# ll
    总用量 12
    -rw-r--r-- 1 root root     0 824 23:31 d1.txt
    -rw-r--r-- 1 root root     0 824 23:31 d2.java
    -rw-r--r-- 1 root root 10240 824 23:32 d.tar
    

    压缩

    先打包,后压缩。以gzip压缩 在参数f后面的压缩文件名是自己取的,习惯上用tar来做,如果加z参数,则以tar.gz 或tgz来代表gzip压缩过的tar file文件。

    命令:tar -zcvf [打包后文件名] [-C] [指定输出父目录] [文件]

    示例:

    [root@VM-16-12-centos demo]# ls
    d1.txt  d2.java
    [root@VM-16-12-centos demo]# tar -zcvf d.tar.gz ./*
    ./d1.txt
    ./d2.java
    [root@VM-16-12-centos demo]# ls
    d1.txt  d2.java  d.tar.gz
    

    解压

    命令:tar -zxvf [压缩包] [-C] [解压位置]

    示例:

    [root@VM-16-12-centos demo]# ls
    d.tar.gz
    [root@VM-16-12-centos demo]# tar -zxvf d.tar.gz 
    ./d1.txt
    ./d2.java
    [root@VM-16-12-centos demo]# ls
    d1.txt  d2.java  d.tar.gz
    [root@VM-16-12-centos demo]# 
    

    避雷=》

    tar 的命令参数一定要写完整,否则会出现卡住,无响应的情况。

    否则会报错:

    8.多节点相ping通

    自定义主机名:hostnamectl set-hostname [主机名]

    查看主机名:hostname

    路径C:\Windows\System32\drivers\etc

    末尾添加:192.168.220.128 node1

    ping测试:打开cmd,直接ping主机名

    问题:

    linux =>win ping不通

    win => linux 可以ping通

    解决:win的防火墙没关 关闭防火墙命令:netsh advfirewall set allprofiles state off

    9.yum配置

    yum 主要功能是更方便的添加/删除/更新RPM包,自动解决包的依赖性问题,便于管理大量系统的更新问题。

    学习参考:

    https://baijiahao.baidu.com/s?id=1708418392526536542&wfr=spider&for=pc

    原装镜像源:位于/etc/yum.repos.d/CentOS-Base.repo

    优质镜像源:

    • http://mirrors.163.com/.help/centos.html
    • https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11Lrn54l

    如要修改原镜像源,请:

    1. 将下载的镜像源文件放入/etc/yum.repos.d/目录下
    2. 清除yum缓存:yum clear all
    3. 刷新:yum makecache

    补充:

    10.神奇的tail

    tail用于查看文件的内容

    常用参数:

    -f:查阅正在改变的日志文件

    原使用文档如下:

    Print the last 10 lines of each FILE to standard output.
    With more than one FILE, precede each with a header giving the file name.
    With no FILE, or when FILE is -, read standard input.
    
    Mandatory arguments to long options are mandatory for short options too.
      -c, --bytes=K            output the last K bytes; or use -c +K to output
                                 bytes starting with the Kth of each file
      -f, --follow[={name|descriptor}]
                               output appended data as the file grows;
                                 an absent option argument means 'descriptor'
      -F                       same as --follow=name --retry
      -n, --lines=K            output the last K lines, instead of the last 10;
                                 or use -n +K to output starting with the Kth
          --max-unchanged-stats=N
                               with --follow=name, reopen a FILE which has not
                                 changed size after N (default 5) iterations
                                 to see if it has been unlinked or renamed
                                 (this is the usual case of rotated log files);
                                 with inotify, this option is rarely useful
          --pid=PID            with -f, terminate after process ID, PID dies
      -q, --quiet, --silent    never output headers giving file names
          --retry              keep trying to open a file if it is inaccessible
      -s, --sleep-interval=N   with -f, sleep for approximately N seconds
                                 (default 1.0) between iterations;
                                 with inotify and --pid=P, check process P at
                                 least once every N seconds
      -v, --verbose            always output headers giving file names
          --help            显示此帮助信息并退出
          --version         显示版本信息并退出
    

    11.后台启动应用

    启动命令开头加上nohup,应用就会在后台启动,即使关掉当前窗口,程序依然运行,如要停止服务,找到程序的pid号,使用kill -9 pid号即可。

    命令后加 1>/dev/null 2>&1,表示将命令产生的输入和错误都输入到空设备,也就是不输出的意思。其中/dev/null代表空设备。

    12.查看我的应用位置

    使用whereis + [应用名]即可找到

    [root@VM-16-12-centos ~]# whereis nginx
    nginx: /usr/bin/nginx
    [root@VM-16-12-centos ~]# whereis java
    java: /usr/bin/java /usr/share/man/man1/java.1
    [root@VM-16-12-centos ~]# where is docker
    -bash: where: 未找到命令
    

    13.添加环境变量

    临时生效:使用export可以临时添加环境变量,但是当你下次开机的时候它就不在了。如:

    export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
    

    永久有效:编辑文件/etc/profile,在里面添加环境变量。(修改后要立即生效,记得运行source /etc/profile即可)

    14.虚拟机找不到ip

    如果你输入ip addr或者ifconfig没有看到自己网卡下面有对应的IP,尝试下面的步骤:

    1. 关闭NetworkManager,使用命令systemctl stop NetworkManager
    2. 重启网卡,使用命令systemctl restart network
    3. 再次查看IP(不出意外,应该可以看到IP了)

    15.运行shell脚本格式有误?

    上面的情况报错的原因是文件的换行符不对,你在win上编辑好脚本保存时换行符是CRLF,但在linux上要求换行符是LF,这时候你需要手动更正一下。

    方式1:将脚本拖出到win,然后用文本编辑器修改换行符形式,如上图。

    方式2:直接在linux里面,使用vi或者vim编辑器打开改文件,然后切换到命令模式,输入命令set ff=unix,回车执行,然后保存退出,即可完成修改。

    16.如何启动定时任务

    使用自带crontab即可实现。常用操作如下:

    • crontab -l:查看当前用户定时任务列表
    • crontab -e:编辑当前用户的定时任务
    • crontab -r:删除当前用户的定时任务

    无论是shell脚本还是python脚本,用它来做定时任务都是很方便的呢。


    本次分享到这,觉得不错三连一下哦!

  • 相关阅读:
    城市公交查询系统的设计与实现(Java+Web+MySQL+J2EE)
    户外景区亲子儿童剧本杀小程序小程序开发搭建
    cmd使用ssh连接Linux脚本
    Softing pnGate系列网关:将PROFIBUS总线集成到PROFINET网络
    夜游综合体项目赋能城市旅游形态的多样化
    C++ 手动实现单向循环链表(课后作业版)
    PHP8中final关键字的应用-PHP8知识详解
    hbase学习
    MLX90363KDC 3轴X,Y,Z 磁力计位置传感器IC
    Reflex WMS中阶系列7:已经完成拣货尚未Load的HD如果要取消拣货,该如何处理?
  • 原文地址:https://blog.csdn.net/weixin_44107140/article/details/127100708