当前位置: 首页 > article >正文

Linux-基础命令及相关知识2

补充:

1、A命令(echo)既有可能是内部命令也有可能是外部命令,例如命令A既有可能在bash上也有可能在csh上,为了防止A在某些shell程序里不起作用,可以将A命令设置为外部命令(环境变量路径上),起到双重保险的作用。

2、每个磁盘里的Innode号是有限的,所以可能会出现硬盘空间还有剩余,但是不能存储文件的情况,因为innode号用完了。

3、ls - i命令补充,表示显示文件及文件夹的innode号。

[root@localhost ~]# ls -i
134578157 1                    77911 k                134578197 pp
 68051240 a                202635130 l                202635111 text
 68051206 aa               134311844 original-ks.cfg  134578311 text2
134311845 anaconda-ks.cfg      77902 p                    77912 tt

4.通过\可以将别名(alias cp="cp -i")cp重新使用。

1.0Linux基础命令

cp:   复制文件命令

cp -i:复制文件时,如果遇到同名文件会有覆盖提示

[root@localhost ~]# cp -i /home/pipi/aa ./
cp: overwrite ‘./aa’? y

cp -f:   复制文件时遇到覆盖提示直接覆盖

cp -r:   复制目录时必须使用此选项,表示递归复制目录下的所有文件及子目录

cp -p:  复制时保留原有文件的属主、权限、时间标记等属性不变

cp -a:  递归复制并保留原有属性

cp -ur:增量备份,从a文件夹中复制b文件夹没有的部分到b文件夹

[root@localhost ~]# cp -ur a/* b/   a.b文件夹在同一文件夹下

复制到同一文件夹时,cp源文件到当前目录需要改名

复制到不同文件夹时,cp源文件到目标目录可以改名也可以不改名

将多个文件复制的时候,目标一定是其他目录

[root@localhost ~]# cp -a aa ./a2  
同个目录下文件夹的复制要记得-r或-pr或-a,复制文件的时候可以不带选项
[root@localhost ~]# ls
1  a  a2  aa  anaconda-ks.cfg  k  l  original-ks.cfg  p  pp  text  text2  tt
[root@localhost ~]# cp -af aa ./
cp: ‘aa’ and ‘./aa’ are the same file
文件夹的复制必须改名,无法覆盖

df -h: 查看系统内磁盘空间使用情况

