Linux命令与工具

一.用户与用户组管理

1.1用户管理

1.添加用户

# 创建新用户gzh,指定用户目录为/usr/gzh并自动创建登录目录,id为876
useradd -d /usr/gzh -m gzh -u 876
# 查看新建用户的属性信息
tail -l /etc/passwd
# 查看root相关的属性信息
grep root /etc/passwd

image-20230907101025253

image-20230907101044129

2.设置用户密码

# 为gzh用户设置密码
[root@gzh-8 ~]# passwd gzh
更改用户 gzh 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

3.删除用户

# 强制删除用户gzh及其相关文件
userdel -rf gzh

4.修改用户信息

# 修改用户gzh的用户id为678
usermod -u 678 gzh

1.2用户组管理

1.新增用户组

# 创建用户组guo1,指定组id为550
groupadd -g 550 guo1

2.删除用户组

# 删除组guo1
groupdel group1

3.修改用户组属性

# 新建组ID为550的用户组group1,修改组id,修改组名
groupadd guo1 -g 550
groupmod -o itheima -g 550
groupmod gou1 -n itcast

4.用户组切换

# 切换root的工作组为itcast
newgrp itcast

5.用户组管理

# 将用户itheima添加到用户组itcast
gpasswd -a itheima itcast

1.3用户切换

1.su

# 从用户切换到root
su
# 从用户切换到root并更改工作目录
su -
# 从用户切换到gzh
su -m gzh

image-20230907103002069

2.sudo

# 如果再普通用户下打开高于去自身权限的文件,可以使用sudo打开,但是用户必须再sudoers里面进行权限设置,不然会出现下面的报错
sudo vi /etc/passwd

image-20230907103447670

# 我们需要先用root使用visudo打开sudoers文件,在里面添加我们的用户
visudo

我们可以找到下面的这个语句

image-20230907103636821

我们需要添加下面两条语句

gzh ALL=(root) /bin/more
%gzh ALL=(root) /bin/more

二.文件管理

2.1文件操作

1.pwd

查看当前所在目录

image-20230907104309951

2.cd

进入指定目录

image-20230907104502752

3.ls

列出目录文件

image-20230907104551535

4.touch

创建文件

image-20230907110335789

5.mkdir

创建文件夹

image-20230907110439043

6.cp

复制文件

image-20230907110515249

7.rm

删除文件或目录

image-20230907110612704

8.mv

移动文件或目录,或重命名

image-20230907110749132

2.2查看文件

1.cat

查看文件内容

image-20230907110852927

2.more

分页查看文件内容

image-20230907110947846

3.less

也是分页查看内容

image-20230907111104007

4.head

查看文件的前几行

image-20230907111235107

5.tail

查看文件后几行的内容

image-20230907111352724

6.wc

计算文件的字节数,字数,列数

image-20230907111450741

2.3文件搜索

1.which

查看指定命令的绝对路径

image-20230907111603160

2.find

搜索指定目录下的文件

image-20230907111700446

2.4权限管理

1.chmod

改变文件和目录的权限

image-20230907112011157

2.chown

改变文件和目录的所属人

image-20230907112135572

3.chgrp

改变文件和目录的所属组

image-20230907112321354

2.5压缩解压

1.打包

打包文件

image-20230907112605077

2.压缩与解压

压缩文件与解压

tar -zcvf test.tar ./gzh
tar -zcvf test.tar.gz ./gzh
tar -jcvf test.tar.bz2 ./gzh
tar -zxvf test.tar

三.存储管理

1.分区的添加,格式化和挂载

# 对sdb进行分区格式化和挂载
# root @ lingkong in ~ [23:37:19] 
$ fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): p
已选择分区 4
起始 扇区 (5220352-41943039,默认为 5220352):
将使用默认值 5220352
Last 扇区, +扇区 or +size{K,M,G} (5220352-41943039,默认为 41943039):+500M
分区 4 已设置为 Linux 类型,大小设为 500 MiB
命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
# 格式化
mkfs.xfs /dev/sdb1
# 挂载
mount /dev/sdb1
# 永久挂载
vim /etc/fstab
/dev/sdb1 /mnt xfs default 0 0
:wq
mount -a

2.逻辑卷的创建,格式化和挂载

# 创建分区
# root @ lingkong in ~ [23:40:05] C:1
$ fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):t
分区号 (1-4,默认 4):1
Hex 代码(输入 L 列出所有代码):l

 0  空              24  NEC DOS         81  Minix / 旧 Linu bf  Solaris        
 1  FAT12           27  隐藏的 NTFS Win 82  Linux 交换 / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 隐藏的 C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx         
 5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据 
 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具      
 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
 9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问       
 a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC  
11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要       
16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动
1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep        
1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT            
1e  隐藏的 W95 FAT1 80  旧 Minix       
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
# 创建物理卷(pv)
pvcreate /dev/sdb1 /dev/sdb2
# 创建卷组(vg)
vgcreate vg1 /dev/sdb1 /dev/sdb2
# 创建逻辑卷(lv)
lvcreate -n lv1 -L +2.5G vg1
# 格式化
mkfs.xfs /dev/vg1/lv1
# 挂载
mount /dev/vg1/lv1 /mnt

四.进程管理

进程管理命令

ps #查看正在运行的进程
top #动态显示正在运行的进程
pstree #树状查看正在运行的进程
pgrep #用于查找进程
nice #更改进程的优先级
jobs #显示进程的相关信息
bg 和 fg #将进程调入后台
kill #杀死进程

五.服务管理(centos8)

这里以sshd.service为例

1)查看服务状态

systemctl status sshd.service

2)启动服务

systemctl start sshd.service

3)重启服务

systemctl restart sshd.service

4)关闭服务

systemctl stop sshd.service

5)重载服务

reload也叫平滑重启,正在连接的用户是没有感觉的,只有当用户再次连接时,会启用新的配置。

systemctl reload sshd.service

6)开机启动

systemctl enable sshd.service

7)开机不启动

systemctl disable sshd.service

8)查看是否开机启动

systemctl is-enable sshd.service

9)是否在启动状态

systemctl is-active sshd.service

10)重载systemd服务列表

systemctl daemon-reload

重启网络服务

nmcli connection reload

六.包管理

1.rpm包管理

# 查看安装的所有软件包
rpm -qa
# 安装一个包
rpm -ivh  
# 升级一个包 
rpm -Uvh  
# 移走一个包:
rpm -e

2.yum包管理

# 下载httpd包
yum -y install httpd
# 更新httpd包
yum -y update httpd
# 删除httpd包
yum -y remove httpd

配置本地yum源

# 挂载镜像到本地
mount /dev/sr0 /media
# 配置本地源文件
cd /etc/yum.repos.d
mkdir ../bak
cp *.repo ../bak
cp Centos-Linux-BaseOS.repo cdrom.repo
rm -f Centos*
vi cdrom.repo

# 修改内容
[cdrom]
name=cdrom
baseurl=file:///media/BaseOS
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

# 清理源
yum clean all
yum makecahce

配置镜像yum源

# 下载源文件
cd /etc/yum.repos.d
curl -O http://mirrors.aliyun.com/repo/Centos-8.repo
# 清理源
yum clean all
yum makecache

编写配置镜像源的脚本

cd /tmp/
vi mr.sh

# 文件内容

#!/bin/bsh

# 进入yum.repos.d,并下载镜像源文件
cd /etc/yum.repos.d
curl -O http://mirrors.aliyun.com/repo/Centos-8.repo
# 清理yum源
yum clean all
yum makecache


# 执行脚本
bash mr.sh

七.vim文件操作

image-20230912114913083