Liunx学习之路(五)目录及文件操作命令

一、目录查看/切换

1、pwd

pwd用于查看当前工作目录

2、cd

cd用于切换目录,cd [目录名称]可以进入指定目录。
"cd -"命令返回到上一次所处的目录
"cd.."命令进入上级目录
"cd ~"命令切换到当前用户的家目录
“cd ~username”切换到其他用户的家目录

3、ls

ls命令用来查看指定文件夹下的文件
“-a”参数看到全部文件(包括隐藏文件),使用“-l”参数可以查看文件的属性、大小等详细信息,一般结合使用:ls -al
想要查看目录属性信息,则需要额外添加一个-d参数:ls -ld

二、文本文件命令

1、cat

cat命令用于查看纯文本文件(内容较少的),格式为“cat [选项] [文件]”。
-n参数可以显示行号

2、more

more命令用于查看纯文本文件(内容较多的),格式为“more [选项]文件”。

3、head

head命令用于查看纯文本文档的前N行,格式为“head [选项] [文件]”。

head -n 20 a.txt   //查看前20行

4、tail

tail命令用于查看纯文本文档的后N行或持续刷新内容,格式为“tail [选项] [文件]”。

tail -n 20 a.txt   //查看后20行

5、tr

tr命令用于替换文本文件中的字符,格式为“tr [原始字符] [目标字符]”

cat a.txt | tr [a-z] [A-Z]   //使用了管道符,效果是把英文字母全换成大写

6、wc

wc命令用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”

参数 作用
-l 只显示行数
-w 只显示单词数
-c 只显示字节数

7、stat

stat命令用于查看文件的具体存储信息和时间等信息,格式为“stat 文件名称”

root@kali:~# stat aa.sql
  文件:aa.sql
  大小:1917      	块:8          IO 块:4096   普通文件
设备:801h/2049d	Inode:394580      硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2019-07-12 22:00:56.796366821 +0800
最近更改:2019-07-12 22:00:54.228366800 +0800
最近改动:2019-07-12 22:00:54.228366800 +0800
创建时间:-

8、cut

cut命令用于按“列”提取文本字符,格式为“cut [参数] 文本”

参数 作用
-d 指定分隔符
-f 指定第几列
root@kali:~# cat aa.sql 
-- MySQL dump 10.17  Distrib 10.3.15-MariaDB, for debian-linux-gnu (x86_64)
--
-- Host: localhost    Database: zz
-- ------------------------------------------------------
-- Server version	10.3.15-MariaDB-1

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

root@kali:~# cut -d ' ' -f2 aa.sql 
MySQL
--
Host:
------------------------------------------------------
Server

SET
SET
SET
SET
SET
SET
SET
SET
SET
SET

9、diff

diff命令用于比较多个文本文件的差异,格式为“diff [参数] 文件”。

在使用diff命令时,不仅可以使用–brief参数来确认两个文件是否不同,还可以使用-c参数来详细比较出多个文件的差异之处

三、文件目录管理

1、touch

touch命令用于创建空白文件或设置文件的时间,格式为“touch [选项] [文件]”

参数 作用
-a 仅修改“读取时间”(atime)
-m 仅修改“修改时间”(mtime)
-d 同时修改atime与mtime
root@kali:~/new# ls -l
总用量 81236
-rw-r--r-- 1 root root      807 9月  11  2018 aa.sql
-rw-r--r-- 1 root root 41587440 3月  27 14:07 idm_ald.exe
-rw-r--r-- 1 root root 41587440 3月  27 14:07 idm.zip
root@kali:~/new# touch -d "2018-09-11 10:22" idm.zip 
root@kali:~/new# ls -l
总用量 81236
-rw-r--r-- 1 root root      807 9月  11  2018 aa.sql
-rw-r--r-- 1 root root 41587440 3月  27 14:07 idm_ald.exe
-rw-r--r-- 1 root root 41587440 9月  11  2018 idm.zip

2、mkdir

mkdir用于创建空白的目录,格式为“mkdir [选项] 目录”。
可以结合-p参数来递归创建出具有嵌套叠层关系的文件目录。

