linux下常用命令

操作系统

查看操作系统名称

[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磁盘

参考:Ubuntu20.04 移动硬盘不能访问

进程管理

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,具体含义如下:

简名全名中文名含义
atimeaccess time访问时间文件中的数据库最后被访问的时间
mtimemodify time修改时间文件内容被修改的最后时间
ctimechange 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 无秘钥登录。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值