02.Linux常用文件目录命令

1. Linux命令的普遍语法格式

命令格式: 命令 【-选项】【参数】
  例子:   ls -la /etc
  说明: ①、个别命令使用不遵循此格式,【】这种符号表示可以省略
       ②、当有多个选项时,可以写在一起
       ③、简化选项(一般用一个-)与完整选项(一般用两个–)
         比如 ls -a 等于 ls --all

2. 查看目录内容

2.1.显示目录文件命令:ls

①、命令名称:ls

②、英文原意:list

③、命令所在路径:/bin/ls

④、执行权限:所有用户

⑤、功能描述:显示目录文件

⑥、语法: ls 选项【-ald】【文件或目录】

 -a 显示所有文件,包括隐藏文件

 -l 详细信息显示

 -d 仅显示目录名,而不显示目录下的内容列表

 -h 人性化显示(hommization)

 -i 查看任意一个文件的i节点(类似于身份证唯一信息)

注意:. 开头的文件除非是目录,否则就是隐藏文件
  在这里插入图片描述
  文件属性如下:
在这里插入图片描述

2.2 tree 命令

有可能tree命令不存在,需要安装tree包才有(安装:yum -y install tree)
tree命令的选项说明如下:

【 匹配选项:】

-L:用于指定递归显示的深度,指定的深度必须是大于0的整数。

-P:用于显示通配符匹配模式的目录和文件,但是不管是否匹配,目录一定显示。

-I:用于显示除被通配符匹配外的所有目录和文件

【 显示选项:】

`-a:用于显示隐藏文件,默认不显示。

-d:指定只显示目录。

-f:指定显示全路径。

-i:不缩进显示。和-f一起使用很有用。

-p:用于显示权限位信息。

-h:用于显示大小。

-u:显示username或UID(当没有username时只能显示UID了)。

-g:显示groupname或GID。

-D:显示文件的最后一次Mtime。

--inodes:显示inode号。

--device:显示文件或目录所属的设备号。

-C:显示颜色。

【 输出选项:】

-o filename:指定将tree的结果输出到filename文件中`。

3. 文件/目录的创建和删除

3.1 创建目录mkdir

mkdir [-mp] 目录名

-m:表示创建目录时直接设置权限

-p:表示递归创建多层目录,即上层目录不存在时也会直接将其创建出来(parent)
[root@localhost ~] mkdir /tmp/test1   # 在tmp目录中创建一个test1目录
[root@localhost ~] mkdir -m 711 /tmp/test2  # 直接创建test2时就赋予权限711
[root@localhost ~] mkdir -p /tmp/test3/test4/test5  # 创建test5,此时会将不存在的test3和test4目录也创建好
[root@localhost ~] cd /tmp
[root@localhost tmp] ls
ks-script-OkDpfX
systemd-private-765850f8149f41169696558545d0af1a-chronyd.service-7jh8Hw
systemd-private-d0783b3c3fe34d1fb14f8c671e50e650-chronyd.service-0JMr4y
test1
test2
test3
yum.log

3.2 创建文件touch

touch file_name
[root@localhost ~] touch /tmp/test1/test1.txt
[root@localhost ~] touch {1..10} #创建文件名为1-10的文件

多个{}还可以交换扩展。类似(a+b)(c+d)=ac+ad+bc+bd。
[root@localhost ~] touch {a,b}_{c,d}  # 创建a_c、a_d、b_c、b_d四个文件


touch主要是修改文件的时间戳信息,当touch的文件不存在时就自动创建该文件。可以使用 touch –c 来取消创建动作。

touch可以更改最近一次访问时间(atime),最近一次修改时间(mtime),文件属性修改时间(ctime),这些时间可以通过命令stat file来查看。其中ctime是文件属性上的更改,即元数据的更改,比如修改权限。

touch -a修改atime,-m修改mtime,没有修改ctime的选项。因为使用touch改变atime或mtime,同时也都会改变ctime,虽说atime并不总是会影响ctime(如cat文件时)

3.3 删除文件/目录

rm [-rfi] file_name

参数:

-r:表示递归删除,删除目录时需要加此参数

-i:询问是否删除(yes/no)

-f:强制删除,不进行询问
[root@localhost ~] rm -rf 1 10 {a,b}_{c,d}
[root@localhost ~] ls
a  anaconda-ks.cfg  gid.txt  sh

