1.创建
-
文件名最长255个字节
-
包括路径在内文件名称最长4095个字节
-
除了斜杠和NULL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用。
创建目录
mkdir
make directories
[root@localhost /]# mkdir a b c #分别创建 a b c三个文件夹
[root@localhost /]# ls #查看当前目录
a boot etc lib64 opt root srv usr
b c home media proc run sys var
bin dev lib mnt py sbin tmp
[root@localhost /]#
touch
-
touch 新文件…(可为空)
-
touch 不会破坏已有文件 刷新时间
每个文件有三个时间戳:
-
access time 访问时间,atime,读取文件内容
-
modify time 修改时间,mtime,改变文件内容(数据)
-
change time 改变时间,ctime,元数据发生改变(元数据 文件大小 权限
[root@localhost /]# ls
a boot etc lib64 opt root srv usr
b c home media proc run sys var
bin dev lib mnt py sbin tmp
[root@localhost /]# cd py
[root@localhost py]# ls -a
. .. py.txt
[root@localhost py]# touch 1 2 3 #创建1 2 3 三个文件
[root@localhost py]# ls
1 2 3 py.txt
[root@localhost py]# echo "">4 #创建4的空文件
[root@localhost py]# ls
1 2 3 4 py.txt
[root@localhost py]# stat /py/1 #查看1的三种时间
文件:"/py/1"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:34162 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:default_t:s0
最近访问:2022-09-20 17:23:29.725737677 +0800
最近更改:2022-09-20 17:23:29.725737677 +0800
最近改动:2022-09-20 17:23:29.725737677 +0800
创建时间:-
[root@localhost py]# touch stat /py/1 #刷新三种时间
[root@localhost py]# stat /py/1
文件:"/py/1"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:34162 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:default_t:s0
最近访问:2022-09-20 17:27:59.539011551 +0800
最近更改:2022-09-20 17:27:59.539011551 +0800
最近改动:2022-09-20 17:27:59.539011551 +0800
创建时间:-
access time atime 最近打开文件的时间如果你不打开文件是不会刷新的
change time ctime 属性权限改变()
modify time mtime 内容改变属性(大小)
2.复制
复制(copy)
1.cp[选项]...源文件 目标 改名(在同一个文件夹下时)/复制
2.cp[选项]...源文件...文件夹... 多个源文件只能复制到文件夹
\转义符,代表原来的意思(有的指令在alias里被赋值了,需要用\)
选项 | 注 |
---|---|
-f | 覆盖目标同名文件或目录时不进行提醒,直接强制复制 |
-i | 覆盖目标同名文件或目录时提醒用户确认 |
-p | 复制时保持源文件的权限、属主及时间标记等属性不变 |
-r | 复制目录时必须使用此选项,表示递归复制所有文件及子目录 |
-a | 完整保留所有的信息包括连接文件 |
-v | 可视化 |
-u | 相当于增备,差异备份 |
-b | 先备份(只保留最近) |
如果已有文件夹会 生成子目录
[root@localhost /]# mkdir py #创建文件夹py
[root@localhost /]# cd py #进入文件夹py
[root@localhost py]# touch py.txt #创建文件py.txt
[root@localhost py]# cp -f /py/py.txt /mnt/py.txt 把文件夹py下的py.txt复制到文件夹mnt
[root@localhost py]# cd /mnt #进入文件夹mnt
[root@localhost mnt]# ls #查看
py.txt
[root@localhost /]# cp -r /py/ /a/ #把文件夹py复制到文件夹a下
[root@localhost /]# cd a #进入文件夹a
[root@localhost a]# ls #查看
py
[root@localhost py]# cd /a/py #进入文件夹py
[root@localhost py]# ls
1 2 3 4 py.txt stat
[root@localhost py]# cp /py/1 /py/2 /opt 复制文件夹1和2到文件夹opt下
[root@localhost py]# cd \
>
[root@localhost ~]# cd /
[root@localhost /]# cd opt
[root@localhost opt]# ls
1 2 rh
[root@localhost opt]#
3.移动 改名
mv [选项] … 源文件或目录… 目标文件或目录
rename 旧字符 新字符 目标文件
[root@localhost /]# cd py
[root@localhost py]# ls
1 2 3 4 py.txt stat
[root@localhost py]# touch {1..10}.txt
[root@localhost py]# ls
1 2 3.txt 5.txt 8.txt stat
10.txt 2.txt 4 6.txt 9.txt
1.txt 3 4.txt 7.txt py.txt
[root@localhost py]# rename txt txt,bak * #批量改名
[root@localhost py]# ls
1 2.txt,bak 4.txt,bak 8.txt,bak
10.txt,bak 3 5.txt,bak 9.txt,bak
1.txt,bak 3.txt,bak 6.txt,bak py.txt,bak
2 4 7.txt,bak stat
[root@localhost py]# rename 3 3.rar * #把3 改成3.rar
[root@localhost py]# ls
1 3.rar.txt 7.txt
10.txt 3.rar.txt,bak 7.txt,bak
10.txt,bak 4 8.txt
1.txt 4.txt 8.txt,bak
1.txt,bak 4.txt,bak 9.txt
2 5.txt 9.txt,bak
2.txt 5.txt,bak py.txt,bak
2.txt,bak 6.txt stat
3.rar 6.txt,bak
[root@localhost py]# mv -f /py/1 /a #把/py/1移到/a文件夹下
[root@localhost py]# cd /a
[root@localhost a]# ls
1 py
[root@localhost a]# cd -
/py
[root@localhost py]# ls
10.txt 3.rar.txt,bak 7.txt,bak
10.txt,bak 4 8.txt
1.txt 4.txt 8.txt,bak
1.txt,bak 4.txt,bak 9.txt
2 5.txt 9.txt,bak
2.txt 5.txt,bak py.txt,bak
2.txt,bak 6.txt stat
3.rar 6.txt,bak
3.rar.txt 7.txt
[root@localhost py]#
4.删除文件
rm [选项] 要删除的文件或目录
-
-f、强制
-
-i、交互
-
-r 递归(删除目录需要)
[root@localhost /]# rm -rf /a b c #删除 根目录下的a b c文件夹
[root@localhost /]# ls
bin etc lib64 opt root srv tmp
boot home media proc run sys usr
dev lib mnt py sbin test var
5.查找文件
find
命令的特点:
-
精确查找
-
实时查找 遍历(慢)
-
支持查找条件较多
find [OPTION]... [查找路径] [查找条件] [处理动作]
查找路径:指定具体目标路径;默认为当前目录
查找条件:可以对文件名、大小、类型、权限等标准进行查找;默认为找出指定路径下的所有文件
处理动作:对符合条件的文件做操作,默认输出至屏幕(print)
常用可选项
查找类型 | 关键字 | 说明 |
---|---|---|
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 |
按文件大小查找 | -size | 根据目标文件的大小进行查找一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件常用的容量单位包括 kB(注意 k 是小写)、MB、GB |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等 |
按inode号 | -inum | 根据文件inode号查找 |
按权限查找 | -perm | 按文件权限查找 |
最大搜索目录深度 | -maxdepth level | 将你的文件已分级的形式查找 |
最小搜索目录深度 | -mindepth level | 同上 |
-size [+|-]#UNIT #常用单位:k, M, G,c(byte),注意大小写敏感
-type TYPE
TYPE可以是以下形式:
f: 普通文件
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的文件
[root@localhost /]# find /etc/ -name passwd #查找名字为passwd的文件
/etc/pam.d/passwd
/etc/passwd
[root@localhost /]# find /py/ -name *.txt #查找文件夹py下所有带有.txt结尾的
/py/1.txt
/py/2.txt
/py/4.txt
/py/5.txt
/py/6.txt
/py/7.txt
/py/8.txt
/py/9.txt
/py/10.txt
/py/3.rar.txt
[root@localhost /]# find /mnt -user root #查找用户为root的用户
/mnt
/mnt/py.txt
[root@localhost py]# find /py/ -size 1M #查找大小为0-1M的文件
/py/
/py/4
[root@localhost py]#
[root@localhost py]# find ./ -name "2*" #查找当前文件夹下2开头的文件
./2
./2.txt,bak
./2.txt
[root@localhost py]# find /etc/ -maxdepth 2 -mindepth 2 #查找2级目录
[root@localhost py]# find /home -user root -ls #查找/home 下属于root的文件并列出属性
50332832 0 drwxr-xr-x 3 root root 16 8月 31 23:16 /home
[root@localhost py]# find /home/ -nouser #查找home下的无主文件夹
#或与且的优先级
o or
a and
[root@localhost py]# find /py/ -type f -o -type l |wc -l #查找py文件下普通文件和连接文件并统计数量
25
[root@localhost py]# find /etc/ -type d -o -type l -ls |wc -l #查找etc文件夹下目录和连接文件并显示链接文件的详细信息后统计数量
274
[root@localhost py]# find -size 1G #查找1G的文件会把所有都显示出来
.
./4
#思考 1024M 和 1G 一样么?
1024M 代表 1023M - 1024M 不包括1023
1G 表示 0G -1G 不包括0G
-size 10k 表示9k 到10k 且不包括9k
-size -10k 表示9k 以内 包括9k
-size +10k 表示10k 以上 不包括 10k
[root@localhost py]# find -name "2*" -delete #找出2开头的文件并删除
[root@localhost py]# ls
10.txt 4.txt 8.txt
10.txt,bak 4.txt,bak 8.txt,bak
1.txt 5.txt 9.txt
1.txt,bak 5.txt,bak 9.txt,bak
3.rar 6.txt py.txt,bak
3.rar.txt 6.txt,bak stat
3.rar.txt,bak 7.txt
4 7.txt,bak
[root@localhost py]#find -name /data /* -delete
#做完恢复快照1
-print:默认的处理动作,显示至屏幕
-ls:类似于对查找到的文件执行"ls -dils"命令格式输出 ll
-fls file:查找到的所有文件的长格式信息保存至指定文件中,相当于 -ls > file
-delete:删除查找到的文件,慎用!
-ok COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认
-exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令{}: 用于引用查找到的文件名称自身
find -mtime 10
#10天到11天
find -mtime +10
#代表11天以上
find -mtime -10
#10天以内
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
#权限 所有者 所属组
Access: 2016-05-06 23:31:41.396893415 +0800
#访问时间
Modify: 2016-05-06 23:31:41.396893415 +0800
#数据修改时间
Change: 2016-05-06 23:31:41.411006937 +0800
#状态修改时间
硬件信息及其他系统信息
查看cpu
lscpu
cat/proc/cpuinfo
[root@localhost py]# 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: GenuineIntel
CPU 系列: 6
型号: 154
型号名称: 12th Gen Intel(R) Core(TM) i7-12700H
步进: 3
CPU MHz: 2687.032
BogoMIPS: 5375.99
超管理器厂商: VMware
虚拟化类型: 完全
L1d 缓存: 48K
L1i 缓存: 32K
L2 缓存: 1280K
L3 缓存: 24576K
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 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 arat
查看内存大小
free
cat/proc/meminfo
[root@localhost py]# free
total used free shared buff/cache available
Mem: 1867048 1334648 68156 4832 464244 259596
Swap: 2097148 195928 1901220
[root@localhost py]# cat /proc/meminfo
MemTotal: 1867048 kB
MemFree: 68280 kB
MemAvailable: 259740 kB
Buffers: 664 kB
Cached: 235780 kB
SwapCached: 9504 kB
Active: 910028 kB
Inactive: 462924 kB
Active(anon): 794808 kB
Inactive(anon): 346532 kB
Active(file): 115220 kB
Inactive(file): 116392 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 2097148 kB
SwapFree: 1901220 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 1127752 kB
Mapped: 39612 kB
Shmem: 4832 kB
Slab: 227820 kB
SReclaimable: 147272 kB
SUnreclaim: 80548 kB
KernelStack: 11936 kB
PageTables: 49480 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 3030672 kB
Committed_AS: 5796688 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 183692 kB
VmallocChunk: 34359310332 kB
HardwareCorrupted: 0 kB
AnonHugePages: 292864 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 159616 kB
DirectMap2M: 1937408 kB
DirectMap1G: 0 kB
查看硬盘和分区情况
lsblk
cat /proc/partitions
[root@localhost py]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.2G 0 rom /run/media
查看机器架构
arch
[root@localhost py]# arch
x86_64
查看内核版本
uname -r
[root@localhost py]# uname -r
3.10.0-693.el7.x86_64
查看系统时间
date查看当前系统时间
-d 你描述的日期,显示指定字符串所描述的时间,而非当前时间
%F 完整日期格式,等价于 %Y-%m-%d
% T 时间(24小时制)(hh:mm:ss)
[root@localhost ~]# date -d '-1 day' +%F
2021-08-18
[root@localhost ~]# date +%F
2021-08-19
[root@localhost ~]# date -d '1 day ' +%F-%T
2021-08-20-23:28:42
[root@localhost py]# date -d "-3 day" 前三天
2021年 08月 18日 星期三 11:30:15 CST
[root@localhost py]# date -d "+3 day" 后三天
2021年 08月 18日 星期三 11:30:15 CST
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App