显示文件类型

了解文件类型可以决定用于读取文件的命令或者程序。
ls -F 命令或者 file 命令显示文件类型。
例如:

$ ls -F
dir1/	dir2/	dir3/	file1	file2	file3

下表显示了与“ls -F”命令输出一起使用的符号或者指示符。

指示符文件类型
*可执行
/目录
#ERROR!socket
@符号链接
|先进先出 (FIFO)

注意:符号链接是一种特殊类型的文件,它指向另一个文件或者目录。

file 命令还有助于确定某些文件类型。
file 命令的语法是:

$ file filename

例如,查看文件“test”的文件类型,输入file命令并指定文件名。

$ file test
test: ASCII text

file 命令的输出是以下之一:

  • 文本:文本文件包括美国信息交换标准代码 (ASCII) 文本、英文文本、命令文本和可执行的 shell 脚本。
  • 数据:数据文件由程序创建。 file 命令指示数据文件的类型,例如 FrameMaker 文档(如果类型已知)。如果类型未知,file 命令指示该文件是数据文件。
  • 可执行文件或者二进制文件:可执行文件包括 32 位可执行和可扩展链接格式 (ELF) 代码文件和其他动态链接的可执行文件。可执行文件是命令或者程序。

主目录

普通用户的home目录是用户登录后所在的位置。
用户可以在home目录下创建和存储文件。
通常,用户主目录的名称与用户的登录名相同。
例如,如果用户登录名是 john,则主目录将是 /home/john。

返回主目录

我们可以使用以下两种方法之一返回主目录:

  1. 使用不带参数的 cd 命令。
$ cd
$ pwd
/home/user
  1. 使用 cd 命令和主目录的绝对路径名。
$ cd /home/user

我们还可以使用 cd 命令导航到用户的主目录,并在用户名前添加波浪号 (~) 字符。
波浪号 (~) 字符是一个缩写,等同于用户的绝对路径名。

$ cd ~user
$ pwd
/home/user

注意:波浪号 (~) 字符是 shell 工具,并非在所有 shell 中都可用。

我们还可以使用波浪号 (~) 字符在相对路径中表示主目录。
以下示例中的波浪号 (~) 表示学生主目录。

$ cd ~/dir1/coffee

我们还可以使用波浪号 (~) 字符导航到另一个用户的主目录。

$ cd ~user2
$ pwd
/home/user2
$ cd
$ pwd
/home/user1

相对和绝对路径名

我们可以使用相对或者绝对路径名在目录层次结构中移动。
相对路径名列出了相对于当前工作目录的路径中的目录。
绝对路径名列出了路径中的所有目录,从根 (/) 目录开始。

例如,要使用相对路径名更改目录,请使用从当前工作目录 student 开始的路径名输入 cd 命令。

$ cd
$ cd dir1
$ pwd
/home/user/dir1
$ cd ../dir2
$ pwd
/home/user/dir2
$ cd
$ cd dir1/coffee
$ pwd /home/user/dir1/coffee

例如,要使用绝对路径名更改目录,请使用根 (/) 目录中的完整路径名输入 cd 命令。

$ cd
$ cd /home/user/dir1/coffee 
$ pwd 
/home/user/dir1/coffee

使用选项显示目录内容

ls -l 命令显示一长串文件信息。

以下是对上图中显示的长列表的部分的简要说明:

  • 第一个字符是文件类型。它可以是文件(-)或者目录(d)或者符号链接(l)等
  • 后九位表示文件权限:r表示可读,w表示可写,x表示可执行,-表示拒绝。
  • 第三部分(一个数字)是链接数。
  • 第四部分是所有者(user)。
  • 第五部分是组(用户)。
  • 第六部分是文件大小。
  • 第七部分是日期。
  • 第八部分是文件名。

当我们使用 ls 命令时,某些文件是隐藏的。
隐藏文件通常包含定制工作环境的信息。
“ls -la”命令列出目录中的所有文件,包括隐藏文件。

