操作系统
查看操作系统名称
[root@host-192-168-8-254 etc]# cat /etc/os-release
NAME="openEuler"
VERSION="22.03 LTS"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 LTS"
ANSI_COLOR="0;31"
切换root
sudo -
使用hostnamectl命令:
[root@host-192-168-8-254 etc]# hostnamectl
Static hostname: n/a
Transient hostname: host-192-168-8-254
Icon name: computer-vm
Chassis: vm
Machine ID: bbf4007b06d94cffbc17b9e04a0da009
Boot ID: db4b3448c1e840b1a01a604255c3da5b
Virtualization: kvm
Operating System: openEuler 22.03 LTS
Kernel: Linux 5.10.0-60.18.0.50.oe2203.aarch64
Architecture: arm64
Hardware Vendor: QEMU
Hardware Model: KVM Virtual Machine
修改主机名
hostnamectl set-hostname node1
使用uname -a命令:
[root@host-192-168-8-254 etc]# uname -a
Linux host-192-168-8-254 5.10.0-60.18.0.50.oe2203.aarch64 #1 SMP Wed Mar 30 02:43:08 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
通过 /proc/version 文件查看系统信息
[root@host-192-168-8-254 etc]# cat /proc/version
Linux version 5.10.0-60.18.0.50.oe2203.aarch64 (abuild@obs-worker-002) (gcc_old (GCC) 10.3.1, GNU ld (GNU Binutils) 2.37) #1 SMP Wed Mar 30 02:43:08 UTC 2022
CPU
查看cpu信息lscpu
lscpu
内存磁盘
free查看内存使用
free -h
df查看磁盘使用
df -h
查看总磁盘占用量
df -hl
查看某个文件夹下每个文件大小
ls -l
# 按照M显示
ls -l --block-size=m
查看文件夹下每个目录的情况
# 查看当前文件
du -sh .
# 查看指定文件夹
du -sh /home/*
du查看文件夹和文件占用大小
du -ah --max-depth=1 /etc/httpd
# 查看当前目录
du -ah --max-depth=1 .
磁盘管理
查看磁盘信息
fdisk -l
# 或者lsblk
lsblk
挂在移动硬盘
参考:【Ubuntu】Ubuntu18.04无法识别移动硬盘、U盘解决方法
如果我现在想挂载倒数第四行的sdc1的话,输入以下命令:
sudo mkdir usb
sudo mount /dev/sdc1 /usb
mount后面的/dev/sdc1是设备的名称(由lsblk查得),/usb指的是你要挂载到哪个文件夹,这两个参数按个人实际情况决定
挂载其实可以理解为让U盘挂载我们电脑上某一个文件夹下,这个文件夹作为一个接口,帮助我们访问U盘。
因此我们首先需要创建一个名字为usb的文件夹,然后用mount将sdc1挂载到usb文件夹内,这样我们就可以通过访问usb来查看U盘里的内容。
ubuntu无法是被ntfs磁盘
进程管理
ps 显示当前进程状态类似于window的任务管理器
# 查看本机运行的所有java进程
ps -ef|grep java
# 或者
ps -aux|grep java
jps jdk自带进程
# 查看本机运行的java进程情况
jps
杀死进程
kill -9 pid
# 杀死所有进程
killall -9 java
vi/vim 命令
三种工作模式
命令模式
(Command mode)
命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能
此模型下,不能自由进行文本编辑输入模式
(insert mode)
也就是所谓的编辑模式,插入模式,需要输入i
才能开始编辑
此模式下,才可以对文本内容进行自由编辑底线命令模式
(Last line mode)
以:
开始,通常用于文件的保存,退出。
:q
退出
:w
保存
:wq
保存退出
:wq!
强制保存退出
在明亮模式下按下**shift+zz
**可以实现快速的保存退出
打开文件
# 如果打开文件不存在则新建文件
vim /path/file
光标移动
- 方向键控制移动
- 翻页 pageup pagedown
- 行首(home 0)行尾(end $)
- 跳到文件的最后一行 G
- 跳到文件的第一行 gg
复制针贴
- 复制
yy 复制光标当前所在行的内容
nyy 复制当前行往下n行 - 粘贴
p 当前行的下一行粘贴
P 当前行的上一行粘贴
删除命令
dd 删除光标所在当前行内容
ndd 删除当前行往下n行
撤销、反撤销
u 撤销上一步的操作(后悔药)
ctrl+r 反撤销
文件操作
挂在目录
ln -s /userdata/oem /oem
压缩tar.gz
tar -zcvf tarame.tar.gz *
解缩tar.gz
tar -zxvf tarame.tar.gz *
压缩zip
zip -r ${BUILD_DIR}/test.zip ./oem
unzip解压缩
unzip -o /tmp/test.zip -d /tmp/
cp -rp /tmp/oem/* /oem/
unpack解压缩
unpack -o -P pwd1324 /tmp/test.zip -d /
查看文件夹下面多少个文件
ls -l | grep "^-" | wc -l
拷贝一个文件到多个文件夹
同时把redis.conf拷贝到7001,7002,7003三个文件夹
echo 7001 7002 7003 | xargs -t -n 1 cp redis-6.2.4/redis.conf
一键修改多个文件的同一个参数
一键修改7001 7002 7003 8001 8002 8003中6379替换问与所在目录一致
比如/tmp/7001/redis.conf中的6379改为7001
printf '%s\n' 7001 7002 7003 8001 8002 8003 | xargs -I{} -t sed -i 's/6379/{}/g' {}/redis.conf
SED命令修改文件内容
修改配置文件redis.conf,将端口6379改为7001,将rdb文件保存位置"dir ."修改为dir /tmp/7001/
sed -i -e 's/6379/7001/g' -e 's/dir .\//dir \/tmp\/7001\//g' 7001/redis.conf
echo输出到文件
echo 111 > 1.txt
多文件操作,一键启动多个程序
主要用于redis分片集群
printf '%s\n' 7001 7002 7003 8001 8002 8003 | xargs -I{} -t redis-server {}/redis.conf
查找30天前的文件
find / -mtime +30 # 查找修改时间在30天前的文件
# 显示20分钟前的文件
find /home -type f -mmin +20 -exec ls -l {} \;
显示20天前的文件
find /home -type f -mtime +20 -exec ls -l {} \;
下面为find命令的参数说明:
- -name
按照文件名查找文件。 - -perm
按照文件权限来查找文件。 - -prune
使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。 - -user
按照文件属主来查找文件。 - -group
按照文件所属的组来查找文件。 - -mtime -n +n
按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。 - -nogroup
查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。 - -nouser
查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。 - -newer file1 ! file2
查找更改时间比文件file1新但比文件file2旧的文件。 - -type
查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount:在查找文件时不跨越文件系统mount点。
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
删除前一分钟文件
# 删除一分钟前 /tmp/warn/目录下所有文件
find /tmp/warn/ -type f -mmin +1 -name "*" -exec rm -rf {} \;
# 删除一分钟前 /tmp/warn/目录下所有图片
find /tmp/warn/ -type f -mmin +1 -name "*.jpg" -exec rm -rf {} \;
删除前几天文件
# 删除前7天的文件
find logs/ -type f -mtime +7 -exec rm -f {} \;
# 删除前7天的文件夹
find logs/ -type d -mtime +7 -exec rm -f {} \;
日期时间
linux下文件有3个时间,分别是atime, mtime, ctime,具体含义如下:
简名 | 全名 | 中文名 | 含义 |
---|---|---|---|
atime | access time | 访问时间 | 文件中的数据库最后被访问的时间 |
mtime | modify time | 修改时间 | 文件内容被修改的最后时间 |
ctime | change time | 变化时间 | 文件的元数据发生变化。比如权限,所有者等 |
date命令查看时间
date
date -s
cal命令显示当前日历
cal
namespace mirrors.aliyun.com 无法解析域名
定位到 /etc
sudo vim /etc/resolv.conf
在此配置文件中加入阿里巴巴提供的DNS域名解析
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 223.5.5.5
nameserver 223.6.6.6
保存退出
网络
修改虚拟机网络
# 修改ip地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR="192.168.0.33"
# 重启网卡
systemctl stop network
systemctl start network
# 或者直接
systemctl restart network
远程连接
SSH经常过一会就断开
解决:
vim /etc/ssh/sshd_config
# 找到下面两行
#ClientAliveInterval 0
#ClientAliveCountMax 3
# 去掉注释改为如下
ClientAliveInterval 30 # 客户端每隔多少秒向服务发送一个心跳数据
ClientAliveCountMax 1800 # 客户端多少秒没有响应,服务器自动断开连接
重启sshd服务
service sshd restart
集群同步脚本 xsync
可以同步文件,同步操作
ssh免密登录
ssh-copy-id 命令可以把本地主机的公钥复制并追加到远程主机的 authorized keys 文件中,ssh-copy-id 命令也会给远程主机的用户主目录(home)和 ~ /.ssh,和~/.ssh/authorized_keys设置合适的权限。
(1)分别在三个节点中执行以下命令,生成秘钥文件:
cd ~/.ssh/… #·若没有该目录,请先执行一次ssh localnost,默认输入yes通过
ssh-keygen -t rsa #生成秘钥文件,会有提示,都按回车就可以。
(2)分别在三个节点中执行以下命令,将公钥信息拷贝并追加到对方节点的授权文件authorized_keys中:
ssh-copy-id centos01
ssh-copy-id centos02
ssh-copy-id centos03
最后测试 SSH 无秘钥登录。。