Linux---02---系统目录及文件基本操作命令

课程回顾

  • 操作系统

  • 虚拟机安装

本章重点

  • Linux系统目录结构

  • 常用命令

  • 熟练区分Linux下各层目录的作用

  • 熟练掌握Linux的常用命令(文件命令、时间命令等)

一、Linux系统目录结构

1.1 目录结构

/: 根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中

/bin:bin是Binary的缩写,这个目录存放着最经常使用的命令。

/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

/dev:dev是Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

/etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录。

==/home==:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

/sbin:s就是SuperUser的意思,这里存放的是系统管理员使用的系统管理程序。

/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,会把识别的设备挂载到这个目录下。

/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

==/opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。==

/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo1>/proc/sys/net/ipv4/icmp_echo_ignore_all

/root:该目录为系统管理员,也称作超级权限者的用户主目录。

/selinux:这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

/srv:该目录存放一些服务启动之后需要提取的数据。

/sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

/tmp:这个目录是用来存放一些临时文件的。

/usr:非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的programfiles。

/usr/bin:系统用户使用的应用程序。

/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。

/usr/src:内核源代码默认的放置目录。

/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有/var/run目录,应该让它指向run。

1.2 说明

在Linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc:上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin,/sbin,/usr/bin,/usr/sbin:这是系统预设的执行文件的放置目录,比如ls就是在/bin/ls目录下的。

值得提出的是,/bin,/usr/bin是给系统用户使用的指令(除root外的通用户),而/sbin,/usr/sbin则是给root使用的指令。

/var:这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log目录下,另外mail的预设放置也是在这里。

==综上,日常可以操作得目录使用/home,/opt,/tmp==

自己的电脑:windows

服务器:Linux

二、常用命令

终端窗口

[root@localhost ~]# 
​
[当前用户@服务器地址 当前位置]$ 命令

2.1 命令

格式

命令 【-参数选项】【参数】

参数选项:

  • -a:下所有文件和目录

  • --all :下所有文件和目录

如:ls -la /usr 

分类

linux命令的分类

内部命令∶属于Shell解析器的一部分

例如:cd切换目录(change directory)

pwd显示当前工作目录(print working directory)

help帮助

外部命令:独立于Shell解析器之外的文件程序

例如:ls显示文件和目录列表(list)

mkdir创建目录(make directoriy)

cp复制文件或目录(copy)

格式

命令名字 命令参数 (--全拼|-简写)

2.2 cd切换目录

cd(change directory)

[root@Linux ~]# cd 目录
  • cd / :切换到根目录

  • cd .. :切换到上层目录

  • cd ~:切换到家目录

  • cd -:切换到上一次目录

  • cd bin:切换到bin目录

2.3 文件常用命令

2.3.1 显示当前工作目录中的内容

要想知道当前的工作目录中有些什么文件或目录,在Windows的“命令提示符”中要使用“dir”命令,那么在Linux中就要使用“ls”命令

ls(list)

功能描述:显示文件目录

语法: ls 选项 【-ald】

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

-l 详细信息显示

-d 查看目录属性 (一般和l连用 可以查看详细信息)

-h 以可读性较高的形式显示一般和l连用 ls -lh

-r 反序排列

-S 以文件大小排序

-t 以文件修改时间排序

[root@Linux ~]# ls
anaconda-ks.cfg Desktop install.log install.log.syslog

这样屏幕上就立刻显示当前目录下的所有文件及自目录。文件颜色:

  • 蓝色:目录

  • 浅蓝色:链接

  • 红色:压缩包

  • 白色|黑色:一般的文件

  • 绿色:可执行文件

显示隐藏的文件

系统中一些文件,和Windows中的系统文件一样,这些文件一般是不显示出来的,那么我们可以使用“-a”参数来显示隐藏的文件。如下所示:

[root@Linux ~]# ls -a

看看这样显示的文件就比较多了。可以发现,隐藏文件是以“.”开头的文件。这些文件一般都有特殊的作用,如果显示出来,有可能被用户不小心删除。

# 文件的权限、所有者、文件大小等信息详细列出来
[root@Linux ~]# ls -l