$ ls -la
total 1296
dr-xr-x---.  8 root root    4096 Jan 12 15:25 .
drwxr-xr-x. 23 root root    4096 Jan 12 15:25 ..
-rw-r--r--   1 root root     139 Apr 14 13:01 a
-rw-r--r--   1 root root    3564 Jan 12 12:53 .bash_history
-rw-r--r--   1 root root      18 Mar 12 21:32 .bash_logout
-rw-r--r--   1 root root     176 Mar 12 21:32 .bash_profile
-rw-r--r--   1 root root     176 Mar 12 21:32 .bashrc

注意:单个句点 (.) 表示当前工作目录。
双句点 (..) 表示父目录,其中包含当前工作目录。

ls -ld 命令显示有关目录的详细信息,但不显示其内容。

$ ls -ld directory name

例如,要获取 dir1 目录的详细目录信息,请输入 ls -ld 命令。

$ ls -ld dir1
drwxr-xr-x 2 root root 4096 Jan 12 15:32 dir1

例如,要查看 dir1 目录内容的递归列表,请输入 ls -R dir1 命令。

$ ls -R dir1
dir1:
file1  file2  file3  testdir
dir1/testdir:
textfile1  textfile2  textfile3

查看目录

目录是对对象的引用列表,其中可以包括文件、子目录和符号链接。
每个参考由两个部分组成:

  • 名称:对象的名称用于标识和访问对象。
  • 数字:数字指定存储有关对象的信息的 inode。

我们可以使用各种命令来显示当前目录、查看目录内容和更改目录。

什么是索引节点?

inode 是与特定对象(例如文件、目录或者符号链接)相关的信息列表。
inode 持有的信息包括inode 持有信息的对象类型、权限、所有权信息以及存储数据的位置。

确定当前目录

pwd 命令标识当前工作目录的完整或者绝对路径名。

$ pwd
/home/user

显示目录内容

ls 命令显示目录的内容。
ls 命令的语法是:

$ ls [-options] [filename]

以下是使用 ls 命令列出目录内容的几个示例。

  1. 要列出当前目录(/export/home/student)中的文件和目录,请输入不带参数的 ls 命令。
$ ls
file1  file2  file3
  1. 要显示当前工作目录中特定目录的内容,请输入 ls 命令,后跟目录名称。
$ ls dir1
textfile1  textfile2  textfile3
  1. 要显示不在当前工作目录中的目录的内容,请输入带有该目录完整路径的 ls 命令。
$  ls /var/tmp/test
test1  test2  test3
on  it road.com

更改目录

在目录层次结构中工作时,我们始终拥有一个当前工作目录。
当我们最初登录系统时,当前目录设置为主目录。
我们可以随时使用 cd 命令更改当前工作目录。
例如,要将目录从 student 目录更改为 dir1 目录,请使用 cd 命令:

$ pwd
/home/user
$ cd dir1
$ pwd
/home/user/dir1
$

当我们使用不带选项或者参数的 cd 命令时,当前工作目录将更改为主目录。
在命令行中,我们可以使用路径名缩写轻松导航到或者引用目录。
该表描述了路径名缩写。

符号路径名
.当前或者工作目录
..父目录,当前工作目录正上方的目录

例如,要移动到 dir1 的父目录,请输入 cd .. 命令。

$ pwd
/home/user/dir1
$ cd ..

使用 pwd 命令确认当前工作目录。

$ pwd
/home/user

注意:我们可以使用 cd .. 命令后跟斜杠 (/) 来向上移动目录层次结构的多个级别。
例如“cd ../../..”

Linux 命令行基础 - 使用文件和目录

这篇文章解释了如何使用文件和目录。
这包括诸如在目录结构中定位位置、查看文件内容、复制和移动文件和目录、创建和删除文件和目录以及搜索文件和目录等任务。

日期:2020-09-17 00:11:02 来源:oir作者:oir