[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        3.8G     0  3.8G   0% /dev
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           3.9G   13M  3.8G   1% /run
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda3        92G  4.2G   88G   5% /
/dev/sda1       297M  163M  134M  55% /boot
tmpfs           781M   36K  781M   1% /run/user/1000
tmpfs           781M     0  781M   0% /run/user/0

rm:       删除文件或者目录

rm -r:   递归删除,用于删除目录

rm -f:   强制删除,没有提示信息

rm-i:    交互,有提示信息

rm -rf常配合使用,表示强制递归删除,没有提示信息

mv:    移动

mv -f:  如果文件已经存在,强制覆盖

mv -i:  如果文件已经存在,询问是否覆盖

mv -n: 如果文件已经存在,则不会覆盖,也不会询问用户

mv -v:显示移动信息

三种使用方式:

  • mv 文件名 不改变路径是改名

  • mv 文件名 改变路径是移动

  • mv 文件名 改变路径+改名

[root@localhost ~]# cd /home/pipi
[root@localhost pipi]# ls
abc  Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test  test1  Videos
[root@localhost pipi]# mv abc cba
将同目录下的abc文件夹改成cba文件夹

[root@localhost pipi]# ls
cba  Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test  test1  Videos
[root@localhost pipi]# mv cba /root
[root@localhost pipi]# ls /root
1  a  a2  aa  abc  anaconda-ks.cfg  cba  k  l  original-ks.cfg  p  pp  text  text2  tt
将pipi目录下的cba文件夹移动至/root下

[root@localhost pipi]# mv /root/cba /home/pipi/abc
[root@localhost pipi]# ls 
abc  Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test  test1  Videos
将/root下的cba移动到pipi目录下并改名为abc

rename:重命名

[root@localhost abc]# touch {1..10}.txt
[root@localhost abc]# ls
10.txt  1.txt  2.txt  3.txt  4.txt  5.txt  6.txt  7.txt  8.txt  9.txt  passwd
[root@localhost abc]# rename txt bak *
[root@localhost abc]# ls
10.bak  1.bak  2.bak  3.bak  4.bak  5.bak  6.bak  7.bak  8.bak  9.bak  passwd

which:     查命令所在位置(type -a也有相同效果)

where is: 查命令所在位置

以上两种命令都是去固定的(文件夹)路径找命令

[root@localhost abc]# which ls
alias ls='ls --color=auto'
	/usr/bin/ls
[root@localhost abc]# type -a ls
ls is aliased to `ls --color=auto'
ls is /usr/bin/ls
[root@localhost abc]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz


locate: 查找文件 (不是实时查找,有滞后性,去系统数据库中查找)

如果在某个目录中touch了一个文件,无法用locate实时找到它,因为去数据库中找文件有滞后性。

locate 查询系统上预建的文件索引数据库(相当于硬盘的目录),/var/lib/mlocate/mlocate.db,索引的构建是在系统较为空闲的时候自动进行(周期性任务),执行updatedb可以更新数据库,索引的构建需要遍历整个根文件系统,很消耗资源,locate和updatedb命令均来自mlocate包,因此locate适合去查一些历史文件,会比较快速。

dd if=/dev/zero of=100M count=1 bs=100M

删除100M文件后,df -h查看磁盘空间发现所占空间未发生变化,可能是因为文件在启动,和Windows操作系统不同的是,Linux在程序或者文件运行时可以删除文件。

dd if=/dev/zero of=100M count=1 bs=100M
dd是用于文件与I/O设备操作的实用命令
if=/dev/zero 输入文件(if)是特殊的设备文件,它提供无限的0字节,意味这从这个文件读取时,会得到无限的零。
of=100M  输出文件of是100M 这将创造一个名为100M的新文件,并将数据写入其中,如果不指定路径,该文件将被创建在当前目录下
count=1 读取次数=1
bs=100M 一次读取的大小为100M

find:查找文件(实时查找,去硬盘里找,选项多,精确查找)

find的通式:find 范围 选项 表达式 处理结果

- mtime(-atime -ctime)按天数查找
- mmin(-amin -cmin)按分钟查找
- links按链接数查找
- inum按innode号找人
-user/group/uid/gid/nouser/mogroup按所属用户/所属组/用户ID号/组ID号/无所属用户/无所属组查找
-iname根据文件名查找,不区分大小写
- maxdepth 2 -mindepth 2将你的文件以分级的形式表示(只查找第二级)
find -name "p*" -type f -mtime +30 -size 5k/5M/5G -user root -delete
在当前目录下查找p开头,30天以上,(4k,5k]大小,所属root用户的普通文件用于删除

选项 表达式 与 选项 表达式之间可以用连接符 “-a(and,可省略)” “-o(or)”"!(取反,表示除了)"连接


!可以搭配 -empty 例如:find -type d ! -empty(查找目录文件且该文件非空文件)

或与且的优先级,且的优先级高于或,所以多输入-ls的时候其实是省略了一个-a,所以与运算优先进行,只统计了软链接的数量,若想将软链接与目录数量一起统计,需要加上括号,\(    \)

处理动作作用
-print打印(默认)
-delete删除
-ls显示找到文件的属性
-ok连接符号
-exex连接符号

例题:找到/var/log文件夹下,30天以上,大于10G,log结尾的普通文件删除或移动到/mnt/文件夹下

[root@localhost ~]# find /var/log -mtime +30 -size +1G -name "*log" -type f -exec mv {} /mnt/ \;
find /var/log -mtime +30 -size +1G -name "*log" -type f -delete


http://www.kler.cn/news/362660.html

相关文章:

  • 如何用mmclassification训练多标签多分类数据
  • ICM20948 DMP代码详解(94)
  • Pytorch 实现图片分类
  • Java 语法糖详解(2)
  • Git的原理和使用(六)
  • 港大和字节提出长视频生成模型Loong,可生成具有一致外观、大运动动态和自然场景过渡的分钟级长视频。
  • 当AI直播和抖音搬砖小程序变现项目相互碰撞,会擦出什么样的火花?
  • vue将table转换为pdf导出
  • python基础综合案例(数据可视化—折线图可视化)
  • 重构长方法之分解条件表达式
  • 网站内容怎样快速被百度收录和排名?
  • 5G RedCap工业路由器赋能电力物联网应用
  • Linux--IO模型与高级IO重要概念
  • 数字+文旅:AI虚拟数字人如何焕发传统文旅景区新活力?
  • 2024年9月 GESP CCF C++三级编程能力等级考试认证真题
  • SpringBoot集成Minio实现文件上传
  • [项目][boost搜索引擎#4] cpp-httplib使用 | log.hpp | 前端 | 测试及总结
  • Mac book英特尔系列?M系列?两者有什么区别呢
  • react18中的合成事件与浏览器中的原生事件
  • 搜维尔科技:使用CyberGlove数据手套控制机械手遥操作拿鸡蛋
  • 如何区分真假Facebook三不限海外户?
  • 立志最细,FreeRtos的中断管理(Interrupt Management)函数,详解!!!
  • idea中添加文件掩码怎么添加
  • zookeeper的作用--有无zookeeper的区别
  • 大模型系列——幻觉
  • 《CUDA编程》9.原子函数的合理使用