我们可以结合上面的两个参数来显示目录下的文件,如下所示:

[root@Linux ~]# ls -al

显示其他目录中的文件

默认显示当前路径下的文件。

如果要显示其他目录中的文件,那么我们只要在“ls”后面加入所要显示的目录的路径。如下所示:

[root@Linux ~]# ls /
bin dev home lost+found misc net proc sbin srv tftpboot usr
boot etc lib media mnt opt root selinux sys tmp var

这样显示的就是“/”目录下的文件。当然我们也可以加入一下参数,如下所示:

[root@Linux ~]# ls -l /bin

mkdir

mkdir(make directory)

功能描述:创建新目录

[root@Linux ~]# mkdir myfile
[root@Linux ~]# ll
 一次性创建多个目录:
    mkdir 目录1 目录2 目录3 ….  

-p :递归创建文件夹

创建多层文件夹的时候使用的是 mkdir -p 文件夹/文件夹1

当一次性创建多层不存在的目录的时候,添加-p参数,否则会报错

rmdir

删除目录

使用“rmdir”命令来删除一个目录

[root@Linux ~]# rmdir myfile
​
# 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除
[root@Linux ~]# rmdir -p a/b/c

注意的是,使用这个命令来删除一个目录的时候,那么这个目录下必须是没有任何文件和文件夹的。

rm(remove)

功能描述:删除文件或目录

-r 递归删除

-d 目录

-f force强制

[root@Linux ~]# rm -dr 目录
​
# -d:文件夹
# -r:递归删除
[root@Linux ~]# rm -dr a

cp(copy)

功能描述:复制文件或目录

语法: cp -R 源文件或目录

-R 复制目录

cp [被复制的文档路径] [文档被复制到的路径]

当使用cp命令进行文件夹复制操作的时候需要添加选项“-r”【-r表示递归复制】,否则目录将被忽略

复制的时候文件可以重新命名 但是如果非必须 不建议

mv(move)

功能描述:移动文件 更名

语法: mv 源文件或目录

范例: mv  file1  file
将当前目录下文件file1更名为file
​
​
mv  file2  dir2
将文件file2 移动到目录dir2下
 

touch

功能描述:创建空文件

范例: touch newfile

newfile可以是一个文件名也可以是一个包含文件路径的文件名

使用touch来同时创建多个文件 touch 文件1 文件2

注意:不能创建多层文件

[root@Linux two]# touch 111.txt
[root@Linux two]# touch 112.txt
[root@Linux two]# touch 113.txt
[root@Linux two]# ll

pwd(print working directory)

pwd命令,显示当前所在的目录

[root@Linux ~]# pwd
/root
[root@Linux ~]# cd one
[root@Linux one]# pwd
/root/one
[root@Linux one]# cd ../two
[root@Linux two]# pwd
/root/two

locate

yum -y install mlocate

updatedb

默认不搜索/tmp下面的文件

语义描述: 搜索文件。

[root@Linux one]# locate install.log
/root/install.log
/root/install.log.syslog

cat

功能描述:显示文件内容

语法: cat [文件名]

[root@Linux ~]# cat install.log

cat还可以对文件进行合并

语法2:

cat 待合并的文件路径1 待合并的文件路径2 …. 文件路径n > 合并之后的文件路径

cat testyyl.txt test2.txt > ./test3.txt

more

分页显示文件内容(只能向下分页)

cat命令只能看到文件的部分或者只能看比较小的文件,more可以显示比较大的文件。

 [root@Linux ~]# more install.log 
 [root@Linux ~]# more /etc/issue

--More--(2%)(注意:最下面显示了一个提示,表示只显示这个文件的2%,按下空格键就翻下一页,当内容显示完后,就自动的退出,还可以按下“Q”键也可以退出。)。

less

more虽然可以显示比较大的文件,但是也有一个缺点,就是不能向上翻页,看过的内容要重新看,必须在重新运行命令。less就解决了more命令这个命令的不足

[root@Linux ~]# less install.log
  
  install.log

