kali(谨慎使用)——linux常用命令之文件操作

kali(谨慎使用)——linux常用命令

SHELL命令的一般格式

命令名 [选项] [参数]

  • 命令名——决定了该命令做什么
  • 选项——决定了该命令怎么做
  • 参数——决定了该命令对谁做

在linux的命令均区分大小写
Tab补全功能也是linux特别的功能之一
Ctrl+C可中断正在执行的命令
在一行内输入多行命令需要使用;号间隔

目录名称 功能说明
/ linux文件系统的最上层根目录,其他所有目录都为该目录子目录
/bin Binary的缩写,存放着普通用户可执行的程序或者命令
/boot 存放系统启动时所需要的文件,一般不要改动
/dev 存放着代表硬件设备的特殊文件
/etc 存放系统管理和配置文件
/home 普通用户存储个人数据和配置文件的家目录
/lib 存放系统本身需要的32位程序的共享函数库
/sbin 存放的是系统管理员可执行的程序或者命令
/root 根用户root的家目录
/var Variable的缩写,存放日志,邮件等经常变化的文件
/tmp 供临时文件的使用的全局可写空间
  • 绝对路径

bash 以根目录为起点,例:/proc/local/bin

  • 相对路径

bash 以当前目录为起点,例:./local/bin

文件和目录常用命令

  • 查看当前的工作目录——pwd命令
[root@dyzx~]#  pwd
/root    //当前目录是/root
  • 改变工作目录——cd命令
[root@dyzx~]#  cd /usr/local/lib	//改变目录到/usr/local/lib目录下 
[root@dyzx lib]#  cd ..  		        //返回上一层目录
[root@dyzx local]#  cd ../etc			//进入当前目录的父目录下的etc子目录
[root@dyzx~ etc]#  cd ~					//进入root用户登录时的工作目录
[root@dyzx~]#  cd 桌面   			//进入当前目录下的“桌面”子目录
[root@dyzx 桌面]#  cd  				//进入当前用户的家目录
  • 列表显示目录内容——ls命令

ls [选项] [目录1|文件1] [目录2|文件2] …
-a——显示所有子目录和文件的信息 ,包括隐藏文件
-A——与-a选项的作用类型,但不显示隐藏文件
-c——按文件的修改时间排序后,予以显示
-d——显示指定目录本身的信息,而不显示目录的各个文件和子目录的信息
-h——以K,M,G为单位显示目录或文件的大小
-l ——以长格式显示文件和目录的详细信息
-R——以递归的方式显示指定目录及其子目录的所有内容

[root@dyzx~]#  ls			//列出当前目录下的文件及子目录
[root@dyzx~]#  ls  -hl      //以K,M,G为单位显示目录或文件的大小
  • 创建目录——mkdir命令

mkdir [选项] 目录1 [目录2] …
-p——在创建目录时,如果父目录不存在,则连父目录一起创建

[root@dyzx~]#  mkdir -p dir2/bak   		//创建dir2目录和bak目录
  • 统计并显示目录或文件的空间占用量——du命令

du [选项] [目录1] [目录2] …
-a——显示对涉及的所有文件的统计,而不只是包含子目录
-s——对每个指定目录只显示总和,而不显示各子目录的大小
-h——以K,M,G为单位显示目录或文件的大小

[root@dyzx~]#  du -sh /boot			//统计/boot目录中所有文件占用空间量
123M	/boot
  • 创建文件或者更新已有文件或目录的修改日期——touch命令

touch [选项] 文件或目录列表
-d yyyymmdd——把文件的存取或修改时间改为yyyy年mm月dd日
-a——只把文件的存取时间改为当前时间
-m——只把文件的修改时间改为当前时间

[root@dyzx~]#  touch f1 f2 f3   	 //在当前目录下建立三个空文件
[root@dyzx~]#  touch -d 20180604 f1  //文件的存取或修改时间修改为20180604
  • 复制文件或目录——cp命令

cp [选项 ] 源文件或目录 目录文件或目录
-f——覆盖目标同名文件或目录时不进行提醒
-i——覆盖目标同名文件或目录时进行提醒
-p——复制的目标文件或目录,保持与源文件或目录相同的权限,属主等属性
-r——复制目录时必须使用该选项,以实现将原目录下的文件和子目录一并复制
-u——只有当源文件的创建日期晚于目标文件时才会覆盖

[root@dyzx~]#  cp /etc/hosts ~/f1      //将/etc/hosts文件复制到用户家目录下,并改名为f1
[root@dyzx~]#  cp -r /etc/java/ dir2/bak    //将/etc/java目录复制到当前目录的dir2/bak目录下
  • 移动文件或目录——mv命令

mv [选项] 源文件或目录 目标文件或目录
-b——移动后的源文件或目录不删除,效果相当于复制

[root@dyzx~]#  mv f1 dir1      //将当前目录下的f1文件移动到当前目录下的dir1子目录下
[root@dyzx~]#  mv f2 f2.txt    //将当前目录下的f2文件更名为f2.txt
  • 删除文件或目录——rm命令

