0%

Linux常用命令总结

常用的CentOS及Ubuntu命令总结,方便查看与记忆。

Linux常用命令

(1)查看DNS记录的命令(A记录、MX记录)

1
2
3
yum install bind-utils

dig +noall +answer www.leezy.top

(2) 查看端口常用命令:

1
netstat -lnp|grep 80

(3) 查看版本

1
2
ll /etc/*centos*
cat /etc/centos-release

(4) 查看内核
经常在执行 yum udpate 命令后CentOS会出现多个启动项,所以我们经常要删除:

1
2
3
4
5
6
7
8
# 查看当前系统正在使用的内核版本
uname -a
# 查看当前系统的全部Kernel
rpm -q kernel
# 删除多余的内核启动项
yum remove kernel-3.10.0-957.el7.x86_64
# 重新启动
reboot

(5) 修改主机名

1
2
3
hostnamectl set-hostname NAME
# 重启机器
reboot

CentOS Minimal版本配置

换源:

http://mirrors.163.com/.help/centos.html

安装软件

1
2
3
yum install net-tools
yum install wget
yum install vim

配置JAVA环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
vim /etc/profile

# 在文件末尾添加环境配置
export JAVA_HOME=/usr/jdk-11.0.2
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
# 使新的环境生效
source /etc/profile

# 当Java版本更新时,仅仅修改JAVA_HOME的路径是不够的,需要删除链接
which java
/usr/jdk_xxx/bin/java

which javac
/usr/jdk_xxx_/bin/javac

# 删除链接
rm -rf /usr/jdk_xxx/bin/java
rm -rf /usr/jdk_xxx_/bin/javac

# 再执行使得新环境生效
source /etc/profile

GitLab CE版安装

新建 /etc/yum.repos.d/gitlab-ce.repo,内容为:

1
2
3
4
5
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

再执行:

1
2
3
4
5
6
7
8
9
10
11
sudo yum install curl openssh-server openssh-clients postfix cronie
sudo service postfix start
systemctl enable postfix.service
(yum install lokkit)
sudo lokkit -s http -s ssh

sudo yum makecache
sudo yum install gitlab-ce

[[启动GitLab]]
sudo gitlab-ctl reconfigure

常用的网络配置

修改DNS(貌似会重启失效)

1
vim /etc/resolv.conf

修改IP地址

1
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3

清理内存

1
2
3
4
echo 3 > /proc/sys/vm/drop_caches

# 查看内存使用情况
free -h

Docker安装及配置

Docker官方文档访问这里

阿里云安装文档这里
Docker安装

1
2
# 仅公网环境,使用官方安装脚本
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

由于直接使用DockerHub下载的速度很慢,所以可以使用阿里云的容器镜像加速服务,阿里云配置地址访问网址这里

1
2
3
4
5
6
7
8
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["加速器地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

这样就可以快速的使用Docker pull 等命令了。
清理Dcoker 容器:

1
docker system prune

开放防火墙端口

1
2
3
4
5
6
7
8
9
10
# 查看所有开放的端口
firewall-cmd --list-ports
# --permanent 永久生效
firewall-cmd --zone=public --add-port=9092/tcp --permanent
# 重新载入
firewall-cmd --reload
# 查看
firewall-cmd --zone=public --query-port=80/tcp
# 删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent

Putty连接Ubuntu虚拟机

首先确保自己有root权限

1
2
# 设置root密码
sudo passwd
  1. 首先配置Host-Only网卡,然后点击
    VirtualBox 配置
    VirtualBox Host Only 配置

  2. 登入虚拟机使用ifconfig -a命令, 发现会有三个网卡(lo-本地、enp0s3-NET、enp0s8-Host-Only), 但是Host-Only没有IP地址

  3. 输入sudo dhclient enp0s8, 即可获取IP地址

  4. Ubuntu 18.0新版后, /etc/network/interfaces的文件配置已经被弃用, vim /etc/netplan/50-cloud-init.yaml

配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
enp0s3:
dhcp4: true
enp0s8:
dhcp4: false
addresses: [192.168.56.101/24]
nameservers: {}
optional: true
version: 2
~

修改完以后直接执行 sudo netplan apply

  1. 重启ssh服务
    1
    service ssh restart

Linux运维常用命令

  • Linux文件管理
    df 检查文件系统的磁盘空间占用情况,删除的文件但是还有程序在使用的时候会进行显示。这个命令会比du命令大。
    du 对文件和目录磁盘使用的空间查看,不包含已经删除的文件,命令执行结果小于或等于df
    常用的命令如下

    1
    2
    3
    4
    # 以GB MB KB的格式查看文件
    df -h
    # 查看文件节点数
    df -i
  • Linux文件压缩与解压

    1
    2
    3
    4
    # 文件压缩 tar -zcvf <压缩包名称> <要压缩的文件路径或者文件名>
    tar -zcvf my.tar.gz my.txt
    # 文件解压
    tar -xzvf my.tar.gz
  • xargs 将命令输出的结果作为一个参数传递给另一个命令

找出/目录下以.conf结尾的文件,并进行文件分类。

1
find / -name *.conf -type f -print | xargs file
  • 命令或者脚本后台运行
    数据库的导入导出操作,耗时较久。

    1
    nohup mysqldump -uroot -pXXX --all-databases > ./alldatabases.sql &

    命令后台执行的结果会在命令执行的当前目录下留下一个nohup.out文件,查看这个文件就可以知道命令有没有执行报错等信息。

  • 找出当前系统资源使用量较高的进程

1
2
3
4
# 内存使用量前3
ps -ef | sort -rnk 4 | head -3
# CPU使用量前3
ps -ef | sort -rnk 3 | head -3
  • VIM 使用技巧

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 显示当前行数
    :set nu
    # 跳到指定行 - 80
    :80gg
    :80G
    # 第一行
    :gg
    # 最后一行
    :G
  • wc 命令

    1
    2
    3
    4
    # 统计文件的 行数,单词数,字节数
    wc <file>
    # 统计行数
    wc -l <file>
  • sh -c
    它可以让 bash 将一个字串作为完整的命令来执行。

    1
    sh -c
  • netstat命令

1
2
# 查看指定端口占用情况
netstat -anp | grep -i "8080"
  • curl用法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-X 指定请求方法
-x 指定HTTP请求的代理
-H 指定请求标头
-d 发送POST请求提交的数据,使用-d参数后,会自动将请求转为POST,HTTP请求会自动加上标头Content-Type:application/x-www-form-urlencoded,可省略-X POST
-v 显示http通信的整个过程
-u 设置服务器认证的用户名和密码

-i 显示Response头信息,并打印源码
-I 显示Response头信息,不打印源码

-s 不输出错误和进度信息
-S 指定只输出错误信息

-L 自动跳转,curl默认不跟随跳转
-k 跳过SSL检测

-o 文件名 保存
-O 将URL的最后部分当作文件名保存
  • grep 命令

-i 忽略大小写
-n 显示结果所在行号
-v 反向查询
-e 多个选项匹配
-w 匹配整个单词,如果字符串中包含整个单词,并不匹配
-E 对应正则表达式,也可以实现或的操作
-a 让二进制文件等价于文本文件

1
2
3
4
5
6
7
# 多个 -e 实现or的操作
grep -e true -e false test.txt
# </dev/tcp/ip/7550是判断ip在7550端口的连通性,将结果输出到/dev/null这个黑洞,然后错误信息也输出到这里
# 在Linux中0表示标准输入,1表示标准输出,2表示标准错误
sh -c "</dev/tcp/$local_ip/7550" >/dev/null 2>&1

grep -a '^uyun.baseurl='
  • curl 命令

    1
    2
    3
    4
    # 判定指定url的连通性
    curl -v
    # 当发生错误的时候返回错误信息
    curl -sS
  • sed 命令

1
2
# 将test.txt的false改为true
sed -i `s/false/true/g` test.txt
  • Linux查看CPU、内存

    1
    2
    3
    4
    5
    6
    # 查看总内存
    cat /proc/meminfo | gerp MemTotal
    # 查看CPU核数
    grep 'physical id' /proc/cpuinfo | sort | uniq | wc -l
    # 查看CPU的型号 - uniq -c 统计出现的次数
    cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
  • awk 命令

    1
    2
    # 根据分隔符查找内容
    awk -F '=' '{print $1}'
  • 查看进程内存排名

1
ps -aux --sort --rss