最下面显示的是这个文件的名称,可以使用“PageUp”和“PageDown”可以进行上一页和下一页的翻页。如果要知道具体的控制键,可以按下“H”键,可以显示less命令的所有控制键,如果想结束,可以按“Q”键。

head

功能描述: 查看文件的前几行

语法: head -num [文件名]

-num 显示文件的前num行

默认10行

# 显示前10行 
[root@Linux ~]# head install.log
[root@Linux ~]# head  -20 install.log  # 显示前20行 

tail

  • tail是显示文件的末尾几行,默认10行

    语法: tail -num [文件名]

    -num 显示文件的后num行

    -f 动态显示文件内容

# 显示后10行
[root@Linux ~]# tail install.log
[root@Linux ~]# tail -20 install.log

2.4 时间设置

  timedatectl命令对于RHEL / CentOS 7和基于Fedora 21+的分布式系统来说,是一个新工具,它作为systemd系统和服务管理器的一部分,代替旧的传统的用在基于Linux分布式系统的sysvinit守护进程的date命令。

  timedatectl命令可以查询和更改系统时钟和设置,可以使用此命令来设置或更改当前的日期,时间和时区,或实现与远程NTP服务器的自动系统时钟同步。

  通过使用来自于终端使用timedatectl命令的NTP,设置date、time、timezone和synchronize time来管理时间,它有以下优点:

  1)维护及时操作的系统任务,因为在Linux中的大多数任务都是由时间来控制的。

  2)记录事件和系统上其它信息等的正确时间。

2.4.1 设置本地时区

显示系统的当前时间和日期

RTC time是硬件时钟的时间。

# timedatectl status

查看当前时区

[root@localhost ~]$ timedatectl 
OR
[root@localhost ~]$ timedatectl | grep Time

查看所有可用的时区

[root@localhost ~]$ timedatectl list-timezones

要根据地理位置找到本地的时区

[root@localhost ~]$ timedatectl list-timezones | grep -o ‘’Asia/B.*”
[root@localhost ~]$ timedatectl list-timezones | grep -o “Europe/L.*”
[root@localhost ~]$ timedatectl list-timezones | grep -o “America/N.*”

设置本地时区

使用set-timezone开关

[root@localhost ~]$ timedatectl set-timezone "Asia/Kolkata"

中国上海的时区:

[root@localhost ~]$ timedatectl set-timezone "Asia/Shanghai"

        推荐使用和设置协调世界时,即UTC。

[root@localhost ~]$ timedatectl set-timezone UTC

需要输入正确命名的时区,否者在改变时区的时候,可能会发生错误。由于 “Asia/Kalkata” 这个时区是不正确的,因此导致了错误。

2.4.2 设置时间和日期

设置时间

使用set-time开关以及HH:MM:SS(小时,分,秒)的时间格式。

[root@localhost ~]$ timedatectl set-time 15:58:30

设置日期

使用set-time开关以及YY:MM:DD(年,月,日)的日期格式。

[root@localhost ~]$ timedatectl set-time 20151120


设置日期和时间

[root@localhost ~]$ timedatectl set-time '2015-11-20 16:10:40'

2.4.3 硬件时钟

要设置硬件时钟以协调世界时,UTC,可以使用 set-local-rtc boolean-value选项,如下所示:

首先确定你的硬件时钟是否设置为本地时区:

[root@localhost ~]$ timedatectl | grep local

将硬件时钟设置为本地时区:

[root@localhost ~]$ timedatectl=

硬件时钟设置为协调世界时(UTC):

[root@localhost ~]$ timedatectl set-local-rtc 0

2.4.4 同步时钟到远程NTP服务器

NTP即Network Time Protocol(网络时间协议),是一个互联网协议,用于同步计算机之间的系统时钟。timedatectl实用程序可以自动同步你的Linux系统时钟到使用NTP的远程服务器。

注意,必须在系统上安装NTP以实现与NTP服务器的自动时间同步。

要开始自动时间同步到远程NTP服务器,在终端键入以下命令。

[root@localhost ~]$ timedatectl set-ntp true

  要禁用NTP时间同步,在终端键入以下命令。

[root@localhost ~]$ timedatectl set-ntp false

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值