linux命令
1.拷贝文件
功能解释
[root@bogon ~]# ll 总用量 1528 -rw-------. 1 root root 1269 3月 31 23:56 anaconda-ks.cfg -rw-r--r--. 1 root root 88 4月 1 11:49 appendonly.aof drwxrwxr-x. 6 root root 4096 7月 28 2017 redis-3.2.10 -rw-r--r--. 1 root root 1550261 7月 29 2017 redis-3.2.10.tar.gz drwxr-xr-x. 2 root root 6 4月 1 13:39 redis_cluster [root@bogon ~]# ls -i 33574991 anaconda-ks.cfg 16784427 redis-3.2.10 50929651 redis_cluster 50929643 appendonly.aof 33591826 redis-3.2.10.tar.gz [root@bogon ~]# mv redis_cluster redis_cluster2 [root@bogon ~]# ls -i 33574991 anaconda-ks.cfg 16784427 redis-3.2.10 50929651 redis_cluster2 50929643 appendonly.aof 33591826 redis-3.2.10.tar.gz
其中各列的内容意思如下
UID //用户ID、但输出的是用户名
PID //进程的ID
PPID //父进程ID
C //进程占用CPU的百分比
STIME //进程启动到现在的时间
TTY //该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。
CMD //命令的名称和参数
N 显示搜索命令定位到的上一个字符串
more -s testfile 逐页显示 testfile 之档案内容,如有连续两行以上空白行则以一行空白行显示。
more +20 testfile 从第 20 行开始显示 testfile 之档案内容。
more -3 zzz.txt 一次显示3行zzz.txt中的文件内容
head -n 10 /tmp/tmpfile 查看文件前10行
tail -n 10 /tmp/tmpfile 查看文件后10行
ls 命令用于列出目录的内容,lrt是其三个不同选项的组合:
l: 这是一个很长的内容列表,它在每一行里面显示一个文件的其他信息,比如权限,拥有者,大小,创建时间等;
t: 这个选项将输出列表按照时间排序;
r: 它将ls命令的输出进行倒序排序。
因此,当你把它们组合在一起使用的时候,就会将当前目录中的内容,按照时间顺序显示在列表中,最新的文件显示在底部。
10.查看磁盘使用情况
df -h
统计磁盘整体情况,包括磁盘大小,已使用,可用。命令“df”
[root@hfdc5 redis]$ df
文件系统 1K-块 已用 可用 已用% 挂载点
devtmpfs 24593300 0 24593300 0% /dev
tmpfs 4194304 0 4194304 0% /dev/shm
tmpfs 24605428 782532 23822896 4% /run
tmpfs 24605428 0 24605428 0% /sys/fs/cgroup
/dev/mapper/centos-root 52403200 8655276 43747924 17% /
/dev/sda1 1038336 200540 837796 20% /boot
/dev/mapper/centos-home 51989708 48513756 3475952 94% /home
tmpfs 4921088 0 4921088 0% /run/user/1001
命令"df -lh"使用这个命令会更清楚磁盘使用情况:
[csii@hfdc5 redis2]$ df -lh
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 24G 0 24G 0% /dev
tmpfs 4.0G 0 4.0G 0% /dev/shm
tmpfs 24G 765M 23G 4% /run
tmpfs 24G 0 24G 0% /sys/fs/cgroup
/dev/mapper/centos-root 50G 8.3G 42G 17% /
/dev/sda1 1014M 196M 819M 20% /boot
/dev/mapper/centos-home 50G 47G 3.4G 94% /home
tmpfs 4.7G 0 4.7G 0% /run/user/1001
查看当前目录df -h,统计每个目录下磁盘的整体情况
[csii@hfdc5 redis2]$ df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 24G 0 24G 0% /dev
tmpfs 4.0G 0 4.0G 0% /dev/shm
tmpfs 24G 765M 23G 4% /run
tmpfs 24G 0 24G 0% /sys/fs/cgroup
/dev/mapper/centos-root 50G 8.3G 42G 17% /
/dev/sda1 1014M 196M 819M 20% /boot
/dev/mapper/centos-home 50G 32G 19G 63% /home
tmpfs 4.7G 0 4.7G 0% /run/user/1001
查看当前目录每个文件夹的情况:
du -h --max-depth=1
命令:du -sh /usr/
-a: 显示目录中所有文件以及文件夹大小
-h: 以 Kb、Mb 、Gb 等易读的单位显示大小
--si: 类似 -h 选项,但是计算是用 1000 为基数而不是1024
-s: 显示目录总大小
-d: 是 --max-depth=N 选项的简写,表示深入到第几层目录,超过指定层数目录则忽略
-c: 除了显示目录大小外,额外一行显示总占用量
--time: 显示每一个目录下最近修改文件的时间
-t: 是 --threshold=SIZE 的简写,过滤掉小于 SIZE 大小的文件以及目录
--exclude=PATTERN:过滤与PATTERN匹配的文件名或者目录名
lsblk 是 List Block Devices 的缩写,它用于列出系统中的块设备(block devices),包括硬盘、SSD、U 盘等存储设备的信息。这个命令主要用于:- 查看磁盘分区结构
- 检查磁盘挂载情况
- 获取设备的 UUID、文件系统类型等信息
相比 fdisk -l 或 df -h,lsblk 提供了更加直观的树状结构,能够更清晰地展示磁盘及其分区关系。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 500G 0 disk
├─sda1 8:1 0 100G 0 part /
├─sda2 8:2 0 200G 0 part /home
└─sda3 8:3 0 200G 0 part /data
sdb 8:16 0 1T 0 disk
└─sdb1 8:17 0 1T 0 part /mnt/storage
sr0 11:0 1 4.3G 0 rom /mnt/cdrom
NAME:设备名称,例如sda代表第一个磁盘,sdb代表第二个磁盘。MAJ:MIN:主设备号和次设备号。RM(Removable):是否为可移动设备(1代表可移动,如 U 盘,0代表固定磁盘)。SIZE:磁盘或分区的大小。RO(Read-Only):是否为只读设备(1代表只读,0代表可读写)。TYPE:设备类型:disk:物理磁盘part:分区rom:光驱MOUNTPOINT:分区的挂载点。
lsblk 命令的高级用法
lsblk -d 仅显示磁盘(不包括分区) -d 选项仅显示磁盘,不包括分区信息。
lsblk 与其他磁盘管理命令对比
| 命令 | 作用 |
|---|---|
lsblk |
显示磁盘、分区信息,树状结构,简洁直观 |
fdisk -l |
显示磁盘详细分区信息,适用于磁盘分区管理 |
blkid |
获取设备 UUID、文件系统类型等 |
df -h |
查看已挂载设备的存储使用情况 |
parted -l |
显示分区信息,适用于 GPT 磁盘 |
常用命令总结
| 命令 | 作用 |
|---|---|
lsblk |
显示所有块设备 |
lsblk -d |
仅显示磁盘,不包括分区 |
lsblk -o NAME,MOUNTPOINT |
查看已挂载的设备 |
lsblk -o NAME,FSTYPE,UUID |
显示文件系统类型和 UUID |
cat /proc/meminfo 这个动态更新的虚拟文件实际上是许多其他内存相关工具 (如:free / ps / top) 等的组合显示。/proc/meminfo 列出了所有你想了解的内存的使用情况。
sudo atop atop 命令是一个终端环境的监控命令。它显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合,并且在高负载的情况下进行了彩色标注。
free -h free 命令是一个快速查看内存使用情况的方法,它是对 /proc/meminfo 收集到的信息的一个概述。
cat /etc/os-release


