linux怎么查看本机内存大小
261
2022-11-06
Linux 部分基础命令概述(二)
基础命令(二)
复制文件或目录
将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录
cp [选项]... 源文件或目录..目标文件或目录...
常用选项:
-f: 覆盖目标同名文件或目录时不进行提醒,而直接强制复制。
-i: 覆盖目标同名文件或目录时提醒用户确认。
-p: 复制时保持源文件的权限、属主及时间标记等属性不变。
-r: 复制目录时必须使用此选项,表示递归复制所有文件及子目录。
注意:复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在
例:复制opt路径下的abc.txt文件到根目录下:
[root@localhost ~]# cd /opt //切换到opt路径下 [root@localhost opt]# ls //查看opt //此处省略看下图 [root@localhost opt]# cp abc.txt ~ //复制abc.txt到根目录下 [root@localhost opt]# cd //返回根目录 [root@localhost ~]# ls //查看根目录下文件、目录 //此处看下图,abc.txt复制到根目录下
复制过程中可以更改文件名称:
[root@localhost opt]# cp abc.txt /var/123.txt //复制文件到var目录下,并更改文件名为123.txt [root@localhost opt]# cd /var //切换到var目录下 [root@localhost var]# ls
复制多个文件,复制时只能复制到目录中,不然不会生效:
[root@localhost opt]# cp abc.txt 123abc.txt [root@localhost opt]# ls [root@localhost opt]# cp 123abc.txt abc.txt bb //复制两个文件到bb(bb不是目录,所以命令不生效) [root@localhost opt]# cp 123abc.txt abc.txt /mnt //复制两个文件到mnt中 [root@localhost opt]# cd /mnt [root@localhost mnt]# ls
复制目录(必须使用-r)
[root@localhost mnt]# cd /opt [root@localhost opt]# ls 123abc.txt aa abc.txt abs link.txt rh [root@localhost opt]# cd aa/ [root@localhost aa]# ls bb [root@localhost aa]# cd ../ //回到父目录 [root@localhost opt]# cp aa/ /mnt -r //复制目录到mnt中 [root@localhost opt]# cd /mnt [root@localhost mnt]# ls 123abc.txt aa abc.txt [root@localhost mnt]# cd aa/ [root@localhost aa]# ls bb [root@localhost aa]# cd bb/ [root@localhost bb]# ls cc [root@localhost bb]#
强制覆盖文件:
[root@localhost bb]# cd /mnt [root@localhost mnt]# ls 123abc.txt aa abc.txt [root@localhost mnt]# /bin/cp -f abc.txt /opt //第一种强制覆盖方法,需要绝对路径的支持 [root@localhost mnt]# \cp -f abc /opt //反斜杠的输入方式执行强制覆盖命令 cp: 无法获取"abc" 的文件状态(stat): 没有那个文件或目录 //文件后缀没加,显示的错误 [root@localhost mnt]# \cp -f abc.txt /opt
复制文件覆盖时候需要询问用户:
[root@localhost mnt]# cp abc.txt /opt cp:是否覆盖"/opt/abc.txt"? yes [root@localhost mnt]# [root@localhost mnt]# type cp cp 是 `cp -i' 的别名 //系统默认更改成别名
删除文件或目录- rm
删除指定的文件或目录
命令格式:
rm [选项] 要删除的文件或目录
rm 的常用选项:
-f: 删除文件或目录时不进行提醒,而直接强制删除。
-i: 删除文件或者目录时提醒用户确认。(yes表示删除,no表示不删除)
-r: 删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)。
注意:不要直接删除系统中已有的目录或配置文件,以避免出现意外故障。
删除文件(-i)需要询问:
[root@localhost ~]# ls abc.txt initial-setup-ks.cfg 公共 视频 文档 音乐 anaconda-ks.cfg lshelp.txt 模板 图片 下载 桌面 [root@localhost ~]# rm -i abc.txt //删除文件 rm:是否删除普通文件 "abc.txt"?yes [root@localhost ~]# ls anaconda-ks.cfg lshelp.txt 模板 图片 下载 桌面 initial-setup-ks.cfg 公共 视频 文档 音乐 [root@localhost ~]#
[root@localhost ~]# cd /mnt [root@localhost mnt]# ls 123abc.txt aa abc.txt [root@localhost mnt]# rm -f abc.txt //强制删除abc.txt,不需要询问 [root@localhost mnt]# ls 123abc.txt aa [root@localhost mnt]#
删除目录:(-r)
[root@localhost mnt]# ls 123abc.txt aa [root@localhost mnt]# rm -r aa //删除目录(-r)连同子目录一起删除 rm:是否进入目录"aa"? yes rm:是否进入目录"aa/bb"? yes rm:是否进入目录"aa/bb/cc"? yes rm:是否删除目录 "aa/bb/cc/dd"?yes rm:是否删除目录 "aa/bb/cc"?yes rm:是否删除目录 "aa/bb"?yes rm:是否删除目录 "aa"?yes [root@localhost mnt]# ls 123abc.txt [root@localhost mnt]#
注意:这是实验环境,删除可以随意,在工作生产中,删除文件或者目录需谨慎进行,以免造成损失。
删除目录下文件时建议最好先切换到目录下再执行 rm -rf 命令
cd /etc/yum.repos.d/* //切换到目标目录中
[root@localhost mnt]rm -rf ./* //删除本目录下所有文件,不经过询问(建议禁用这条命令)
移动文件或者目录- mv
将指定的文件或者目录转移位置
如果目标位置与源位置相同,则相当于执行重命名操作
命令格式:
mv [选项]....源文件或目录... 目标文件或者目录
[root@localhost mnt]# ls123abc.txt [root@localhost mnt]# mv 123abc.txt /opt //移动文件发现有个文件名相同的文件,系统会询问是否要覆盖 mv:是否覆盖"/opt/123abc.txt"? no //选择不覆盖 [root@localhost mnt]# ls 123abc.txt [root@localhost mnt]# mv 123abc.txt /opt/123.txt //移动文件到opt目录下并改名字为123.txt [root@localhost mnt]# ls [root@localhost mnt]# cd /opt [root@localhost opt]# ls 123abc.txt 123.txt aa abc.txt abs link.txt rh [root@localhost opt]#
mv 移动文件只能对一个文件进行改名,如果想批量改名的话得使用 rename 这个命令
rename的命令格式:
rename 旧字符 新字符 *.目标文件
[root@localhost opt]# touch {1..10}.jpg //批量创建图片文件 [root@localhost opt]# ls 10.jpg 123.txt 2.jpg 4.jpg 6.jpg 8.jpg aa abs rh123abc.txt 1.jpg 3.jpg 5.jpg 7.jpg 9.jpg abc.txt link.txt [root@localhost opt]# rename jpg png *.jpg //批量把jpg改为png格式 [root@localhost opt]# ls 10.png 123.txt 2.png 4.png 6.png 8.png aa abs rh123abc.txt 1.png 3.png 5.png 7.png 9.png abc.txt link.txt [root@localhost opt]#
查找命令文件存放目录---which
搜索范围由变量PATH决定(echo $PATH)
which 命令|程序名 //默认当找到第一个目标后不在继续查找
或
which -a 命令|程序名 //在所有搜索路径中查找
使用which查找内部命令时,找不到对应的程序
查找外部命令
[root@localhost ~]# cd /opt [root@localhost opt]# echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin [root@localhost opt]# touch jy [root@localhost opt]# ls 10.png 123.txt 2.png 4.png 6.png 8.png aa abs link.txt123abc.txt 1.png 3.png 5.png 7.png 9.png abc.txt jy rh [root@localhost opt]# chmod +x jy //把jy定义为可执行命令[root@localhost opt]# ll 总用量 12 -rw-r--r--. 1 root root 0 11月 5 07:08 10.png -rw-r--r--. 1 root root 24 11月 5 05:00 123abc.txt -rw-r--r--. 1 root root 24 11月 5 05:01 123.txt -rw-r--r--. 1 root root 0 11月 5 07:08 1.png -rw-r--r--. 1 root root 0 11月 5 07:08 2.png -rw-r--r--. 1 root root 0 11月 5 07:08 3.png -rw-r--r--. 1 root root 0 11月 5 07:08 4.png -rw-r--r--. 1 root root 0 11月 5 07:08 5.png -rw-r--r--. 1 root root 0 11月 5 07:08 6.png -rw-r--r--. 1 root root 0 11月 5 07:08 7.png -rw-r--r--. 1 root root 0 11月 5 07:08 8.png -rw-r--r--. 1 root root 0 11月 5 07:08 9.png drwxr-xr-x. 3 root root 16 11月 4 19:45 aa -rw-r--r--. 1 root root 24 11月 5 05:35 abc.txt drwxr-xr-x. 2 root root 6 11月 4 19:45 abs -rwxr-xr-x. 1 root root 0 11月 5 16:30 jy lrwxrwxrwx. 1 root root 7 11月 4 19:59 link.txt -> abc.txt drwxr-xr-x. 2 root root 6 3月 26 2015 rh [root@localhost opt]# mv jy /user/local/bin/ //把这个可执行命令移动到根目录下mv: 无法将"jy" 移动至"/user/local/bin/": 没有那个文件或目录[root@localhost opt]# mv jy /usr/local/bin/ [root@localhost opt]# cd /usr/local/bin/ [root@localhost bin]# ls jy //此处命令时自己添加的,为绿色 [root@localhost bin]#
which 只要查找到符合条件的就结束查找,which -a会找到所有根目录下符合条件选项,并显示出来
[root@localhost ~]# cd /opt [root@localhost opt]# echo $PATH //echo是输出命令 /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin //查找时会总左往右依次查找,在没有-a的情况下查找到第一个符合的就会停止[root@localhost bin]# which java/usr/bin/java [root@localhost bin]# which -a java /usr/bin/java /bin/java [root@localhost bin]#
查找文件或目录-find
采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找
命令格式:
find [查找范围(查找文件或子目录的位置)] [查找条件表达式(查找条件类型)]
常用查找条件类型:
查找类型 | 关键字 | 说明 |
---|---|---|
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“头"及“?”通配符,name的名称得用"name"(双引号表示) |
按文件大小查找 | -size | 根据目标文件的大小进行查找</br>一般使用“+”、“-”号设置超过或小于指定的大小作为</br>查找条件常用的容量单位包括kB(注意k是小写)、MB、GB</br> |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找</br>文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等块设备文件(b):成块读取数据的设备(硬盘,内存,光驱)字符设备文件(c):按单个字符读取数据的设备(键盘,鼠标) |
按照时间查找 | -mtime | 按照日期查找 |
各表达式之间使用逻辑运算符
(1)-a 表示 而且(and)
(2)-o 表示 或者 (or)
命令表现形式:
find /boot -size +1024k -a -name "vmlinuz*"
find /boot -size +1024k -o -name "vmlinuz*"
[root@localhost bin]# find / -size +1024k -a -type f //查找大于1024K并且文件类型是文件的得
find之exec用法
-exec参数后面跟的是Linux命令,它是以分号“;”为结束标志,由于各个系统中分号会有不同的意义,因此在分号前面加上反斜杠转义符“\”。
{}代表前面find查找出来的文件名。find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用Is -l命令将它们列出find ./ -type f -exec ls -l{}\;
命令执行的优先级
第一优先级:指定路径的命令。绝对路径/usr/bin/ls或者相对路径 cd /usr/bin ./ls第二优先级:别名指定的命令alias myls='/usr/bin/ls -alh'第三优先级:内部命令第四优先级: hash命令linux系统下会有一个hash表,当你刚开机时这个hash表为空,每当你执行过一条命令时,hash表会记录下这条命令的路径,就相当于缓存一样。第一次执行命令shel1解释器默认的会从PArH路径下寻找该命令的路径,当你第二次使用该命令时,shelL解释器首先会查看hash表,没有该命令才会去PAH路径下寻找。hash表能提高命令的调用速率。第五优先级:通过PATH定义的查找顺序查找如果以上顺序都找不到,就会报"未找到命令..."的错误。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~