Linux目录结构
路径
- 绝对路径:由根目录 / 写起,例如: /usr/share/doc
- 相对路径:不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时可以写成: cd …/man 这就是相对路径的写法
常用命令
- 身份提示符
$
普通用户的身份提示符
#
root用户的身份提示符 su root
进入root,su命令用于变更使用者身份exit
退出
操作目录命令
ls
列出目录
ls -a
列出全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用) ls -a
ls -d
仅列出目录本身,而不是列出目录内的文件数据(常用) ls -d
ls -l
长数据串列出,包含文件的属性与权限等等数据;(常用) ls -l
ls -al ~
将家目录下的所有文件列出来(含属性与隐藏档)cd
切换目录
cd /root/runoob/
使用绝对路径切换到 runoob 目录
cd ./runoob/
使用相对路径切换到 runoob 目录
cd ~
回到自己的家目录,亦即是 /root 这个目录
cd ..
去上一级目录,亦即是 /root 的上一级目录的意思;
cd -
回到上一次目录
cd /
或cd ~
切换到用户主目录pwd
显示当前目录mkdir 目录名
创建一个新的目录
mkdir -p test1/test2/test3/test4
递归创建多层目录rmdir 目录名
删除一个空的目录tree
以树状图列出当前目录结构
操作文件命令
ls te*
列出以te开头的文件ls *py
列出以py结尾的文件ls ?.c
表示查找 以.c 为后缀结尾的文件touch 文件名
创建文件echo "It is a test"
用于字符串的输出cp 源文件 目标文件
复制文件或目录
cp -i
如果复制的文件已经存在,会交互提醒
cp -f
强制覆盖,不会有提示
cp -r
递归复制该目录下的文件和子目录grep [选项] "搜索的内容" 文件名
用于查找文件里符合条件的字符串
grep -n
显示匹配行号
grep -^
以某个字符开头grep -n "^a" ab.txt
grep -$
以某个字符结尾grep -n "^m$" ab.txt
grep -i
表示忽略大小写rm 文件/目录
移除文件或目录
rm -r
递归删除
rm -i
互动模式,在删除前会询问使用者是否动作
rm -f
强制删除,没有提示mv 文件名 目标目录
移动文件与目录,相当于剪切
mv -i
如果移动的文件在目标目录中已存在会提示
mv -v
显示移动进度
mv
可以给文件或者目录重命名,mv 旧文件名称 新文件名称
vim操作
vim四种模式
正常模式
:一般用于浏览文件,和复制粘贴操作插入模式
:在正常模式下按i键进入插入模式命令模式
:在正常模式下,按下:(冒号)键,会进入命令模式.命令模式执行输入的vim指令.可视模式
:在正常模式下按v,V或+v进入可视模式
vim命令
:wq+回车键
保存并退出ZZ
保存并退出:q!+回车键
不保存退出o
向下新开一行O
向上重开一行yy
复制光标所在行p
粘贴dd
删除一行gg
把光标移动到文件的开头M
把光标移动到中间行G
光标移动到文件的末尾L
把光标移动到屏幕的最后一行的行首
重定向
cat
是linux下的一个文本输出命令,通常是用于观看某个文件的内容的;
cat主要有三大功能:
cat filename
查看文件内容cat > file1
直接向file1 中写入内容, 内容来自键盘在控制台输入, 按下键盘Ctrl+D结束输入,之前输入的文件保存在file1中
cat >> file1
直接向file1 文件追加内容,内容来自键盘输入 按下Ctrl + D 结束输入,之前输入的内容追加在 file1 后
cat f1.txt > f2.txt
把f1.txt文件内容写入到f2.txt中,会覆盖原来的内容,文件不存在则创建它。
cat f1.txt >> f2.txt
把f1.txt文件内容追加到f2.txt中去,不会覆盖原来的内容,文件不存在则创建它。
只能创建新文件,不能编辑已有文件.cat file1 file2 > file3
将文件 file1 和 file2 整合到 file3 中,会覆盖原来的内容,文件不存在时,创建文件
cat file1 file2 >> file3
将文件 file1 和 file2 追加到 file3中,不会覆盖原来的内容,文件不存在时,创建文件
linux允许将命令的执行结果重新定向到一个文件中,本应该显示桌面的内容显示到文件中.
command > file
将输出重定向到 file。
command < file
将输入重定向到 file。
command >> file
将输出以追加的方式重定向到 file。ls > a.txt
将用户目录下显示的内容重定向显示到a.txt文件中
n > file
将文件描述符为 n 的文件重定向到 file。
n >> file
将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m
将输出文件 m 和 n 合并。
n <& m
将输入文件 m 和 n 合并。
<< tag
将开始标记 tag 和结束标记 tag 之间的内容作为输入。
其他操作命令
-
clear
清屏 -
more
分屏 -
which
查看系统命令的位置 -
cal
查看日历 -
ps
查看进程信息
ps -a
显示终端上的所有进程,
ps -u
显示进程的详细状态
ps -x
显示没有控制终端的进程
一般我们会把ps aux
一起使用 -
top
动态显示进程
top命令执行后 可以按下键盘来看详细信息
top M
根据内存进行排序
top P
根据cpu 的占有率
top T
根据时间
top q
退出 -
kill [参数] pid
杀死进程
kill -9 pid
强制杀死进程 -
ping
测试远程 网络连接
ping www.baidu.com
-
ifconfig
查看配置和网络信息 (windows 中为 ipconfig) -
关机重启
reboot
重新启动操作系统
shutdown -r now
立刻关闭
shutdown -h 21:30
关机指定时间
init 0
关机
nit 6
重启 -
df
检测磁盘占用和空余情况
df -h
方便阅读方式显示,也就是 kb、mb 等显示文件/目录大小
df -hT /etc
显示特定分区的信息 -
du
检测目录所占用磁盘空间
du -h
可阅读方式显示,也就是 kb、mb 等显示文件/目录大小
du -a
统计目录下每个文件夹下的文件大小,最后一行是总计占用空间
du -s
统计文件和目录的总大小(只显示总计大小)
du -s Desktop/ -h
find
查找文件 -
find ./ -name test.sh
查找名称为test.sh的文件
find ./ -name '*.sh'
查找当前目录下后缀为.sh的文件
find ./ -name '[A-Z].txt'
查找当前目录下 所有以大写字母开头的文件
find ./ -name -size 2M
查找当前目录下 等于2M的文件
find ./ -name -size +2M
查找当前目录下 大于2M的文件
find ./ -name -size -2M
查找当前目录下 小于2M的文件
find ./ -name -size +4k -size -5M
查找当前目录下 大于4k 小于 5Mde 文件 -
可以使用
[命令]--help
或man [命令]
来查看各个命令的使用文档,如 :man cp
-
Tab键
: 自动补全命令 或 自动补全文件或目录名
硬链接 软连接
ln
建立链接文件
Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。
默认情况下,ln 命令产生硬链接。
硬连接
格式:ln 源文件 连接文件
硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件, A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。
硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录 的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
软连接
格式:ln -s 源文件 连接文件
另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的软链接(A 和 B 都是文件名),A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同,A 和 B 指向的是两个不同的 inode,继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是“主从”关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。
通过实验加深理解
[oracle@Linux]$ touch f1 #创建一个测试文件f1
[oracle@Linux]$ ln f1 f2 #创建f1的一个硬连接文件f2
[oracle@Linux]$ ln -s f1 f3 #创建f1的一个符号连接文件f3
[oracle@Linux]$ ls -li # -i参数显示文件的inode节点信息
total 0
9797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11 f1
9797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11 f2
9797649 lrwxrwxrwx 1 oracle oinstall 2 Apr 21 08:11 f3 -> f1
从上面的结果中可以看出,硬连接文件 f2 与原文件 f1 的 inode 节点相同,均为 9797648
,然而符号连接文件的 inode 节点不同。
[oracle@Linux]$ echo "I am f1 file" >>f1
[oracle@Linux]$ cat f1
I am f1 file
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
I am f1 file
[oracle@Linux]$ rm -f f1
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
cat: f3: No such file or directory
通过上面的测试可以看出:当删除原始文件 f1 后,硬连接 f2 不受影响,但是软连接 f1 文件无效
总结
依此您可以做一些相关的测试,可以得到以下全部结论:
- 删除软连接f3,对f1,f2无影响;
- 删除硬连接f2,对f1,f3也无影响;
- 删除原文件f1,对硬连接f2没有影响,导致软连接f3失效;
- 同时删除原文件f1,硬连接f2,整个文件会真正的被删除。