#####linux系统结构########
在Linux下所有东西都是以文件的形式存在,所有的文件夹都是目录,文件都存放在目录下,所有的目录都存放在顶级目录根目录下,根目录下是二级目录
注:
linux是一个倒树型结构,最大的目录名称叫“/” (根目录)根不能删除,必须存在
下图是根目录下的系统结构
#####linux系统中的二级目录(根下的目录)######
/bin | ##二进制可执行文件,是系统内常规命令 |
---|---|
/boot | ##启动目录负责系统启动(包含系统启动时读取的文件,存放系统自动启动文件,内核,初始化程序) |
/dev | ##系统设备管理文件(包含鼠标 U盘等硬件) |
/etc | ##大多数系统配置文件存放路径(包含系统如何运行的文件) |
/home | ##普通用户家目录(默认所在位置) |
/lib | ##32位系统库文件存放位置(函数库用来查询命令的含义以及模块要执行哪个部分) |
/lib64 | ##64位函数库文件存放位置 |
/media | ##系统临时设备挂载点 |
/mnt | ##系统临时设备挂载点 |
/run | ##自动临时设备挂载点 |
/opt | ##第三方软件安装路径(系统官方未开发的软件) |
/proc | ##系统硬件信息和系统进程信息 |
/root | ##超级用户家目录 |
/sbin | ##系统管理命令,通常只有root可以执行 |
/srv | ##系统数据目录 |
/var | ##系统数据目录 |
/sys | ##系统管理,内核相关数据(模块信息) |
/tmp | ##系统临时文件存放位置 |
/usr | ##系统用户相关信息数据及用户自定义软件的存放位置 |
注:
/home ##普通用户家目录(默认所在位置)
/root ##超级用户家目录
######文件管理########
1.绝对路径和相对路径
绝对路径:是一个完整的路径,文件在系统中的真实位置,文件名字以“/"开头,;
相对路径:以一个目录为起点到文件所在的目录,不以“/“开头(即自己相对于目标的位置);
[kiosk@foundation46 Desktop]$ pwd ##查看当前位置
/home/kiosk/Desktop
[kiosk@foundation46 Desktop]$ cd /etc/passwd ##离开桌面去passwd目录,不在同一位置需要说出passwd的具体准确位置即相对路径/etc/passwd
[kiosk@foundation46 Desktop]$ cd shell ## 切换到shell目录
[kiosk@foundation46 shell]$ pwd
/home/kiosk/Desktop/shell ##shell目录就在/home/kiosk/Desktop下,与当前用户所在同一目录只需相对路径就可以
###文件管理命令##
1.文件的建立
格式:touch + (文件名)
注:
touch 可以同时创建一个或多个文件,但创建文件时必须要有正确的路径
[root@nfs-server ~] touch file #建立一个名为file的文件
[root@nfs-server ~]# touch file1 file2 file3 #同时建立3个名为file1 file2 file3 的文件
[root@nfs-server ~]# touch /home/file4 ##建立file4文件,存放路径在/home下
[root@nfs-server ~]# touch /hello/file5 ####建立file5文件,存放路径在/hello下
touch: cannot touch ‘/hello/file4’: No such file or directory #报错:不存在/hello目录或文件
注意:
touch不但可以建立文件也可以修改文件的时间戳
时间戳分为:
atime:文件内容被访问的时间标识
mtime:文件内容被修改的时间标识
ctime:文件属性或文件内容被修改的时间标识
[root@server Desktop]# ls file1 -ld ##查看file1
-rw-r--r-- 1 root root 0 May 23 06:26 file1
[root@server Desktop]# touch file1 ##touch file1
[root@server Desktop]# ls file1 -ld ##查看file1 时间从 06:26变为06:27
-rw-r--r-- 1 root root 0 May 23 06:27 file1
####2.目录建立####
mkdir directory
mkdir -p dir1/dir2/dir3(一个目录) -p建立递归目录时,当上层目录不存在自动建立
mkdir dir1/ dir2/ dir3/(三个目录)
####3.文件删除####
rm file
rm: remove regular empty file"file"? y
===>询问是否确定删除文件
rm -f file -f=force 标示强制删除不提示
####4.目录删除####
rm -r directory -r标示递归删除,也就是删除目录本身和里面的所有内容
rm -r -f dir 删除目录不提示
rm -rf dir 在命令参数使用过程中,(r,f)顺序是不需要注意的。
rm -fr dir
rm -fr dir1/ dir2/dir3 删除多个目录不提示
####5.编辑文件####
1.gedit
gedit file ##必须有图形
2.vim
vim file -->按[i]进入insert模式–>书写内容–>按[esc]退出insert模式–>:wq退出保存
[kiosk@foundation46 ~]$ vim file
####vim异常退出######
当vim异常退出时会生成.file.swp文件
当再次打开此文件时会出现以下情况:
[O]pen Read-Only只读打开 , (E)dit anyway 继续编辑 , ®ecover,恢复数据 (D)elete it, 删除swap文件 (Q)uit, 退出 (A)bort: 退出
无论按[O] (E) ® (Q) (A) 任何一个都不会删除.file.swp文件
那么再次打开file文件时还会出现以上界面直到按(D),.swp文件被删除
vim恢复正常工作
####6.文件的复制####
cp 源文件(big1) 目的地文件(big2)
cp -r 源文目录(big1) 目的地目录(sweet1)
cp 源文件(big1) 源文件(big2) 目的地目录(sweet2) ##目的地目录必须存在
cp -r 源目录(sweet1) 源目录(sweet2) 目的地目录(sweet3) ##目的地目录必须存在
####7.文件移动####
mv 源文件(big1) 目的地文件(big2) ##文件的移动是重命名
mv 源目录(sweet1) 目的地目录(sweet2)
注意:
相同磁盘的文件移动只是一个重明名过程
不同磁盘的文件移动是复制删除过程(不同磁盘文件的移动耗费时间长于相同磁盘文件的移动)
####8.文件查看####
cat file(文件名) ##查看文件的全部内容
cat -n file ##-n显示行号包含空行
cat -b file ##-b显示行号不包含空行
less file ##分页浏览
用法:
上|下 ##逐行移动
pageup|pagedown ##逐页移动
/关键字 ##高亮显示关键字,n向下匹配,N向上匹配
v ##进入vim模式 在vim模式中按:wq 退回到less模式
q ##退出
head file ##查看文件前10行
head -n 3 file ##查看文件前3行
tail file ##查看文件后10行
tail -n 3 file ##查看文件后3行 (-n 数字,就是该数字的第几行)
#####9.文件的寻址####
1.文件的地址分为:
相对路径:
相对与当前系统所在目录的一个文件名称的简写,
此名称省略了系统当前所在目录的名称
此名称不以“/”开头
此名称在命令执行时会自动在操作对象前加入“PWD”所显示的值
绝对路径:
绝对路径是文件在系统的真实位置
此命令是以“/”开头的
此命令在命执行时系统不会考虑现在所在位置的信息
注意:
当操作对象是 对象1 空格 对象2 时,这两个对象之间没有任何关系
A B ##这是2个对象(空格键的存在)
AB ##这是一个对象
亲 ##动作是被系统执行的,不能作为名称出现
“亲” ##用引号的作用是把动作变成名称字符,这种方法叫引用
####10.自动补齐####
系统中的<Tab键可以实现命令的自动补齐,可以补齐系统中存在的命令,文件名称,和部分命令的参数
当一次补齐不了时代表以此关键字开头的内容不唯一,可以用X2来列出所有以此关键字开头的内容
#####11.关于路径的命令####
1.显示路径
pwd
[kiosk@foundation46 ~]$ pwd ##查看当前路径
/home/kiosk (当前位置在/home/kiosk)
2.切换路径
cd 目录名称 ##进入到指定目录中
cd - ##当前目录和当前目录值前所在目录之间的切换
cd ~ ##进入当前用户家目录
cd ~user ##进入user家目录
cd … ##进入当前目录的上级目录
3.查看
ls
ls -l file ##文件属性
ls dir ##目录中保函的内容
ls -d dir ##目录本身
ls -a dir ##所有文件包含隐藏的
ls -S dir ##查看并且按照大小排序
ls -s file|dir##查看文件大小
4.文件查看
cat ##输出文件全部内容
less ##分页浏览
head file ##查看文件前10行
head -n 5 file ##查看文件前5行
tail file ##查看文件后10行
tail -n 3 file ##查看文件后3行
tail -f file ##监控文件后10行内容的变化
5.文件大小统计
wc
wc -l ##行数
wc -w ##单词数
wc -m ##字符数
wc -c ##字节数
####12.系统中历史的调用####
history ##查看历史
history -c ##清空当前环境中的历史
!数字 ##调用此行历史比如"!5"时执行历史中地5条命令
!test ##执行以test关键字开头的最近一条历史
ctrl +r +关键字 ##调用历史中最近一条含有此关键字的历史
示例:
[kiosk@foundation46 ~]$ !6
调用此行历史比如"!6"时执行历史中地5条命令
[kiosk@foundation46 ~]$ !touch
执行以touch关键字开头的最近一条历史
(``reverse-i-search)
': vim ```会调用最近一条命令中含有vim字符的历史
####13.在系统中获得帮助####
1.查看命令大用途
whatis 命令 ##查看命令的用途
2.查看命令的用法
命令 --help ##查看命令的基本用法,适用于多数命令
[] ##标示选项可以加也可以不加
… ##标示选项加入的个数任意
<> ##标示选项是必须要加入的
Userage: ##标示命令用法
Opetions: ##对参数的作用做说明
kiosk@foundation46 ~]$ cat --help
(查看命令cat的用法)
3.man查看命令或文件的说明手册
man 命令[kiosk@foundation46 ~]$ man wc(命令wc的使用说明)
man 5 文件
man的级别
1 #命令
2 #系统调用接口
3 #函数库调用接口
4 #特殊设备文件
5 #系统配置文件
6 #游戏规则说明
7 #包说明
8 #系统管理命令
9 #内核调用规则
man的基本用法
上|下 ##逐行查看
pgup|pgdn ##分页查看
/关键字 ##高亮显示关键字,n向下匹配,N上向匹配
:q ##退出
man -k 字符串 ##下看当前字符串在系统中拥有的man的级别
/usr/share/doc ##系统中所有安装过的软件的帮助文档
####14.系统中的通用配置符号#####
- ##匹配0到任意字符
? ##匹配单个字符
[[:alpha:]] ##单个字母
[[:lower:]] ##单个小写字母
[[:upper:]] ##单个大写字母
[[:digit:]] ##单个数字
[[:punct:]] ##单个符号
[[:space:]] ##单个空格
[[:alnum:]] ##单个数字或字母
[[:punct:][:upper:]] ##但个符号或但个大写字母 注意:两个数字或字母的正确表达[[:digit:]][[:digit:]]; [[:digit:][:dight:]]表示数字或数字;少了[]的为错误命令输入
例如:
[kiosk@foundation46 ~]$ rm -f fi[[:punct:]]le
删除fi[单个符号]le的文件
[kiosk@foundation46 ~]$ rm -f fi[[:lower:]]le
删除fi[单个小字母]le的文件
[kiosk@foundation46 ~]$ rm -f fi[[:upper:]]le
删除fi[单个大字母]le的文件
[kiosk@foundation46 ~]$ rm -f fi[[:digit:]][[:digit:]]le
删除fi[2个数字]le的文件
[kiosk@foundation46 ~]$ rm -f ?????
删除5个字符的所有文件
[kiosk@foundation46 ~]$ rm -f file*
删除file的所有文件(* 表示所有)
[1-9] #1位,这位是1-9的任意数字 []包含目标不明确,只能单指一个内容
[!3-5] #1位,不是3-5的数字
[^3-5] #1位,不是3-5的数字
[a-z] #1位,a-z的任意字母
{1…3} #3个,1 2 3 touch file{1…3} 会建立file1 file2 file3三个文件
{1,4,7} #3个1,4,7这三个数 mkdir big{1,4,7} 会建立big1 big4 big7三个文件
~ #当前用户家目录
~username #指定用户的家目录
~+ #当前目录和点一样,但+用法范围更广
~- #进入当前目录之前所在目录(olddir)cd_中的"-"可用-其余的只能用~-