Linux(2)- linux目录结构、shell基本命令
一、Linux之文档与目录结构
1、Linux文件系统结构
Linux目录结构的组织形式和Windows有很大的不同。Linux没有“盘(如C盘、D盘、E盘)”的概念,而是建立一个根"/"文件系统,所有的目录也都是由根目录衍生出来。
Linux与Windows系统目录有所不同,windows使用反斜杠"\"来作为目录分隔符,而Linux使用正斜杠"/"作为目录分隔符,如下:
Windows目录:
Linux目录:
登录linux系统,在终端输入如下命令:
[root@localhost ~]# ls /
查看结果如下:
在Linux系统中,所有的文件与目录都是由根目录开始,是目录与文件的源头,然后一个个的分支下来,如同树枝状,因此称为这种目录配置为:目录树。
2、目录树架构示意图
/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。
/dev:dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件。
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/selinux:这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
/srv:该目录存放一些服务启动之后需要提取的数据。
/sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs 文件系统以及针对伪终端的devpts文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmp:这个目录是用来存放一些临时文件的。
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin:系统用户使用的应用程序。
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:内核源代码默认的放置目录。
在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin,/usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
3、目录的相关介绍
所有目录下都存在两个目录,【.】和【..】,分别代表当前目录和上级目录!如何证明它的存在?如下:
参数: -l 以列表形式显示文件
-a 显示所有隐藏文件(linux中以 . 开头的文件或者文件夹都是隐藏的)
4、cd命令切换目录
我们知道切换工作目录的指令是cd(change directory的缩写),那么首先要知道都有哪些目录,如下:
. 当前工作目录
.. 上一级工作目录
- 前一个工作目录
~ 当前【用户】所在的家目录
5、mkdir,建立新目录
mkdir命令用来建立新目录,是make directory的缩写,默认情况下,目录要一级一级的建立,例如要建立/tmp/oldboy/python目录,就必须有/tmp,然后/tmp/oldboy,最后/tmp/oldboy/python,如果没有/tmp/oldboy,则不能建立python目录!
可见高效的创建目录用上-p参数,可以直接执行命令【mkdir -p /tmp/oldboy/python】,系统会自动添加上/tmp,/tmp/oldboy,/tmp/oldboy/python依次建立目录,是不是很方便。
也可以一次性创建多个文件,如下:
6、rmdir,删除空目录
rmdir命令用来删除目录,是remove directory的缩写,但是注意rmdir只能删除空目录。
rm -r 递归删除文件夹,会询问是否删除
rm -rf 强制(-f)递归(-r)删除文件夹和文件且没有提示,炸弹命令,谨慎使用!
VMware虚拟机有快照功能,可以拍下当前系统的状态,以便日后回复。
7、Linux的环境变量PATH
我们配置过windows下的环境变量(PATH),知道系统会按照PATH的设定,去每个PATH定义的目录下搜索可执行文件。
那么如何查看Linux下的PATH环境变量呢?
PATH一定是大写的,这个变量是由一堆目录组成,分隔符是冒号":",而不同于windows的分号";"
echo 相当于python中的print。。
8、绝对路径与相对路径
路径是Linux中非常重要的概念,它用来定位如何找到某个文件。
Linux下特别注意文件名/路径的写法,可以将所谓的路径(path)定义为绝对路径(absolute)和相对路径(relative)。这两种文件名/路径的写法依据是这样的:
- 绝对路径:由根目录(/)为开始写起的文件名或目录名称,如/tmp/oldboy/test.py;
- 相对路径:相对于当前路径的文件名写法,如./tmp/oldboy/exam.py或../../tmp/oldboy/exam.py,简单来说只要开头不是/,就是属于相对路径;
9、Linux的文件系统
用户在硬件存储设备中执行的文件建立,写入,读取,修改,转存与控制等操作都是依赖文件系统完成的。文件系统的作用是合理规划硬盘,保证用户正常使用。
Linux系统支持数十种文件系统,常见文件系统如下:
- Ext3 是一款日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能 自动修复数据的不一致与错误。
- Ext4 是Ext3的改进版本,作为 RHEL 6 系统中的默认文件管理系统,它支持的存储容 量高达 1EB(1EB=1,073,741,824GB),且能够有无限多的子目录。另外,Ext4 文件系统能够批量分配 block 块,从而极大地提高了读写效率。
- XFS 是一种高性能的日志文件系统,而且是 RHEL 7 中默认的文件管理系统,它的优势在发生意外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,而且强大的 日志功能只用花费极低的计算和存储性能。并且它最大可支持的存储容量为 18EB,这几乎满足了所有需求。
如何查看,/etc/fstab是用来存放文件系统的静态信息文件,命令如下:
cat /etc/fstab
二、shell基本命令
1、Linux命令行的组成结构
2、Linux系统命令操作语法格式
命令 空格 参数 空格 【文件或路径】需要处理的内容
rm -rf /tmp/*
ls -la /home
1) 一般情况下,【参数】是可选的,一些情况下【文件或路径】也是可选的;
2) 参数:同一个命令,跟上不同的参数执行不同的功能;
3、特殊符号
> 重定向,覆盖写入,清空原文件所有内容,然后把文字写入文件
>> 追加重定向,追加写入,把文字追加到文件的结尾
4、查看文件内容
cat命令用于查看纯文本文件
5、more命令
more命令用于查看内容较多的文本,例如要看一个很长的配置文件,cat查看内容屏幕会快速翻滚到结尾。more命令查看文本会以百分比形式告知已经看到了多少,使用回车键向下读取内容。
more /etc/passwd 查看passwd文件内容
空格 翻页
b 上一页
回车键 向下读取内容
6、Linux快捷键
tab键 用于自动补全命令/文件名/目录名
ctrl + l或clear或cls 清理终端显示
ctrl + c 终止当前操作
7、复制(拷贝)命令
cp xxx.py /tmp 复制xxx.py到/tmp目录下
cp xxx.py /tmp/my.py 复制xxx.py到/tmp/目录下并且改名为my.py
Linux下面很多命令,一般没有办法直接处理文件夹,因此需要加上参数
cp -r 递归,复制目录以及目录的子孙后代
注意:cp是个好命令,操作文件前,先备份,如下:
cp main.py main.py.bak
8、mv命令
mv a.log b.log 将文件a.log改名为b.log
mv /home/test /tmp 将/home下的test文件移动到/tmp目录下
9、查找命令
find 从哪里找(目录) 查找文件的类型 查找的文件名
参数:
-name 按照文件名查找文件
-type 查找如下类型的文件,文件类型有以下几种:
b 块设备文件
d 目录
c 字符设备文件
p 管道文件
l 符号链接文件
f 普通文件
s socket文件
示例如下:
find /tmp/ -type f -name "*.txt" 找出/tmp所有以 .txt 结尾的文件
find /etc -name 'host*' 找到/etc下所有名字以host开头的文件
find /opt -name 'settings.py' 找到/opt上一个名为settings.py
10、grep命令
global search regular expression(RE) and print out the line,即全面搜索正则表达式并把行打印出来,grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,如下:
语法:grep [参数] [--color=auto] [字符串] filename
参数详解:
-i : 忽略大小写
-n : 输出行号
-v : 反向选择
--color = auto : 给关键词部分添加颜色
示例:
grep "what" /tmp/test.txt 从/tmp下的test.txt文件中查找what字符串所在行
grep -v "what" /tmp/test.txt -v反向选择,即查找除上条命令结果之外的其他所有行
11、管道符
Linux提供的管道符“|”将两条命令隔开,管道符左边命令的输出会作为管道符右边命令的输入。
常见用法如下:
ps -ef|grep python 检查python程序是否启动
ls /tmp|grep .txt 找到/tmp目录下所有txt文件
netstat -tunlp |grep nginx 检查nginx的端口是否存活
cat /etc/passwd |grep 'mysql' -n 找到/etc/passwd的所有与mysql有关行,行号
cat /etc/passwd |grep '^root' --color=auto -n 找出/etc/passwd下root用户所在行,以及行号,显示颜色
12、head、tail命令
head显示文件前几行,默认前10行,tail显示文件后几行,默认后10行,示例如下:
head -2 /tmp/test.txt 查看前两行
tail -2 /tmp/test.txt 查看后两行
tail -f xx.log 持续刷新显示,实时监控,可用于监控日志文件
head -30 /tmp/test.txt |tail -21 显示文件10-30行
13、别名alias命令
14、为rm设置别名
alias rm='echo do not use rm' 设置rm别名,当使用rm命令时,让系统显示 do not use rm
unalias rm 取消别名
15、which命令
which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。
which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which pwd pwd命令在哪儿,结果为/usr/bin/pwd
which python python命令在哪儿,结果为/usr/bin/python
16、scp命令
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。用于Linux之间复制文件和目录。
语法:scp [可选参数] 本地源文件 远程文件标记
参数:
-r:递归复制整个目录
-v:详细方式输出
-q:不显示传输进度条
-C:允许压缩
示例:
传输本地文件到远程地址
scp /tmp/test.py root@192.168.1.155:/home/
scp /tmp/test.py root@192.168.1.155:/home/test_python.py
复制远程文件到本地
scp root@192.168.1.155:/home/oldboy.txt /tmp/oldboy.txt
scp -r root@192.168.1.155:/home/oldboy /home/
17、du命令
du会显示指定的目录或文件所占用的磁盘空间。
语法:du [参数] [文件或目录]
参数:
-s:显示总计
-h:以k,M,G为单位显示,可读性强
示例:
du 不加参数,代表显示当前目录所有文件大小
du -sh /home 显示/home的总大小且以k,M,G为单位显示
18、top命令
top 命令用于动态地监视进程活动与系统负载等信息,输入命令显示如下:
上图中信息解释如下:
第一行:(uptime)
系统时间 主机运行时间 用户连接数(who) 系统1,,15分钟的平均负载
第二行:进程信息
进程总数 正在运行的进程数 睡眠的进程数 停止的进程数 僵尸进程数
第三行:cpu信息
0.0 us:用户空间所占CPU百分比
0.3 sy:内核空间占用CPU百分比
0.0 ni:用户进程空间内改变过优先级的进程占用CPU百分比
99.7 id:空闲CPU百分比
0.0 wa:等待输入输出的CPU时间百分比
0.0 hi:硬件CPU中断占用百分比
0.0 si:软中断占用百分比
0.0 st:虚拟机占用百分比
第四行:内存信息(与第五行的信息类似与free命令)
total:物理内存总量
used:已使用的内存总量
free:空闲的内存总量(free+used=total)
buffers:用作内核缓存的内存量
第五行:swap信息
total:交换分区总量
used:已使用的交换分区总量
free:空闲交换区总量
cached Mem:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
19、chattr命令、lsattr命令
chattr命令可以给文件加锁,则文件只能写入数据,无法删除文件,用法如下图:
20、linux时间同步
linux的date命令可以显示当前时间或者设置系统时间。
date查看当前时间,如下:
如果时间不正确,可使用如下命令进行时间同步:
ntpdate -u ntp.aliyun.comm
21、wget命令
wget命令用于在终端下载网络文件。
语法:wget [参数] 下载地址
示例:
wget http://pythonav.cn/av/girl.jpg
递归下载路飞所有资源,保存到www.luffycity.com文件中
wget -r -p http://www.luffycity.com
补充:
linux如何与windows传输文件?
通过一个lrzsz(上传下载)的工具包
安装软件的方式是执行如下命令:
yum install lrzsz -y
22、其他命令
man 命令 查看命令帮助手册
ps -ef 查看进程
23、vim
所有的 Unix Like 系统都会内建 vi 文本编辑器,相当于windows的记事本,其他的文本编辑器则不一定会存在。但是目前我们使用比较多的是 vim 编辑器,相当于notepad++。
vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
Linux(2)- linux目录结构、shell基本命令的更多相关文章
- (大数据工程师学习路径)第一步 Linux 基础入门----目录结构及文件基本操作
Linux 目录结构及文件基本操作 介绍 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux 目录 ...
- Linux文件系统的目录结构
Linux下的文件系统为树形结构,入口为/ 树形结构下的文件目录: 无论哪个版本的Linux系统,都有这些目录,这些目录应该是标准的.各个Linux发行版本会存在一些小小的差异,但总体来说,还是大体差 ...
- Linux文件系统的目录结构详解
Linux文件系统的目录结构详解 一.前 言 文章对Linux下所有目录一一说明,对比较重要的目录加以重点解说,以帮助初学者熟练掌握Linux的目录结构. 二.目 录 1.什么是文件系统 2.文件 ...
- Linux 文件系统的目录结构
http://www.jb51.net/LINUXjishu/151820.htmlLinux下的文件系统为树形结构,入口为/ 树形结构下的文件目录: 无论哪个版本的Linux系统,都有这些目录,这些 ...
- Linux学习之二-Linux系统的目录结构
Linux学习之二-Linux系统的目录结构 在Linux的根目录下,有很多的目录,但是需要记住,对于Linux而言,一切皆文件.因此此处的目录也是文件.用ls / 命令就能看到根目录下的各类不同的目 ...
- 深入理解linux系统的目录结构(总结的非常详细)
对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面 ...
- linux系统的目录结构
前言 对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要 ...
- linux分区,文件系统,目录结构概述
1.Linux中如何表示硬盘,分区 Linux内核读取光驱,硬盘等资源时均通过“设备文件”的形式进行,因此在linux系统中,将硬 盘和分区表示为不同的文件.具体表述形式如下: 硬盘:对于IDE接口的 ...
- Linux 01 Liunx目录结构及文件基本操作
Linux目录结构及文件基本操作 1.Linux的文件组织目录结构(遵循FHS标准) FHS(Filesystem Hierarchy Standard)标准:多数Linux版本采用这种文件组织形式, ...
- Linux系统的目录结构及常见目录总结
Linux系统的目录结构(必须掌握的内容) 所有目录只有一个顶点/(根),所有目录的起点. 只有一棵树 Linux的目录结构也是有规律的,而且也是按照类别组织的. 应用程序 /usr/bin 数据文件 ...
随机推荐
- 小马哥课堂-统计学-t分布(2)
t分布,随着自由度的增加,而逐渐接近于正态分布 #!/usr/bin/env python3 #-*- coding:utf-8 -*- ############################### ...
- JS高程3:错误处理和调试
浏览器打开控制台的快捷键 Ctrl+shift+I try-catch语句 语法 try{ // 可能会导致错误的代码 } catch(error){ // 在错误发生时怎么处理 } 可以自定义错误信 ...
- DOCTYPE 与浏览器模式分析
DOCTYPE 的诞生 DOCTYPE,或者称为 Document Type Declaration(文档类型声明,缩写 DTD).通常情况下,DOCTYPE 位于一个 HTML 文档的最前面的位置, ...
- DataBinding 笔记
DataBinding 笔记 android DataBinding notes 那些年踩过的坑 问题 那些年踩过的坑 非 public 类型的变量,getter 方法必须有,没有就会报错:Could ...
- golang https server分析
https: HTTPS是http安全版本的实现,在http与tcp之间加了一层ssl/tls安全传输协议 为了防止请求被监听.篡改.冒充,在tls实现过程中引入了数字证书机制,数字证书由第三方权威机 ...
- 数据库设计(三)11 important database designing rules which I follow
原文地址:https://www.codeproject.com/Articles/359654/important-database-designing-rules-which-I-fo 麻辣个
- 【Mac + Appium + Python3.6学习(五)】之常用的Android自动化测试API总结
Github测试样例地址:https://github.com/appium-boneyard/sample-code/tree/master/sample-code/examples ①定位text ...
- pip 使用技巧
指定豆瓣源安装 pip install configparser -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/si ...
- Installing scipy on redhat with error “no lapack/blas resources found”
这是更新scipy出现的结果,需要新版本的scipy,而机器上只装了0.7的版本,更新的时候报错,找到了一个解决方法: wget http://mirror.centos.org/centos/6/o ...
- (转)Java NIO框架
java nio系列文章,转自:http://ifeve.com/overview/ java nio selector深度解析1:http://blog.csdn.net/haoel/article ...