rm [选项] 文件1或目录1 [文件2或目录2] …
-f——删除文件或目录时不进行提醒直接删除
-i——用于交互式删除文件或目录,在删除的时候需要用户确认
-r——用于删除目录

[root@dyzx~]#  rm -ir dir2/bak			//删除当前目录的dir2/bak目录
rm:是否进入目录“dir2/bak”? y
rm:是否进入目录“dir2/nak/java”? y
..........
  • 为文件或目录建立链接——ln命令

ln [选项] 源文件或目录 [目标链接文件或目录]
-s——建立符号链接(软链接),不加该选项为硬链接
-f——若建立的目标文件或目录已存在,则强行删除后建立
-i——若建立的目标文件或目录已存在,则以交互性方式提示用户是否覆盖

  • 硬链接与软连接的区别
软连接 硬链接
使用带选项-s的ln命令 不使用带选项-s的ln命令
可跨越不同的文件系统、分区和挂载设备创建 只能在与源文件相同的 文件系统、分区和挂载设备创建
针对文件和目录均可建立软链接 只能针对文件创建硬链接,不能针对目录
删除源文件或目录后,软链接文件或目录无效 删除源文件或目录后,软链接文件或目录无效
[root@dyzx~]#  echo 'this a file'>f3
[root@dyzx~]#  ln f3 /tmp/test1		//在/tmp目录下创建f3的硬链接文件test1
[root@dyzx~]#  ln -s f3 /tmp/test2  //在/tmp目录下创建f3的软链接文件test2
  • 查找文件或目录——find命令

find [查找路径] [查找条件表达式]
-name 文件名——查找指定名称的文件
-user 用户名——查找属于指定用户的文件或目录
-group 组名——查找属于指定组的文件
-type 文件类型符——查找指定类型的文件
-size [+|-]n[K|M|G]——根据文件大小查找文件
-prem 权限值——根据文件的权限查找文件
-exec 命令 { } \——对满足匹配条件的文件执行指定的命令

[root@dyzx~]#  find /etc -name "*.conf" 	//在/etc目录下查找文件名以".conf结尾的文件"
[root@dyzx~]#  find /type d -a -name bin    //在/的目录下查找名称为bin的所有目录
[root@dyzx~]#  find /  user root -a -group mail   //查找有root和mail组拥有的文件
  • 显示文件的内容——cat命令

cat [选项] 文件名列表
-n——对输出内容中所有行标注行号
-b——对输出内容中非空行标注行号

[root@dyzx~]#  cat /etc/os-release	//查号此文档的内容
  • 检索过滤文件内容——grep命令

grep [选项] 要查找的字符串或条件表达式 被查找的文件名
-i——查找内容时不分大小写
-v——反转查找,即输出与查找条件不相符的行

[root@dyzx~]#  grep ftp /etc/passwd     //在文件passwd中查找包括“ftp”的行
[root@dyzx~]#  grep "user1 $" /etc/passwd  //在文件中查找只含“user1”的行
  • 文件打包与解包命令的使用

tar [选项] [被打包的文件或目录列表]
c——创建一个包文件
v——显示打包或解包的过程
f 包文件名——指定被打包或被解包的包文件名
p——打包时保留文件或目录的权限
z——以gzip格式压缩或解压缩文件,是使用最广泛的压缩方式
j——以bzip2格式压缩或解压缩文件
J——以xz格式压缩或解压缩文件
t——列出包文件的内容清单
x——释放包文件
-C 目标文件夹——将包文件的内容释放到指定的目标文件夹中

  • 创建非压缩的包文件名

tar cvf 包文件名 被打包的文件或目录名列表

[root@dyzx~]#  touch f1 f2 f3
[root@dyzx~]#  tar cf my_file.tar f1 f2 f3	  //将f1 f2 f3打包为my_file.tar包文件
[root@dyzx~]#  tar cvdf /root/my_etc.tar /etc  //创建/etc目录的包文件并显示打包过程 
  • 创建带压缩的包文件名

tar [z|j|J]cf 包文件名 被打包的文件或目录名列表

[root@dyzx~]#  tar czf /root/my_etc.tar.gz /etc
[root@dyzx~]#  ls -lh /root/my_etc* .*
  • 列出包文件中的文件列表

tar t[v]f 包文件名

[root@dyzx~]#  tar tf /root/my_file.tar  
f1
f2
f3
  • 释放包文件到指定目录

tar x[z|j|J][v]f 包文件名 [-C 目标文件夹]

[root@dyzx~]#  tar xf /root/my_etc.tar.gz -C /tmp/etc/bakup //前者释放到后者
  • 重定向操作符——“>” “>>” “<” “<<”
[root@dyzx~]#  echo 'this is web' 
[root@dyzx~]#  echo 'this is web' >f1 //将字符写入f1

你可能感兴趣的:(kali)