目录操作
查找文件
find
manual 手册
man menu 菜单
-size [+|-]#UNIT #常用单位:k, M, G,c(byte),注意大小写敏感 +大于 -小于
-type TYPE
TYPE可以是以下形式:
f: 普通文件 file -
d: 目录文件
l: 符号链接文件
s:套接字文件
b: 块设备文件
c: 字符设备文件
p: 管道文件
-user USERNAME #查找属主为指定用户(UID)的文件
-group GRPNAME #查找属组为指定组(GID)的文件
-uid UserID #查找属主为指定的UID号的文件
-gid GroupID #查找属组为指定的GID号的文件
-nouser #查找没有属主的文件
-nogroup #查找没有属组的文件
-name "文件名称" #支持使用glob,如:*, ?, [], [^],通配符要加双引号引起来
-inum n #按inode号查找
-links n #链接数为n的文件
dd if=/dev/zero of=/opt/file1 bs=100M count=1
dd: 命令 复制
if 从哪个文件复制
of 复制到哪里
bs 复制的大小
count 复制的次数
[root@test1 opt]# find /etc/ -name passwd
#查找名字叫 passwd的文件
/etc/pam.d/passwd
/etc/passwd
[root@test1 opt]# find /etc/ -name *.conf
#查找所有.conf 结尾的 ,不要在当前路径下找自己路径下的文件
/etc/resolv.conf
/etc/fonts/conf.d/57-dejavu-serif.conf
/etc/fonts/conf.d/65-1-vlgothic-gothic.conf
/etc/fonts/conf.d/31-cantarell.conf
/etc/fonts/conf.d/65-0-lohit-nepali.conf
/etc/fonts/conf.d/59-liberation-mono.conf
/etc/fonts/conf.d/65-0-lohit-bengali.conf
/etc/[root@test1 opt]# find /mnt -user root
#查找 用户为root的用户
/mnt
/mnt/abc
/mnt/ad
/mnt/ad/ad2
/mnt/ad/ad2/bbbbb.txt
/mnt/zhangsanlianjie
[root@test1 opt]# find -size 1k
# 0.1字节 到 1k
./rh
./rh/aaa
[root@localhost boot]# find ./ -name "vm*"
#查找vm开头的
[root@localhost boot]# find /boot/ -size -10M -a -name "*img"
#小于10M 的img文件
[root@localhost etc]# find /etc/ -maxdepth 2 -mindepth 2
#只看第二级目录
[root@localhost opt]# find /boot -d
#先显示 文件在显示目录
#找/home 下属于zhangsan的文件并列出属性
[root@localhost opt]# find /home -user zhangsan -ls
#找/home 下属于zhangsan的文件并列出属性
[root@localhost opt]# useradd hehe
[root@localhost opt]# userdel hehe
[root@localhost opt]# ls /home/
hehe mysql zhangsan
[root@localhost opt]# ll /home/
总用量 0
drwx------. 3 1002 1002 78 8月 26 09:27 hehe
drwx------. 3 mysql mysql 78 8月 25 11:45 mysql
drwx------. 3 zhangsan zhangsan 78 8月 6 20:57 zhangsan
[root@localhost opt]# find /home/ -nouser
#找home下的无主文件夹
/home/hehe
/home/hehe/.mozilla
/home/hehe/.mozilla/extensions
/home/hehe/.mozilla/plugins
/home/hehe/.bash_logout
/home/hehe/.bash_profile
/home/hehe/.bashrc
#或与且的优先级
[root@localhost opt]# find /etc/ -type d -o -type l |wc -l
1008
[root@localhost opt]# find /etc/ -type d -o -type l -ls |wc -l
1008
[root@localhost opt]# find /etc/ -type d -o -type l -a -ls |wc -l
274
[root@localhost opt]# find /etc/ \( -type d -o -type l \) -a -ls |wc -l
1008
[root@localhost opt]# find -size 1G
#查找1G的文件会把所有都显示出来
.
./100.img
./99.img
#按大小查找新建两个文件
[root@localhost opt]# dd if=/dev/zero of=99.img bs=99M count=1
[root@localhost opt]# dd if=/dev/zero of=100.img bs=100M count=1
[root@localhost opt]# ls
100.img 99.img
[root@localhost opt]# find -size 100M
./100.img
[root@localhost opt]# find /opt/ -size 100M
/opt/100.img
[root@localhost opt]# ll 99.img
-rw-r--r--. 1 root root 103809024 8月 26 10:02 99.img
[root@localhost opt]# echo >>99.img
[root@localhost opt]# ll 99.img
-rw-r--r--. 1 root root 103809025 8月 26 10:03 99.img
[root@localhost opt]# find /opt/ -size 100M
/opt/100.img
/opt/99.img
#这是应为linux中的100M不是正好100M 是99开始不包括99到100(99-100]
#思考 1024M 和 1G 一样么?
1024M 代表 1023M - 1024M 不包括1023
1G 表示 0G -1G 不包括0G
-size 10k 表示9k 到10k 且不包括9k
-size -10k 表示9k 以内 包括9k
-size +10k 表示10k 以上 不包括 10k
#权限查找 -perm
[root@localhost opt]# find -perm 644
./100.img
./99.img
./a.txt
[root@localhost opt]# find -name "*.img" -delete
#找到并删除(找到name为什么并且删除)要加引号
############处理动作#############################
-print:默认的处理动作,显示至屏幕
-ls:类似于对查找到的文件执行"ls -dils"命令格式输出
-fls file:查找到的所有文件的长格式信息保存至指定文件中,相当于 -ls > file
-delete:删除查找到的文件,慎用!
-ok COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认
-exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令{}: 用于引用查找到的文件名称自身
[root@localhost opt]# find -name "*.txt" -ok mv {} /mnt \;
[root@localhost opt]# find -name "*.txt" -exec mv {} /mnt \;
#以“天”为单位
-atime [+|-]#
# #表示[#,#+1)
+# #表示[#+1,∞]
-# #表示[0,#)
-mtime
-ctime
#以“分钟”为单位
-amin
-mmin
-cmin
find -mtime 10
#10天到11天
find -mtime +10
#代表11天以上
find -mtime -10
#10天以内
标准输入输出
input 输入 键盘 鼠标 窗口里实际完成操作的事终端窗口
一个命令结束有输出 也是靠终端窗口
错误命令是输出,标准错误
output 输出 屏幕
标准输入 标准错误 标准输出 终端窗口 当前使用的
[root@localhost data]# ll /dev/std* lrwxrwxrwx. 1 root root 15 8月 26 21:15 /dev/stderr -> /proc/self/fd/2 lrwxrwxrwx. 1 root root 15 8月 26 21:15 /dev/stdin -> /proc/self/fd/0 lrwxrwxrwx. 1 root root 15 8月 26 21:15 /dev/stdout -> /proc/self/fd/1 [root@localhost data]# tty ###当前终端 /dev/pts/1 [root@localhost data]# ll /proc/self/fd/2 lrwx------. 1 root root 64 8月 27 00:57 /proc/self/fd/2 -> /dev/pts/1 [root@localhost data]# ll /proc/self/fd/1 lrwx------. 1 root root 64 8月 27 00:57 /proc/self/fd/1 -> /dev/pts/1 [root@localhost data]# ll /proc/self/fd/0 lrwx------. 1 root root 64 8月 27 00:57 /proc/self/fd/0 -> /dev/pts/1 [root@localhost ~]# ls > /dev/pts/0 #传给终端0 [root@localhost ~]# xxxx 2> /dev/pts/0 #错误重定向 #将命令结果传入一个文件
重定向 redirect
改变方向
标准输入 重定向
ls > /dev/pts/1
参数替换 xargs
由于很多命令不支持管道|来传递参数,xargs用于产生某个命令的参数,xargs 可以读入 stdin 的数
据,并且以空格符或回车符将 stdin 的数据分隔成为参数
另外,许多命令不能接受过多参数,命令执行可能会失败,xargs 可以解决
注意:文件名或者是其他意义的名词内含有空格符的情况
单独使用xargs是将键盘上的输入输出在屏幕上
[root@localhost opt]# ls /opt
10.txt 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
#我不想固定后面的参数 /opt 我想把后面的参数使用命令生成变成活的
#简单来说就是只要可以加参数的命令后面的参数是可以使用xargs灵活改变的
#xargs默认 是读取键盘输入在输出出来,把输入的东西 传给下一个命令作为参数
[root@localhost opt]# xargs
1
1
ctrl d 退出
[root@localhost opt]# xargs echo 可以省略echo
333
333
[root@localhost opt]# xargs ls -l
/etc/passwd
-rw-r--r--. 1 root root 2161 8月 26 09:27 /etc/passwd
#seq打印出10
[root@localhost opt]# seq 10
1
2
3
4
5
6
7
8
9
10
[root@localhost opt]# seq 10 |xargs 取消换行
1 2 3 4 5 6 7 8 9 10
[root@localhost opt]# seq 10 |xargs -n1 处理一个参数换行一次
1
2
3
4
5
6
7
8
9
10
#不支持标准输出重定向
[root@localhost opt]# ls *.txt |rm
rm: 缺少操作数
Try 'rm --help' for more information.
[root@localhost opt]# touch {1..10}.txt
#将显示的结果全部删除
[root@localhost opt]# ls *.txt |xargs rm
#创建10个用户
[root@localhost opt]# echo user{1..10}| xargs -n1 useradd
[root@localhost opt]#for i in {1..10};do useradd ky$i; done
#删除
[root@localhost opt]# echo ky{1..10}| xargs -n1 userdel -r
[root@localhost opt]#for i in {1..10};do userdel -r ky$i; done
##批量下载 b站的视频
#并行下载bilibili视频
yum install python3-pip -y
pip3 install you-get
seq 10 | xargs -i -P3 you-get
有多少集就改多少 P3 是并发
https://www.bilibili.com/video/BV1HZ4y1p7Bf?p={}
连接后面加{}
find 经常和 xargs 命令进行组合,形式如下:
find | xargs COMMAND
which
which 命令|程序名
which ls
硬件信息及其他系统信息
查看 cpu
lscpu命令可以查看cpu信息
cat /proc/cpuinfo也可看查看到
[root@localhost ky15]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1
Core(s) per socket: 1
座: 2
NUMA 节点: 1
厂商 ID: AuthenticAMD
CPU 系列: 23
型号: 96
型号名称: AMD Ryzen 7 4800U with Radeon Graphics
步进: 1
CPU MHz: 1795.914
BogoMIPS: 3593.25
超管理器厂商: VMware
虚拟化类型: 完全
L1d 缓存: 32K
L1i 缓存: 32K
L2 缓存: 512K
L3 缓存: 8192K
NUMA 节点0 CPU: 0,1
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc art rep_good nopl tsc_reliable nonstop_tsc extd_apicid eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec arat overflow_recov succor
[root@localhost ky15]# cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 23
model : 96
model name : AMD Ryzen 7 4800U with Radeon Graphics
stepping : 1
microcode : 0x8600103
cpu MHz : 1795.914
cache size : 512 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 16
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc art rep_good nopl tsc_reliable nonstop_tsc extd_apicid eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec arat overflow_recov succor
bogomips : 3593.25
TLB size : 3072 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 43 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : AuthenticAMD
cpu family : 23
model : 96
model name : AMD Ryzen 7 4800U with Radeon Graphics
stepping : 1
microcode : 0x8600103
cpu MHz : 1795.914
cache size : 512 KB
physical id : 2
siblings : 1
core id : 0
cpu cores : 1
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 16
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc art rep_good nopl tsc_reliable nonstop_tsc extd_apicid eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec arat overflow_recov succor
bogomips : 3593.25
TLB size : 3072 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 43 bits physical, 48 bits virtual
power management:
查看内存大小
free
cat /proc/meminfo
[root@localhost ky15]# free
total used free shared buff/cache available
Mem: 1867048 283684 1189772 9316 393592 1381240
Swap: 4194300 0 4194300
[root@localhost ky15]# cat /proc/meminfo
MemTotal: 1867048 kB
MemFree: 1189772 kB
MemAvailable: 1381260 kB
Buffers: 2116 kB
Cached: 306144 kB
SwapCached: 0 kB
Active: 229236 kB
Inactive: 250000 kB
Active(anon): 171852 kB
Inactive(anon): 8440 kB
Active(file): 57384 kB
Inactive(file): 241560 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 4194300 kB
SwapFree: 4194300 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 171016 kB
Mapped: 87664 kB
Shmem: 9316 kB
Slab: 85352 kB
SReclaimable: 47308 kB
SUnreclaim: 38044 kB
KernelStack: 5744 kB
PageTables: 12680 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 5127824 kB
Committed_AS: 1259164 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 180916 kB
VmallocChunk: 34359310332 kB
HardwareCorrupted: 0 kB
AnonHugePages: 45056 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 81792 kB
DirectMap2M: 2015232 kB
DirectMap1G: 0 kB
查看硬盘和分区情况
[root@localhost ky15]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 14G 0 part
├─centos-root 253:0 0 10G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sr0 11:0 1 4.2G 0 rom
[root@localhost ky15]# cat /proc/partitions
major minor #blocks name
8 0 20971520 sda
8 1 5242880 sda1
8 2 14688256 sda2
11 0 4415488 sr0
253 0 10485760 dm-0
253 1 4194304 dm-1
查看内核版本
[root@localhost ky15]# uname -r
3.10.0-693.el7.x86_64
[root@localhost proc]#cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
系统时间
date查看当前系统时间
-d 你描述的日期,显示指定字符串所描述的时间,而非当前时间
%F 完整日期格式,等价于 %Y-%m-%d
% T 时间(24小时制)(hh:mm:ss)
-s 修改系统时间
[root@localhost ~]# date -d '-1 day' +%F #前一天 [root@localhost ~]# date +%F #当前日期 yy-mm-dd(年月日) [root@localhost ~]# date -d '1 day ' +%F-%T #后一天 [root@localhost mnt]# date -d "-3 day" #前三天 2021年 08月 18日 星期三 11:30:15 CST [root@localhost mnt]# date -d "+3 day" #后三天 2021年 08月 18日 星期三 11:30:15 CST [root@localhost mnt]# date -s "12:34:56"