一、Linux目录结构
在 Linux 或 Unix 操作系统中,所有的文件和目录都被组织成以一个根节点开始的倒置的树状结构。
文件系统的最顶层是由根目录开始的,系统使用 / 来表示根目录。在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含子目录文件。如此反复就可以构成一个庞大的文件系统。
登录Linux系统之后,在当前目录下输入ls:
/ 是Linux的根路径,Linux上路径的名称要区分大小写,对大小写敏感。
绝对路径:以 / 开头的都是绝对路径。(/usr/share/tomcat/logs/)
相对路径:以非 / 开头的是相对路径。 (./logs)
在Linux文件系统中有两个特殊的目录,一个用户所在的工作目录,也叫当前目录,可以使用一个点 . 来表示;另一个是当前目录的上一级目录,也叫父目录,可以使用两个点 .. 来表示。
- . :代表当前的目录,也可以使用 ./ 来表示;
- .. :代表上一层目录,也可以 ../ 来代表。
系统启动必须:
- /boot:存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。
- /etc:存放所有的系统需要的配置文件和子目录列表,更改目录下的文件可能会导致系统不能启动。
- /lib:存放基本代码库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
- /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
指令集合:
- /bin:存放着最常用的程序和指令
- /sbin:只有系统管理员能使用的程序和指令。
外部文件管理:
- /dev :Device(设备)的缩写, 存放的是Linux的外部设备。
- /media:类windows的其他设备,例如U盘、光驱等等,识别后linux会把设备放到这个目录下。
- /mnt:临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
临时文件:
- /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
- /lost+found:一般情况下为空的,系统非法关机后,这里就存放一些文件。
- /tmp:这个目录是用来存放一些临时文件的。
账户:
- /root:系统管理员的用户主目录。(Linux超级管理员为root,权限最高)
- /home:用户的主目录,以用户的账号命名的。
- /usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- /usr/bin:系统用户使用的应用程序与指令。
- /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
- /usr/src:内核源代码默认的放置目录。
运行过程中要用:
- /var:存放经常修改的数据,比如程序运行的日志文件(/var/log 目录下)。
- /proc:管理内存空间!虚拟的目录,是系统内存的映射,我们可以直接访问这个目录来,获取系统信息。
扩展使用:
- /opt:默认是空的,我们安装额外软件可以放在这个里面。
- /srv:存放服务启动后需要提取的数据(不用服务器就是空)
二、目录操作指令
cd命令
cd 目录名:切换到某个目录
- cd .. :返回上级目录
- cd ~ :进入用户目录
- cd - :返回最近访问目录
pwd命令
显示用户当前所在的目录
ls命令
列出该目录下的所有子目录与文件,对于文件,列出文件名以及其他信息
- -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
- -l 列出文件的详细信息。
- -R 列出所有子目录下的文件
- -d 将目录像文件一样显示,而不是显示其下的文件。
- -k 以 k 字节的形式表示文件的大小。
- -r 对目录反向排序。
合并写法:ls -l 可以写成ll
三、文件夹/文件操作指令
touch指令
指定目录或当前目录,如果没有该文件,就创建一个新文件;如果存在,更改上次修改的时间。
mkdir指令
创建文件夹,如果已经有该文件夹,就会报错。
创建多级目录:使用 -p 参数
mkdir -p t/1/2
rm指令
删除文件或者目录(不能删除/)
- -f:强制删除(不询问)
- -r:递归删除目录(包括子文件和子文件夹)
删除时可以使用模糊匹配 : * 代表任意数量,任意字符
rm -f *.txt(删除.txt的文件)
rm -rf a*.txt (删除a开头的,.txt结束的)
删除文件名包含a,是txt文件:rm -rf * a *.tx
rm -rf * 一定要注意当前路径(删除当前路径下所有的文件和文件夹)
cp指令
复制文件或者目录
cp [参数] 源目录/源文件 目标目录/目标文件
- cp 文件 目标文件 :复制到指定文件
- cp 目录/文件 目标目录:复制到指定目录下
- -f:强制复制
- -i:覆盖文件之前先询问用户
- -r :递归的方式进行复制
mv指令
移动文件或对文件进行重命名。
mv [参数] 源目录/源文件 目标目录/目标文件
四、文件内容操作指令
man指令
查看Linux某个指令的文档
进入文档查看模式的操作:
- J/K:和上下箭头的作用是一样的
- / 搜索的内容:回车后进行内容搜索;搜索到以后,“N”切换到下一个匹配的字符,"Shift+N"切换到上一个匹配到的字符
- g:切换到整个文档的首部;Shift+g:切换到整个文档的尾部
- :q 回车后退出文档的查看模式
vi
Linux上默认的文档编辑器。vi 文件名 :进入该文件
查看模式
i: 进入编辑模式(光标位置插入)
o:进入编辑模式(新行插入)
Shift+gg:切换到整个文档的尾部
dd:删除光标所在的行
:q 回车后退出
:q! 强制退出(不保存)
:wq 保存并退出
:w 修改不退出
:后输入w 写(修改内容生效)
q:退出
!:强制操作
编辑模式
esc:从编辑模式进入查看模式
cat指令
显示目标文件的内容(打印输出)
-n :对输出的所有行编号
less指令
显示部分文件内容(文档查看模式)
可以进行查找
head指令
head命令显示文件开头从第一行到指定行的内容,进行打印输出
-n 行数:默认输出为10行
tail指令
显示从文件尾部往前指定行数的内容
对上面文件内容操作的指令进行综合:
取文件[x,y]行:
- 先取出前y行:head -n y 文件名
- 获取的内容再取后(y-x)行:head -n y 文件名 | tail -n (y-x)
示例:有一个文件共有100行内容,请取出第50行
先取前50行,再取最后一行:head -n50 文件名 | tail -n1