mkdir sS
mkdir -p a/b/c/d

3、cp

cp用于复制文件或目录,格式为“cp [选项] 源文件 目标文件”。
Linux系统中,复制操作具体分为3种情况:

  • 如果目标文件是目录,则会把源文件复制到该目录中;
  • 如果目标文件也是普通文件,则会询问是否要覆盖它;
  • 如果目标文件不存在,则执行正常的复制操作。
参数 作用
-p 保留原始文件的属性(修改时间等都会保留)
-d 若对象为“链接文件”,则保留该“链接文件”的属性
-r 递归持续复制(用于目录)
-i 若目标文件存在则询问是否覆盖
-a 相当于-pdr(p、d、r为上述参数)

4、mv

mv命令用于剪切文件或将文件重命名,格式为“mv [选项] 源文件 [目标路径|目标文件名]”。

在同一个目录中对一个文件进行剪切操作,其实就是对其进行重命名。

root@kali:~/new# ls
aa.sql  idm_ald.exe  idm.zip
root@kali:~/new# mv aa.sql ab.sql
root@kali:~/new# ls
ab.sql  idm_ald.exe  idm.zip

5、rm

rm命令用于删除文件或目录,格式为“rm [选项] 文件”。

参数 作用
-f 强制删除
-r 目标文件为目录时必须使用

6、dd

dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“dd [参数]”

dd命令是一个比较重要而且比较有特色的一个命令,它能够让用户按照指定大小和个数的数据块来复制文件的内容。当然如果愿意的话,还可以在复制过程中转换其中的数据

参数 作用
if 输入的文件名称
of 输出的文件名称
bs 设置每个“块”的大小
count 设置要复制“块”的个数

dd命令的功能也绝不仅限于复制文件这么简单。如果您想把光驱设备中的光盘制作成iso格式的镜像文件

//复制文件
dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso
7311360+0 records in
7311360+0 records out
3743416320 bytes (3.7 GB) copied, 370.758 s, 10.1 MB/s

bs块大小与count块个数并没有太多规矩,随意组合满足大小要求即可

7、file

file命令用于查看文件的类型,格式为“file 文件名”。

root@kali:~# file new
new: directory

四、打包及搜索命令

1、tar

tar命令用于对文件进行打包压缩或解压,格式为“tar [选项] [文件]”。

参数 作用
-c 创建压缩文件
-x 解开压缩文件
-t 查看压缩包内有哪些文件
-z 用Gzip压缩或解压
-j 用bzip2压缩或解压
-v 显示压缩或解压的过程
-f 目标文件名
-p 保留原始的权限与属性
-P 使用绝对路径来压缩
-C 指定解压到的目录

一般使用 “tar -czvf 压缩包名称.tar.gz 要打包的目录” 命令把指定的文件进行打包压缩,
解压命令为 “tar -xzvf 压缩包名称.tar.gz”。

2、grep

grep命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为“grep [选项] [文件]”

参数 作用
-b 将可执行文件(binary)当作文本文件(text)来搜索
-c 仅显示找到的行数
-i 忽略大小写
-n 显示行号
-v 反向选择—仅列出没有“关键词”的行
-r 对当前目录中的所有文件进行查找,包括子目录中的文件

3、find

find命令用于按照指定条件来查找文件,格式为“find [查找路径] 寻找条件 操作”。

参数 作用
-name 匹配名称
-perm 匹配权限(mode为完全匹配,-mode为包含即可)
-user 匹配所有者
-group 匹配所有组
-mtime -n +n 匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n 匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n 匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
-nouser 匹配无所有者的文件
-nogroup 匹配无所有组的文件
-newer f1 !f2 匹配比文件f1新但比f2旧的文件
–type b/d/c/p/l/f 匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
-size 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
-prune 忽略某个目录
-exec …… {}; 后面可跟用于进一步处理搜索结果的命令(下文会有演示)

重点说明一下最后一个参数:

find / -name ab.sql -exec cp -a {} /root/ \;
前面部分是正常语句,-exec和{}之间是要进一步处理的命令,{}代表我们find找出的文件,结尾必须是"\;"

你可能感兴趣的:(Linux,linux学习之路)