当前位置: 首页 > news >正文

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脚本,用它来做定时任务都是很方便的呢。


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

相关文章:

  • pytorch深度学习训练模板(分类、回归)
  • CSS进阶篇——伪类 (pseudo classes)
  • 基于affine+sift特征提取的图像配准算法matlab仿真
  • 【重温Linux】一、Ubuntu系统一些常识性的东西(这节持续更新)
  • Redis安装,性能优化
  • mysql group_concat 与 union 联合查询漏洞,数据列最大长度为341
  • 机器学习基础:统计量与抽样分布
  • 工作中整理的常用的Linux命令
  • Vue2和Vue3的区别——实例创建、响应式数据代理、v-for和v-if优先级、生命周期
  • 跑步装备推荐:2022年跑步装备选购清单
  • 多线程(进阶)
  • 如何学习HTML5 需要掌握哪些技能
  • Dinky,让 Flink SQL 纵享丝滑
  • Docker | docker容器导出以及常见问题的处理
  • 【云原生之Docker实战】使用Docker部署Pichome个人相册系统
  • Node.js 入门教程 13 在 Node.js 中从命令行接收输入
  • MyBatis-Plus中的更新操作(通过id更新和条件更新)
  • easy-rules规则引擎最佳落地实践
  • 看我如何连夜自建网站背刺我的求职对手们
  • 027.将有序数组转换为二叉搜索树
  • 第五届传智杯-初赛【B组-题解】
  • 最全面的SpringMVC教程(一)——SpringMVC简介
  • OpenCV-Python小应用(六):车道线检测
  • 微信小程序介绍
  • matlab实现MCMC的马尔可夫转换MS- ARMA - GARCH模型估计