删除空目录时还可以使用rmdir

4.查看文件类型file 命令

这是一个简单查看文件类型的命令,查看文件是属于二进制文件还是数据文件还是ASCII文件。

[root@localhost ~] file /etc/aliases.db 
/etc/aliases.db: Berkeley DB (Hash, version 9, native byte-order)
[root@localhost ~] file ~/.bashrc 
/root/.bashrc: ASCII text #ASCII文件

5.文件/目录复制和移动

5.1 复制cp命令

cp [-apdriulfs] src dest # 复制单文件或单目录

cp [-apdriuslf] src1 src2 src3…dest_dir # 复制多文件、目录到一个目录下

-p: 文件的属性(权限、属组、时间戳)也复制过去。如果不指定p选项,谁执行复制动作,文件所有者和组就是谁。

-r或-R:递归复制,常用于复制非空目录。####

-d:复制的源文件如果是链接文件,则复制链接文件而不是指向的文件本身。即保持链接属性,复制快捷方式本身。如果不指定-d,则复制的是链接所指向的文件。

-a:a = pdr三个选项。归档拷贝,常用于备份。####

-i:复制时如果目标文件已经存在,询问是否替换。

-u:(update)若目标文件和源文件同名,但属性不一样(如修改时间,大小等),则覆盖目标文件。

-f:强制复制,如果目标存在,不会进行-i选项的询问和-u选项的考虑,直接覆盖。

-l:在目标位置建立硬链接,而不是复制文件本身。

-s:在目标位置建立软链接,而不是复制文件本身(软链接或符号链接相当于windows的快捷方式)

一般使用cp -a即可,对于目录加上-r选项即可。

[root@localhost ~]  cp -a /etc/skel/. /tmp  #这里 . 代表隐藏文件

在这里插入图片描述

5.2 移动MV命令

①、命令名称:mv

②、英文原意:move

③、命令所在路径:/bin/mv

④、执行权限:所有用户

⑤、功能描述:剪切文件、改名

⑥、语法: mv【原文件或目录】【目标目录】
  
mv默认已经是递归移动,不需要-r参数。

[root@localhost ~]  mkdir -p /tmp/tmp1/tmp1_1
[root@localhost ~]  mv /tmp/tmp1/tmp1_1 /tmp
[root@localhost ~]  ls /tmp
tmp1  tmp1_1

6.查看文件内容

6.1 cat命令

cat 命令可以用来显示文本文件的内容(类似于 DOS 下的 type 命令),也可以把几个文件内容附加到另一个文件中,即连接合并文件。关于此命令,有人认为写 cat 命令的人是因为喜欢猫,因此给此命令起名为“cat”,其实不然,cat 是 concatenate(连接、连续)的简写。

cat基本格式如下:

[root@localhost ~]# cat [选项] 文件名
或者
[root@localhost ~]# cat 文件1 文件2 > 文件3

选项:

-A 	相当于 -vET 选项的整合,用于列出所有隐藏符号;
-E 	列出每行结尾的回车符 $;
-n 	对输出的所有行进行编号;
-b 	同 -n 不同,此选项表示只对非空行进行编号。
-T 	把 Tab 键 ^I 显示出来;
-V 	列出特殊字符;
-s 	当遇到有连续 2 行以上的空白行时,就替换为 1 行的空白行。

【例1】:cat 命令本身非常简单,我们可以直接查看文件的内容

[root@localhost ~] cat anaconda-ks.cfg
# Kickstart file automatically generated by anaconda.
#version=DEVEL
install
cdrom
lang zh一CN.UTF-8

【例2】:通过重定向输入文本

cat > /etc/yum.repos.d/test.repo <<END
[testrepo]
name=xx
baseurl=xxx
gpgcheck=0
enabled=0
END

6.2 tac命令

tac和cat字母正好是相反的,其作用也是和cat相反的,它会反向输出行,将最后一行放在第一行的位置输出,依此类推
【例1】:显示 /etc/issue的内容

[root@localhost ~]  cat /etc/issue
\S
Kernel \r on an \m

[root@localhost ~]  tac /etc/issue

Kernel \r on an \m
\S

6.3 more命令