参数说明:
-t 表示显示TCP端口
-u 表示显示UDP端口
-l 表示显示监听状态的端口
-n 表示不解析服务名称,直接显示端口号
scp /home/app/example-release.tar.gz zhangsan@172.16.16.5:/home/app/ 将/home/app/example-release.tar.gz文件远程拷贝到172.16.16.5机器的zhangsan用户的/home/app/目录下scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music
scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music/001.mp3
scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music
scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music/001.mp3
第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
scp deploy.sh user@10.0.81.1:/home/app/run 将当前目录下deploy.sh远程拷贝到10.0.81.1机器的user用户的/home/app/run目录下。(执行后需输入密码)
scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3
scp -r www.runoob.com:/home/root/others/ /home/space/music/
scp odsftp@10.0.0.10:/ODSFILE/TMP/HIS_FILE.txt /share_file/local/his/
scp -r 文件夹名称 dmdba@10.0.0.1:/dm/soft/
[root@iZ2ze0wl2fd630j44pq50iZ app]# ls -l
总用量 359772
drwxrwxr-x 2 wxapp wxapp 4096 9月 21 09:49 wx-app
-rw-r--r-- 1 wxapp wxapp 67863417 9月 20 18:24 wx-app-release.tar.gz
drwxrwxr-x 2 wxapp wxapp 4096 9月 13 15:48 wx-eureka
-rw-r--r-- 1 wxapp wxapp 45704928 9月 13 15:48 wx-eureka-release.tar.gz
drwxrwxr-x 2 wxapp wxapp 4096 9月 13 16:19 wx-gateway
-rw-r--r-- 1 wxapp wxapp 40034173 9月 13 16:18 wx-gateway-release.tar.gz
drwxrwxr-x 2 wxapp wxapp 4096 9月 20 18:30 wx-manager
-rw-r--r-- 1 wxapp wxapp 69044106 9月 20 18:25 wx-manager-release.tar.gz
drwxrwxr-x 2 wxapp wxapp 4096 9月 20 18:30 wx-router
-rw-r--r-- 1 wxapp wxapp 78417513 9月 20 18:25 wx-router-release.tar.gz
-rw-r--r-- 1 wxapp wxapp 67312923 9月 20 18:26 wx-scheduler-release.tar.gz
[root@iZ2ze0wl2fd630j44pq50gZ wxapp]# chown -R wxapp:wxapp *
更改该目录下的所有文件和文件夹的所有权用户为wxapp,组为wxapp
chown -R lamport:users *
将目前目录下的所有文件与子目录的拥有者皆设为 users 群体的使用者 lamport :
[pisces@localhost pisces] sudo mkdir pisces
[pisces@localhost pisces] id pisces
uid=1003(pisces)gid=1003(pisces)groups=1003(pisces),10(wheel)
[pisces@localhost pisces] sudo chown -R pisces:pisces /pisces/
1. 用户身份 (uid)
-
uid:用户ID,是系统识别用户的唯一数字标识
-
1003:该用户的数字ID
-
pisces:用户名
-
含义:用户 "pisces" 在系统中的数字ID是1003
2. 主组身份 (gid)
-
gid:主组ID,用户默认所属的主要组
-
1003:主组的数字ID
-
pisces:主组名
-
含义:用户 "pisces" 的主组也叫 "pisces",组ID是1003
3. 所有所属组 (groups)
-
用户 "pisces" 同时属于以下两个组:
组1:1003(pisces)
-
这是用户的主组,每个用户至少属于自己的主组
组2:10(wheel)
-
10:wheel 组的数字ID
-
wheel:组名
-
重要含义:wheel 组通常拥有管理员权限(sudo权限)
权限分析总结
基于这个输出,我们可以得出以下结论:
✅ 用户 "pisces" 拥有:
-
普通用户权限 - 通过主组 pisces
-
管理员权限 - 通过 wheel 组成员身份
-
可以使用
sudo命令执行管理员操作 -
可以切换到 root 用户
-
总结
这个输出告诉我们:
-
"pisces" 是一个普通用户(UID 1003)
-
但拥有管理员权限(因为属于 wheel 组)
-
可以执行需要 root 权限的命令
-
是一个标准的有特权用户账户
这是 Linux 系统中一种常见的安全做法:让普通用户通过组成员关系来获得管理员权限,而不是直接使用 root 账户。
文件描述符编号:
0 = 标准输入 (stdin)
1 = 标准输出 (stdout)
2 = 标准错误 (stderr)
>/dev/null 的含义
/dev/null 是空设备(黑洞设备),写入其中的数据会被丢弃
> 是重定向符号(覆盖)
>> 是追加重定向
2> 表示重定向文件描述符2(stderr)
2>/dev/null 的效果
将命令的错误输出重定向到空设备,即丢弃所有错误信息,不在终端显示。
# 运行命令,只显示正常输出,隐藏错误信息
ls /nonexistent 2>/dev/null
# 如果没有错误重定向,会显示:ls: cannot access '/nonexistent': No such file or directory
# 使用后,什么也不显示(因为正常输出和错误输出都没有)
# 查找文件,不显示"Permission denied"等错误
find / -name "*.conf" 2>/dev/null
# 正常输出到文件,错误信息丢弃
command > output.txt 2>/dev/null
# 正常输出丢弃,错误信息保存到文件
command 2> error.log >/dev/null
# 正常输出到文件,错误信息到另一个文件
command > stdout.txt 2> stderr.txt
# 错误信息追加到日志文件
command 2>> /var/log/error.log
#!/bin/bash
# 尝试创建目录,如果已存在也不显示错误
mkdir /tmp/mydir 2>/dev/null
浙公网安备 33010602011771号