Linux基础:命令行管理文件+获取帮助(20210711笔记)
命令行管理文件
切换用户
su - 用户名:切换用户
su - root
su -
sudo
exit:切换到上一级用户
注意当前用户权限
exit
文件系统层次结构
目录
/root
/bin 命令存放
/sbin
/media 自动挂载
/mnt 手动挂载
/etc 存入服务的配置文件
/tmp 临时文件存放
/boot 内核文件
/var 日志信息、服务数据
/run 程序及服务的临时数据
/lib 动态链接共享库
/lost+found
通过名称指定文件
绝对路径和相对路径
绝对路径:根开始的完整路径条目
相对路径:相对当前目录的目录(…上一级目录, .当前目录)【注意当前位置】
路径中有无/的区别:/test/ 有则表示该目录下的内容,不包括其本身;/test 无则包括其本身
linux区分大小写,文件名字中大小写不同是不同文件
. 当前目录 …父目录
pwd:确定自己位置
cd:切换工作目录
cd /test #切换到根目录下的test目录下
cd ~/test #切换到家目录下的test目录下
cd .. #切换到上一级目录
cd - #回到上一次的工作目录
ls:查看当前目录或指定目录
ls #查看当前目录内的子目录及文件
ls -a #查看当前目录内的所有子目录及文件(含隐藏文件)
.或..是隐藏文件
ls -R #递归显示
ls -l(ll)#查看目录内子目录及文件详细信息
通过名称指定文件
文件权限(【前三位:用户权限;中三位:用户组权限;后三位:其他人权限】【说明文件类型(d目录,l软链接,-文件);r读;w写;x执行;-无权限】)
文件硬链接数(跳转链接)
文件所属用户
用户组
文件所占空间
文件最近访问(修改)时间
文件名
使用命令行工具管理文件
创建/删除(移除)文件
touch <file> #触碰文件file,更新文件时间戳,不存在就会触发创建;一般用于创建新的空文件
rm <file> #删除文件
rm -f #执行强制删除
rm -r /test/web01 #递归询问删除(删除字目录及其内容)
rm -rf #不建议使用!一删全删且无提示
rm -rf /* #删除根目录下所有(删库跑路,勿用)(*是通配符)
rm不会删除包含文件的目录,除非添加了-r 或 --recursive
创建/删除(移除)目录
mkdir <目录名>(绝对/相对路径)#创建目录,创建已有的则报错
mkdir -p /test/web01 #建多级目录(-p:先看有无test目录,有则直接建web01,无则先建test)
mkdir /test/web{02,03}
或
mkdir /test/{web01,tet02} #遍历建多目录
同时执行多项:相同项目写外边,不同项目写{}里
rmdir <目录名> #删除目录,注意删除时目录必须为空
复制文件/目录
cp (路径1<文件1>) (路径2<文件2> )#将file1复制为file2,修改文件前备份
cp (路径1</*.log>) (路径2)#使用\*通配符,复制多个文件(以.log结尾)时目标需为目录
cp -r (路径1<文件1>) (路径2<文件2>) #复制目录时,需要使用-r进行递归
移动与重命名文件/目录
mv <文件1> <文件2> <目录> #将file1和file2移动到目录dir下
mv <文件a> <文件b> #将a重命名为b,在同一目录下执行
mv <文件a> <.文件b> #加上.开头就可以隐藏文件
编辑文件
vim <文件> #进入文件
i:进入编辑(插入)模式
Esc:退出编辑模式,进入原始模式
:wq :【原始模式下】保存退出
tail -f <文件> #查看动态文件(ctrl+c强制终止)
制作文件间的链接
文件内容数据以数据块(大小取决于文件系统)形式存放在存储介质上
访问指定文件名文件时:
系统通过目录项获取文件的inode num(类似索引)—> 通过inode num在inode table中找到指定inode(文件大小,用户、用户组、权限,文件数据datablock位置,时间,链接数)—> 通过data block找到文件实际内容数据(文件名相当于inode num别名)
硬链接
属性
引用同一文件的所有硬链接具有相同属性(链接数、访问权限、用户和组所有权、时间戳、文件内容)。
使用任一硬链接更改其他任何信息,其他所有硬链接都会显示新的内容。
删除文件时,实际只删除了一个硬链接,文件内容依然可用。
局限性
只能对常规文件使用硬链接,目录及特殊文件不可以。
只能在同一文件系统上使用。(使用 df 命令可以查看文件系统)
软链接
类似于 windows 中的快捷方式【虚拟路径】,如果删掉源文件,软连接将会变成 badlink,但只要重新建一个同名文 件,就会恢复。
相比硬链接,可以链接位于不同文件系统上的两个文件,可以指向目录或特殊文件、而不限于常规文件。
区别
软链接在linux中主要是照顾管理员的使用习惯,在windows中就可以提高访问深层目录的速度。
创建链接
ln <文件名> <硬链接> #为文件创建硬链接
ln newfile.txt /tmp/newfile-link2.txt
每个文件都以一个硬链接开始,一个硬链接对应一个绝对路径
ln -s <文件名> <软链接> #为文件创建软链接
ln -s newfile.txt /tmp/newfile-link3.txt
若删除newfile.txt,则newfile-link2.txt(硬链接)仍存在,但newfile-link3.txt(软链接)失效
注意:软链接要使用绝对路径,否则会出现悬挂的情况!!!
作用:日志管理,控制台上直接看所有服务器的日志——在自建目录下做所有日志的软链接
查看链接
ls -l #查看文件的硬链接数
ls -il <file1> <file2> #查看两个文件的索引节点编号,确认是否为彼此的硬链接(节点编号相同)
df #列出位于不同文件系统上的目录
使用Shell扩展匹配文件名
元字符:*(匹配全部)和?(几个?匹配几个字符)
波形符~:匹配家目录(从全部文件里找)
提示符:$普通用户 #超级用户
变量:常用来帮助运行带有长参数的命令——变量扩展:$ 变量名=值
使用$()来让里面的命令先运行
反斜杠转义符\,使字符变普通字符
echo:用于显示要输出的文本
大括号扩展{}:生产任意字符串,可以互相嵌套({a{1,2},b,c}),{…}可扩展({1…3}=1 2 3;{m…p}=m n o p)
获取帮助
阅读man page帮助
系统上一个文档员的系统手册页
八章节:用户命令(普通用户都可以调用的命令)、系统调用(内核提供的函数)、例程(库函数)、设备(/dev下特殊文件)、文件格式描述(/etc/passwd)、游戏、杂项(宏命令包、惯例)、系统管理员工具(只能root启动)
使用man命令获取帮助
man [章节] <参数> #查看某个对象的帮助
man -K(大写) <keyword> #列出所有含有该关键字的命令及描述信息
man page基本操作方法
空格:下滚一个屏幕;g:首行;G:尾行;q:退出man
使用”/“来查找关键字,n键跳到下一个关键字位置,N键跳到上一个关键字位置
其他获取帮助方式
使用help命令
help <某命令> #查看内部命令的用法
内部命令:构建在 shell 中。当执行 shell 命令时,不需要创建进程,直接在 shell 中运行即可。例如: exit、history、cd、pwd 等。
外部命令:没有构建在 shell 中。通常是安装某些软件之后,保存在独立的文件中,执行的时候需要创建 一个新的进程,例如:cat、ls 等。 使用 type 可以查看命令的类型。
<command> --help #查看内部或外部命令
pinfo/info
从红帽官方获取帮助,基本少用
SOS Report
购买正版系统及订阅服务