/bin $\color{red}{[常用]}$ (/usr/bin、/usr/local/bin) 是Binary的缩写,这个目录存放着最常用使用的命令
/sbin $\color{red}{[常用]}$ s就是Super user的意思,这里存放的是系统管理员使用的系统管理程序。
/home $\color{red}{[常用]}$ 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户账户命名
/root $\color{red}{[常用]}$ 该目录为系统管理员,超级权限的用户主目录。
/etc $\color{red}{[常用]}$ 所有的系统管理所需要的配置文件和子目录,例如安装MySQL数据库my.conf等等...
/usr $\color{red}{[常用]}$ 非常重要的目录吗,用户的很多应用程序和文件都放在这个目录,类似于windows下的program目录。
/boot $\color{red}{[常用]}$ 是Linux启动的时候使用的一些核心文件,包括一些连接文件以及镜像文件
/proc $\color{green}{[不能动]}$ 这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
/srv$\color{green}{[不能动]}$ service缩写,该目录存放一些服务器之后需要提取的数据
/sys $\color{green}{[不能动]}$是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs
/dev 是设备管理器 Linux统一把所以硬件映射成文件来管理,类似于windows的设备管理器
/media $\color{red}{[常用]}$linux系统会自动识别一些设备,例如U盘、光驱等等、当识别后,linux会把识别的设备挂载到这个目录下
/mnt $\color{red}{[常用]}$ 系统提供目录是为了让用户临时挂载别的文件系统的,可以将尾部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。
/opt 这是给主机额外$\color{red}{[安装软件]}$所存放的目录,如安装ORACLE数据库、jdk、tomcat就可放到该目录下。默认为空
/usr/local $\color{red}{[常用]}$ 这是另一个给主机额外安装软件所安装的目录.已经安装好的目标目录,一般是通过编译源码方式安装的程序
/var $\color{red}{[常用]}$ 这个目录中存放这在不断昆虫这的东西,习惯将经常修改的目录放在这个目录下。包括各种日志文件
/tmp 这个目录是存放一些临时文件的
/lib 系统开机所需要是最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库
/selinux 【security-enhanced linux】 SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置。
/lost+found 这个目录一般为空,当系统非法关机,这里存放了一些文件,一般情况隐藏起来的。
总结:在linux世界里,一切皆是文件
正常模式
以vim打开的一个档案就直接进去一般模式(默认模式)。在这个模式中,你可以使用【上下左右】按键来移动光标,可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制,粘贴】来处理你的文件数据
插入模式
按下i,I,o,O,A,r,R等任何一个字母之母才会进入编辑模式,一般来说按 i 即可。
命令行模式
+输入esc再输入: 这个模式当中,可以提供你相关指令,完成读取,存盘,替换,离开vim,显示行号等的动作则是在此模式中达成的 :wq(保存退出) :q(退出) :q!(强制退出) :wq!(保存并强制退出)
拷贝当前行 yy,拷贝当前向下的5行 5yy, 并粘贴(输入p)
删除当前行 dd,删除当前向下的5行 5dd
在文件中查找某个单词[命令行下 输入: /关键词,回车查找,输入n就是查找下一个]
设置文件的行号,取消文件的行号.[命令行下 :set un 和 :set nonu]
编辑/etc/profile文件,是同快捷键到该文档的 最末行[G] 和 最首行[gg]
在一个文件中输入“hello”,然后又 撤销这个动作 u
编辑/etc/profile文件, 并将光标移动到你目标行 输入目标行,再输入 shift+g
输入:useradd 添加用户
输入:userdel 用户名 删除用户
输入:passwd 用户名 即可给用户名设置新密码
输入:groupadd -g 组名 添加组名
输入:groupdel 组名 删除组名
输入:usermod -g 组名 修改组名
用户(user)的配置文件,记录用户的各种信息 每行的含义:
$\color{blue} {用户名:口令:用户标识号:组标识号:注释性描述:登录Shell}$
$\color{blue}{登录名:加密口令:最后一次修改时间:最小时间间隔:警告时间:不活动时间:失效时间:标志}$
组(group)的配置文件,记录Linux包含的组的信息 每行含义
$\color{blue}{组名:口令:组标识号:}$
-a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
-d :仅列出目录本身,而不是列出目录内的文件数据(常用)
-l :长数据串列出,包含文件的属性与权限等等数据;(常用)
使用 mkdir 命令创建 runoob 目录
[root@www ~]# mkdir runoob使用绝对路径切换到 runoob 目录
[root@www ~]# cd /root/runoob/使用相对路径切换到 runoob 目录
[root@www ~]# cd ./runoob/表示回到自己的家目录,亦即是 /root 这个目录
[root@www runoob]# cd ~表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
[root@www ~]# cd ..
-P :显示出确实的路径,而非使用连结 (link) 路径。
mkdir [-mp] 目录名称
-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
rmdir [-p] 目录名称
-p :连同上一级『空的』目录也一起删除
基本语法 --touch 文件名称
-a:相当於 -pdr 的意思,至於 pdr 请参考下 列说明;(常用)
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-r:递归持续复制,用於目录的复制行为;(常用)
-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u:若 destination 比 source 旧才升级 destination !
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
只能浏览文件,而不能修改文件,为了浏览方便,一帮会带上 $\color{red}{管道命令}$|more
-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字节 $ 显示出来;
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在荧幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位数。
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本的内容。more指令中内置了诺干个快捷键(交互的指令)
空白键 (space):代表向下翻一页;
Enter:代表向下翻『一行』;
/字串:代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
:f:立刻显示出档名以及目前显示的行数;
q:代表立刻离开 more ,不再显示该文件内容。
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
空白键 (space):代表向下翻一页;
Enter :代表向下翻『一行』;
/字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
:f :立刻显示出档名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该文件内容。
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
-n :后面接数字,代表显示几行的意思
-n :后面接数字,代表显示几行的意思
-f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
>输出重定向和>>追加
- 基本语法
ls -l >文件 (功能描述:列表的内容写入文件xx.txt中(覆盖写))
ls -al >>文件 (功能描述:列表的内容追加到文件xx.txt的末尾)
cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)
echo “内容” >> 文件
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接) (常用)
-v 显示详细的处理过程
基本语法 date “+%Y-%m-%d% %H:%M:%S”(功能描述:显示-年月日时分秒)
时间方面-参数
% : 印出 %
%n : 下一行
%t : 跳格
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00..61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S(功能描述:显示-时分秒)
%Z : 显示时区
时间方面-参数
%a : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期与时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)
cal:查看日历指令
find:指令从指定目录下递归地遍历其各个子目录,将满足条件的文件或目录显示在终端。
基本语法:find /(斜杆指查询所有) -参数 目标
-name 文件名称
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-user<用户名>:查询用户名为xx的目标文件
locate:快速定位文件路径,会建立自己的一个数据库,无需遍历整个文件系统,查询快,第一次运行前““必须使用updatedb指令””创建locate数据库
总结find和locate的区别说明:
locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。
locate 的速度比 find 快,它并不是真的查找,而是查数据库,一般文件数据库在 /var/lib/slocate/slocate.db 中,所以 locate 的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:updatedb
which:指令会在环境变量$PATH设置的目录里查找符合条件的文件
-n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。
-w 指定输出时栏位的宽度。
-V 显示版本信息。
grep过滤指令&管道符号 | :表示将前一个命令的处理结果输出传递给后面的命令处理。
基本语法:grep [参数] 查找内容 源文件
基本语法:
gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz (功能描述:解压缩文件命令)
基本语法:
zip [参数] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)
unzip [参数] XXX.zip (功能描述:解压缩文件)
-r:递归压缩,即压缩命令
-d《目录》:指定解压后文件的存放目录
基本语法:
tar [参数] XXX.tar.gz 打包的内容(功能描述:打包目录,压缩后的文件格式.tar.gz)-c 功能产生.tar打包文件
-v 功能显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
总结打包和压缩
打包:将一堆文件或目录什么的变成一个总的文件。
压缩:将一个大的文件经过某种压缩算法变成一个小文件。
为什么要区分这两个概念呢?因为Linux中的很多压缩程序只能针对一个文件进行压缩,所以当你想要压缩一大堆文件时,首先需要打个包,然后压缩。