在讲解 cat 命令时,我们留下了一个疑问,即当使用 cat 命令查看文件内容时,如果文件过大,以至使用PgUp+上箭头组合键向上翻页也无法看全文件中的内容,该怎么办呢?这就需要使用 more 命令。

more 命令可以分页显示文本文件的内容,使用者可以逐页阅读文件中内容,此命令的基本格式如下:

[root@localhost ~] more [选项] 文件名

参数:

-f 	计算行数时,以实际的行数,而不是自动换行过后的行数。
-p 	不以卷动的方式显示每一页,而是先清除屏幕后再显示内容。
-c 	跟 -p 选项相似,不同的是先显示内容再清除其他旧资料。
-s 	当遇到有连续两行以上的空白行时,就替换为一行的空白行。
-u 	不显示下引号(根据环境变量 TERM 指定的终端而有所不同)。
+n 	从第 n 行开始显示文件内容,n 代表数字。
-n 	一次显示的行数,n 代表数字。

【例1】用分页的方式显示 anaconda-ks.cfg 文件的内容

[root@localhost ~] more anaconda-ks.cfg
# Kickstart file automatically generated by anaconda.
#version=DEVEL
install
cdrom
…省略部分内容…
--More--(69%)
#在这里执行交互命令即可

【例 2】显示文件 anaconda-ks.cfg 的内容,每 10 行显示一屏,同时清楚屏幕,使用以下命令:

[root@localhost ~] more -c -10 anaconda-ks.cfg
#省略输出内容。

6.4 head命令

head 命令可以显示指定文件前若干行的文件内容,其基本格式如下:

[root@localhost ~]# head [选项] 文件名
-n K 	这里的 K 表示行数,该选项用来显示文件前 K 行的内容;如果使用 "-K" 作为参数,则表示除了文件最后 K 行外,显示剩余的全部内容。
-c K 	这里的 K 表示字节数,该选项用来显示文件前 K 个字节的内容;如果使用 "-K",则表示除了文件最后 K 字节的内容,显示剩余全部内容。
-v 	显示文件名;

【例 1】基本用法。

[root@localhost ~] head anaconda-ks.cfg

head 命令默认显示文件的开头 10 行内容。如果想显示指定的行数,则只需使用 “-n” 选项即可,例如:

[root@localhost ~]  head -n 20 anaconda-ks.cfg

这是显示文件的开头 20 行内容,也可以直接写 “-行数”,例如:

[root@localhost ~]  head -20 anaconda-ks.cfg

6.5 less命令

less 命令的作用和 more 十分类似,都用来浏览文本文件中的内容,不同之处在于,使用 more 命令浏览文件内容时,只能不断向后翻看,而使用 less 命令浏览,既可以向后翻看,也可以向前翻看。

less 命令的基本格式如下:

[root@localhost ~] less [选项] 文件名
-N 	显示每行的行号。
-S 	行过长时将超出部分舍弃。
-e 	当文件显示结束后,自动离开。
-g 	只标志最后搜索到的关键同。
-Q 	不使用警告音。
-i 	忽略搜索时的大小写。
-m 	显示类似 more 命令的百分比。
-f 	强迫打开特殊文件,比如外围设备代号、目录和二进制文件。
-s 	显示连续空行为一行。
-b <缓冲区大小> 	设置缓冲区的大小。
-o <文件名> 	将 less 输出的内容保存到指定文件中。
-x <数字> 	将【Tab】键显示为规定的数字空格。

【例 1】使用 less 命令查看 /boot/grub/grub.cfg 文件中的内容。

[root@localhost ~] less /boot/grub/grub.cfg
#
#DO NOT EDIT THIS FILE
#
#It is automatically generated by grub-mkconfig using templates from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
set default="0"
if [ "$ {prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry= save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
:

可以看到,less 在屏幕底部显示一个冒号(:),等待用户输入命令,比如说,用户想向下翻一页,可以按空格键;如果想向上翻一页,可以按 b 键

6.6 tail命令

tail 命令和 head 命令正好相反,它用来查看文件末尾的数据,其基本格式如下:

[root@localhost ~]# tail [选项] 文件名

选项参数:

 -n   指定显示的行数

 -f 动态显示文件末尾内容(即文件实时变化,那么显示内容也会随之变化)####

【例 1】查看 /etc/passwd 文件最后 3 行的数据内容。

[root@localhost ~]  tail -n 3 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值