Linux 面试题(精心整理100家互联网企业面试题史上最全面试题面试必过)
2024-01-24 次
Linux 面试题(精心整理100家互联网企业面试题史上最全面试题面试必过)Linux是一套免费使用和自由传播的类似Unix操作系统,一般的WEB项目都是部署都是放在Linux操作系统上面。 Linux是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Windows是微软开发的操作系统,民用操作系统,可用于娱乐、影音、上网。 Windows操作系统具有强大的日志记录系统和强大的桌面应用。好处是它可以帮我们实现非常多绚丽多彩的效果,可以非常方便去进行娱乐、影音、上网。
Linux的应用相对单纯很多,没有什么绚丽多彩的效果,因此Linux的性能是非常出色的,可以完全针对机器的配置有针对性的优化,
Linux和Unix都是功能强大的操作系统,都是应用广泛的服务器操作系统,有很多相似之处,甚至有一部分人错误地认为Unix和Linux操作系统是一样的,然而,事实并非如此,以下是两者的区别。
开源性 Linux是一款开源操作系统,不需要付费,即可使用;Unix是一款对源码实行知识产权保护的传统商业软件,使用需要付费授权使用。
跨平台性 Linux操作系统具有良好的跨平台性能,可运行在多种硬件平台上;Unix操作系统跨平台性能较弱,大多需与硬件配套使用。
硬件环境 Linux操作系统对硬件的要求较低,安装方法更易掌握;Unix对硬件要求比较苛刻,按照难度较大。
用户群体 Linux的用户群体很广泛,个人和企业均可使用;Unix的用户群体比较窄,多是安全性要求高的大型企业使用,如银行、电信部门等,或者Unix硬件厂商使用,如Sun等。 相比于Unix操作系统,Linux操作系统更受广大计算机爱好者的喜爱,主要原因是Linux操作系统具有Unix操作系统的全部功能,并且能够在普通PC计算机上实现全部的Unix特性,开源免费的特性,更容易普及使用!
Linux 系统的核心是内核。内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。
就像任何其他典型的操作系统一样,Linux拥有所有这些组件:内核,shell和GUI,系统实用程序和应用程序。Linux比其他操作系统更具优势的是每个方面都附带其他功能,所有代码都可以免费下载。
在BASH下,/ character是目录分隔符,\作为转义字符。在DOS下,/用作命令参数分隔符,\是目录分隔符
DOS遵循命名文件中的约定,即8个字符的文件名后跟一个点,扩展名为3个字符。BASH没有遵循这样的惯例。
通常,一个桌面环境,如KDE或Gnome开云网址,足以在没有问题的情况下运行。尽管系统允许从一个环境切换到另一个环境,但这对用户来说都是优先考虑的问题。有些程序在一个环境中工作而在另一个环境中无法工作,因此它也可以被视为选择使用哪个环境的一个因素。
交换空间是Linux使用的一定空间,用于临时保存一些并发运行的程序开云网址。当RAM没有足够的内存来容纳正在执行的所有程序时,就会发生这种情况。
root帐户就像一个系统管理员帐户,允许你完全控制系统。你可以在此处创建和维护用户帐户,为每个帐户分配不同的权限。每次安装Linux时都是默认帐户。
LILO是Linux的引导加载程序。它主要用于将Linux操作系统加载到主内存中,以便它可以开始运行。
BASH是Bourne Again SHell的缩写。它由Steve Bourne编写,作为原始Bourne Shell(由/ bin / sh表示)的替代品。它结合了原始版本的Bourne Shell的所有功能,以及其他功能,使其更容易使用。从那以后,它已被改编为运行Linux的大多数系统的默认shell。
)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为
通常认为,命令行界面(CLI)没有图形用户界面(GUI)那么方便用户操作。因为,命令行界面的软件通常需要用户记忆操作的命令,但是,由于其本身的特点,命令行界面要较图形用户界面节约计算机系统的资源。在熟记命令的前提下,使用命令行界面往往要较使用图形用户界面的操作速度要快。所以,图形用户界面的操作系统中,都保留着可选的命令行界面。
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务开云网址。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。
开源允许你将软件(包括源代码)免费分发给任何感兴趣的人。然后,人们可以添加功能,甚至可以调试和更正源代码中的错误。它们甚至可以让它运行得更好,然后再次自由地重新分配这些增强的源代码。这最终使社区中的每个人受益。
这种所谓的自由软件运动具有多种优势,例如可以自由地运行程序以及根据你的需要自由学习和修改程序。它还允许你将软件副本重新分发给其他人,以及自由改进软件并将其发布给公众。
在 Linux 操作系统中,所有作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出设备、普通文件或是目录都被看作是一个文件。
存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示;
存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等;
用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等;
这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
一般来说,面试不会问 inode 。但是 inode 是一个重要概念,是理解 Unix/Linux 文件系统和硬盘储存的基础。
文件储存在硬盘上,硬盘的最小存储单位叫做扇区(Sector)。每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个块(block)。这种由多个扇区组成的块,是文件存取的最小单位。块的大小,最常见的是4KB,即连续八个 sector组成一个 block。
文件数据都储存在块中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为索引节点。
inode 节点是一个 64 字节长的表,表中包含了文件的相关信息,其中有文件的大小、文件所有者、文件的存取许可方式以及文件的类型等重要信息。在 inode 节点表中最重要的内容是磁盘地址表。在磁盘地址表中有 13 个块号,文件将以块号在磁盘地址表中出现的顺序依次读取相应的块。
Linux 文件系统通过把 inode 节点和文件名进行连接,当需要读取该文件时,文件系统在当前目录表中查找该文件名对应的项,由此得到该文件相对应的 inode 节点号,通过该 inode 节点的磁盘地址表把分散存放的文件物理块连接成文件的逻辑结构。
:由于 Linux 下的文件是通过索引节点(inode)来识别文件,硬链接可以认为是一个指针,指向文件索引节点的指针,系统并不为它重新分配 inode 。每添加一个一个硬链接,文件的链接数就加 1 。
:软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。
不足:因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。
RAID 全称为独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、 容量巨大的硬盘。RAID 通常被用在服务器电脑上,使用完全相同的硬盘组成一个逻辑扇区,因此操作系统只会把它当做一个硬盘。
RAID 分为不同的等级,各个不同的等级均在数据可靠性及读写性能上做了不同的权衡。在实际应用中,可以依据自己的实际需求选择不同的 RAID 方案。
当然,因为很多公司都使用云服务,大家很难接触到 RAID 这个概念,更多的可能是普通云盘、SSD 云盘酱紫的概念。
CC 攻击,主要是用来攻击页面的,模拟多个用户不停的对你的页面进行访问,从而使你的系统资源消耗殆尽。
DDOS 攻击,中文名叫分布式拒绝服务攻击,指借助服务器技术将多个计算机联合起来作为攻击平台,来对一个或多个目标发动 DDOS 攻击。
流量清洗这一块,主要是买 ISP 服务商的防攻击的服务就可以,机房一般有空余流量,我们一般是买服务,毕竟攻击不会是持续长时间。
由于程序员的水平及经验参差不齐,大部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断。
应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的 SQL 注入。
SQL注入,是从正常的 WWW 端口访问,而且表面看起来跟一般的 Web 页面访问没什么区别,如果管理员没查看日志的习惯,可能被入侵很长时间都不会发觉。
想要新技术新功能可以选择 Feddora ,Feddora 是 RHEL 和 CentOS 的一个测试版和预发布版本。
根据现有状况,绝大多数互联网公司选择 CentOS 。现在比较常用的是 6 系列,现在市场占有大概一半左右。另外的原因是 CentOS 更侧重服务器领域,并且无版权约束
分析系统负载,使用 w 命令或者 uptime 命令查看系统负载。如果负载很高,则使用 top 命令查看 CPU ,MEM 等占用情况,要么是 CPU 繁忙,要么是内存不够。
如果这二者都正常,再去使用 sar 命令分析网卡流量,分析是不是遭到了攻击。一旦分析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访问等。
1、首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
2、如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。
3、针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。
4、如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。
3、如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
5、如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同一个服务。
cd ../ ;跳到上级目录 cd /opt ;不管现在到那直接跳到指定的opt文件夹中 cd ~ ;切换当前用户的家目录。root用户的家目录就是root目录。 复制代码
绝对路径: 如/etc/init.d 当前目录和上层目录: ./ ../ 主目录: ~/ 切换目录: cd
怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当 前用户 id?查看指定帮助用什么命令?
清屏: clear 退出当前命令: ctrl+c 彻底退出 执行睡眠 : ctrl+z 挂起当前进程 fg 恢复后台 查看当前用户 id: ”id“:查看显示目前登陆账户的 uid 和 gid 及所属分组 及用户名 查看指定帮助: 如 man adduser 这个很全 而且有例子; adduser --help 这 个告诉你一些常用参数; info adduesr;
创建目录: mkdir 创建文件:典型的如 touch,vi 也可以创建文件,其实只要向一个不存在的文件 输出,都会创建文件 复制文件: cp
1、不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的。不可中断, 指进程不响应异步信号。 2、暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响应该信号 而 进入 TASK_STOPPED 状态;当进程正在被跟踪时,它处于 TASK_TRACED 这个 特殊的状态。 正被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作。 3、就绪状态:在 run_queue 队列里的状态 4、运行状态:在 run_queue 队列里的状态 5、可中断睡眠状态:处于这个状态的进程因为等待某某事件的发生(比如等待 socket 连接、等待信号量),而被挂起 6、zombie 状态(僵尸):父亲没有通过 wait 系列的系统调用会顺便将子进程 的尸体(task_struct)也释放掉 7、退出状态 D 不可中断 Uninterruptible(usually IO) R 正在运行,或在队列中的进程 S 处于休眠状态 T 停止或被追踪 Z 僵尸进程 W 进入内存交换(从内核 2.6 开始无效) X 死掉的进程
whereis [-bfmsu][-B 目录...][-M 目录...][-S 目录...][文件...] 补充说明:whereis 指令会在特定目录中查找符合条件的文件。这些文件的烈性 应属于原始代码,二进制文件,或是帮助文件。 -b 只查找二进制文件。 -B 目录 只在设置的目录下查找二进制文件。 -f 不显示文件名前的 路径名称。 -m 只查找说明文件。 -M 目录 只在设置的目录下查找说明文件。-s 只查找原始代码文件。 -S 目录 只在设置的目录下查找原始代码文件。 -u 查找不包含指定 类型的文件。 w -h ich 指令会在 PATH 变量指定的路径中,搜索某个系统命令的位置,并且 返回第一个搜索结果。 -n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件 名。 -p 与-n 参数相同,但此处的包括了文件的路径。 -w 指定输出时栏位 的宽度。 -V 显示版本信息
du 显示目录或文件的大小 df 显示每个文件所在的文件系统的信息,默认是显示所有文件系统。 (文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如 i 节点,磁盘 分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的, 通常称为 Meta Data。) du 命令是用户级的程序,它不考虑 Meta Data,而 df 命令则查看文件系统的磁盘分配图并考虑 Meta Data。 df 命令获得真正的文件系统数据,而 du 命令只查看文件系统的部分情况。
可以使用 bind 命令,bind 可以很方便地在 shell 中实现宏或按键的绑定。 在进行按键绑定的时候,我们需要先获取到绑定按键对应的字符序列。
比如获取 F12 的字符序列获取方法如下:先按下 Ctrl+V,然后按下 F12 .我们就可 以得到 F12 的字符序列 ^[[24~。
注意:相同的按键在不同的终端或终端模拟器下可能会产生不同的字符序列。 【附】也可以使用 showkey -a 命令查看按键对应的字符序列。
linux 命令’hash’管理着一个内置的哈希表,记录了已执行过的命令的完整路径, 用该命令可以打印出你所使用过的命令以及执行的次数。
使用命令 whatis 可以先出显示出这个命令的用法简要,比如,你可以使用 whatis zcat 去查看‘zcat’的介绍以及使用简要。
ls (ls:list的缩写,查看列表)查看当前目录下的所有文件夹(ls 只列出文件名或目录名)
ls -a ;显示所有文件夹,隐藏文件也显示出来 ls -R ;连同子目录一起列出来 复制代码
ll (ll:list的缩写,查看列表详情)查看当前目录下的所有详细信息和文件夹(ll 结果是详细,有时间,是否可读写等信息)
ll -a ;显示所有文件,隐藏文件也显示出来 ll -R ;连同子目录内容一起列出来 ll -h ;友好展示详情信息,可以看大小 ll -al ;即能显示隐藏文件又能显示详细列表。 复制代码
touch test.txt ;创建test.txt文件 touch /opt/java/test.java ;在指定目录创建test.java文件 复制代码
mkdir 文件夹名称 ;在此目录创建文件夹 mkdir /opt/java/jdk ;在指定目录创建文件夹 复制代码
cat (concatenate:显示或把多个文本文件连接起来)查看文件命令(可以快捷查看当前文件的内容)(不能快速定位到最后一页)
cat lj.log ;快捷查看文件命令 Ctrl + c ;暂停显示文件 Ctrl + d ;退出查看文件命令 复制代码
回车:向下n行,需要定义,默认为1行。 空格键:向下滚动一屏或Ctrl+F B:返回上一层或Ctrl+B q:退出more 复制代码
less -m 显示类似于more命令的百分比。 less -N 显示每行的行号。(大写的N) 两参数一起使用如:less -mN 文件名,如此可分页并显示行号。 空格键:前下一页或page down。 回车:向下一行。 b:后退一页 或 page up。 q:退出。 d:前进半页。 u:后退半页 复制代码
cp /opt/java/java.log /opt/logs/ ;把java.log 复制到/opt/logs/下 cp /opt/java/java.log /opt/logs/aaa.log ;把java.log 复制到/opt/logs/下并且改名为aaa.log cp -r /opt/java /opt/logs ;把文件夹及内容复制到logs文件中 复制代码
mv /opt/java/java.log /opt/mysql/ ;移动文件到mysql目录下 mv java.log mysql.log ;把java.log改名为mysql.log 复制代码
-f或--force 强制删除文件或目录。删除文件不包括文件夹的文件 -r或-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并删除。 -rf 强制删除文件夹及内容 rm 文件名 ;安全删除命令 (yes删除 no取消) rm -rf 强制删除文件夹及内容 rm -rf * 删除当前目录下的所有内容。 rm -rf /* 删除Linux系统根目录下所有的内容。系统将完蛋。 复制代码
* 表示0~多个任意字符。 find -name 文件名;按照指定名称查找在当前目录下查找文件 find / -name 文件名按照指定名称全局查找文件 find -name *文件名 ;任意前缀加上文件名在当前目录下查找文件 find / -name *文件名* ;全局进行模糊查询带文件名的文件 复制代码
vi (VIsual:视觉)文本编辑器 类似win的记事本 (操作类似于地下的vim命令,看底下vim 的操作)
vim (VI IMproved:改进版视觉)改进版文本编辑器 (不管是文件查看还是文件编辑 按 Shift + 上或者下可以上下移动查看视角)
输入”vim 文件名” 打开文件,刚刚时是”一般模式”。 一般模式:可以浏览文件内容,可以进行文本快捷操作。如单行复制,多行复制,单行删除,多行删除,(退出)等。 插入模式:可以编辑文件内容。 底行模式:可以进行强制退出操作,不保存 :q! 可以进行保存并退出操作 :wq 按下”i”或”a”或”o”键,从”一般模式”,进入”插入模式(编辑模式)”。 在编辑模式下按”Esc” 即可到一般模式 在一般模式下按”:”,冒号进入底行模式。 在一般模式下的快捷键 dd ;删除一整行 X ;向前删除 等同于windowns系统中的删除键 x ;向后删除和大写x相反方向 Ctrl + f ;向后看一页 Ctrl + b ;向前看一页 u ;撤销上一步操作 /word ;向下查找word关键字 输入:n查找下一个,N查找上一个(不管是哪个查找都是全局查找 只不过n的方向相反) ?log ;向上查找log关键字 输入:n查找上一个,N查找下一个 :1,90s/redis/Redis/g ;把1-90行的redis替换为Redis。语法n1,n2s/原关键字/新关键字/g,n1代表其实行,n2代表结尾行,g是必须要的 :0 ;光标移动到第一行 :$ ;光标移动到最后一行 :300 ;光标移动到300行,输入多少数字移动到多少行 :w ;保存 :w! ;强制保存 :q ;退出 :q! ;强制退出 5dd ;删除后面5行,打一个参数为自己填写 5x ;删除此光标后面5个字符 d1G ;删除此光标之前的所有 d0 ;从光标当前位置删除到此行的第一个位置 yy ;复制 p ;在光标的下面进行粘贴 P ;在光标的上门进行粘贴 复制代码
grep (grep :正则表达式)正则表达式,用于字符串的搜索工作(模糊查询)。不懂可以先过
单独使用: grep String test.java ;在test.java文件中查找String的位置,返回整行 一般此命令不会单独使用下面列几个常用的命令(地下通过管道命令组合起来使用) ps auxgrep java ;查找带java关键字的进程 ll grep java ;查找带java关键字的文件夹及文件 复制代码
yum install -y lrzsz 命令(实现win到Linux文件互相简单上传文件)
#(实际上就是在Linux系统中下载了一个插件)下了了此安装包后就可以实现win系统到linux之间拉文件拉文件 #等待下载完了就可以输入: rz 从win系统中选择文件上传到Linux系统中 sz 文件名 选择Linux系统的文件复制到win系统中 复制代码
常用的组合命令: -z 是否需要用gzip压缩。 -c 建立一个压缩文件的参数指令(create) –压缩 -x 解开一个压缩文件的参数指令(extract) –解压 -v 压缩的过程中显示文件(verbose) -f 使用档名,在f之后要立即接档中(file) 常用解压参数组合:zxvf 常用压缩参数组合:zcvf 解压命令: tar -zxvf redis-3.2.8.tar.gz ;解压到当前文件夹 tar -zxvf redis-3.2.8.tar.gz -C /opt/java/ ;解压到指定目录 压缩命令:(注意 语法有点反了,我反正每次都搞反) tar -zcvf redis-3.2.8.tar.gz redis-3.2.8/ ;语法 tar -zcvf 压缩后的名称 要压缩的文件 tar -zcvf 压缩后的文件(可指定目录) 要压缩的文件(可指定目录) 复制代码
常用组合:ps -ef 标准的格式查看系统进程 ps -aux BSD格式查看系统进程 ps -auxgrep redis BSD格式查看进程名称带有redis的系统进程(常用技巧) //显示进程的一些属性,需要了解(ps aux) USER //用户名 PID //进程ID号,用来杀死进程的 %CPU //进程占用的CPU的百分比 %MEM //占用内存的的百分比 VSZ //该进程使用的虚拟內存量(KB) RSS //该进程占用的固定內存量(KB) STAT //进程的状态 START //该进程被触发启动时间 TIME //该进程实际使用CPU运行的时间 复制代码
kill 命令用来中止一个进程。(要配合ps命令使用,配合pid关闭进程) (ps类似于打开任务管理器,kill类似于关闭进程) kill -5 进程的PID ;推荐,和平关闭进程 kill -9 PID ;不推荐,强制杀死进程 复制代码
用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户。(一般是用来查看的,很少更改) 如果此命令输入无效,先输入yum -y install net-tools ifconfig 复制代码
测试: 1、在Windows操作系统中cmdipconfig,查看本机IP地址: 2、再到LInux系统中输入 ping ip地址 (公司电脑,我就不暴露Ip了,没图片 自己去试) 按Ctrl + C 可以停止测试。 复制代码
#显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。 -b 以Byte显示内存使用情况 -k 以kb为单位显示内存使用情况 -m 以mb为单位显示内存使用情况 -g 以gb为单位显示内存使用情况 -s间隔秒数 持续显示内存 -t 显示内存使用总合 复制代码
#显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等 -c 显示完整的进程命令 -s 保密模式 -p 进程号 指定进程显示 -n 次数循环显示次数 复制代码
#Linux netstat命令用于显示网络状态。 #利用netstat指令可让你得知整个Linux系统的网络情况。 #语法: netstat [-acCeFghilMnNoprstuvVwx][-A网络类型][--ip] 复制代码
mkdir创建目录时,只有在目录的上级目录存在时,才会创建 mkdir -p 目录#创建目录时,如果没有父目录,会创建父目录,递归地创建目录 mkdir -p a/b/c #在当前目录下创建3级目录
rm -rf /etc/localtime ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 复制代码