好久没更新文章了,最近心血来潮,重新开始知识的累计,做出知识的沉淀~
万事万物皆文件
- 文件系统:操作系统如何管理文件,内部定义了一些规则或者定义
- 所以在 Linux 中所有的东西都是以文件的方式进行操作
- 在 Linux 中,文件的访问不和 Windows 的一样。Windows 依靠的是通过盘符进行访问
- Linux 维护着一个树状结构的文件模型:只有一个根节点 ,他的名字叫做 /;一个节点上可以有多个子节点
查找文件的方式相对路径:
相对路径
- 以当前路径为基准点,查找其他资源
- vi ../etc/sysconfig/network
绝对路径
- 以根目录为基准点,查找其他资
- vi /etc/sysconfig/network-scripts/ifcfg-ens33
日常使用中,只要找到路径即可,但是如果是一些配置文件,尽量写绝对路径
Linux 二级文件目录
/bin:
bin是Binary的缩写, 这个目录存放着最经常使用的命令。
/boot:
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev :
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同
的。
/etc:
这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这
些共享库。
/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光
驱里的内容了。
/opt:
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,
比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/selinux:
这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复
杂,这个目录就是存放selinux相关的文件的。
/srv:
该目录存放一些服务启动之后需要提取的数据。
/sys:
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终
端的devpts文件系统。该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmp:
这个目录是用来存放一些临时文件的。
/usr:
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin:
系统用户使用的应用程序。
/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:
内核源代码默认的放置目录。
/var:
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上
有 /var/run 目录,应该让它指向 run。
Linux 的文件操作
Linux 命令在线查询:https://www.linuxcool.com/
cd 改变当前工作目录
ls ll 查询命令,显示出指定目录下所有的文件
mkdir 创建文件目录
mkdir -p a/b/c/d/e/f 会自动创建文件父目录
mkdir -p lucky/{1234}ls 一次可以创建多个子目录
rmdir 删除空文件夹,可以安全的删除文件目录
rmdir: failed to remove ‘a1’: Directory not empty
rmdir: failed to remove ‘baidu’: Not a directory
cp 拷贝文件或者文件目录
cp 源文件 目标目录
cp abcd /opt
cp /opt/abcd ./
cp -r lucky /opt 拷贝文件夹下所有的内容
mv 移动文件或者文件夹,修改文件名称
mv a1 /opt
mv abc /opt
mv a abcd
rm 删除文件,删除文件夹
rm install.log
rm -f install.log
rm -r abcd
rm -rf abcd 谨慎使用,从删库到跑路
touch 如果没有就创建一个文件,如果该文件已经存在,修改文件的三个时间,将三个时间改为当前时间
stat 查看文件的状态,Inode 当前文件在文件系统的唯一标识,类似于ID
ln 命令用于给文件创建链接,根据 Linux 系统存储文件的特点,链接的方式分为以下 2 种
软链接:类似于 Windows 系统中给文件创建快捷方式,即产生一个特殊的文件,该文件用来指向另一个文件,此链接,方式同样适用于目录。
硬链接:我们知道,文件的基本信息都存储在 inode 中,而硬链接指的就是给一个文件的 inode 分配多个文件名,通过任何一个文件名,都可以找到此文件的 inode,从而读取该文件的数据信息。
ln [选项] 源文件 目标文件
读取文件信息
cat 将整个文档加载到内存中,并进行一次性显示;除非后面使用管道,传递数据
tac 将整个文档加载到内存中,并进行一次性按行逆序显示
more less 分页查看文档内容
head 从文章开始读取N行;默认如果超过10行读取10行,否则读取现在行数;head -5 profile
tail 从文章末尾读取N行
find 查找指定的文件;find 要查找的范围 -name 名字;find /etc -name profile
VI 和 VIM 编辑器
打开文件
正常打开 vi profile
打开文件,并将光标置于第8行 vi +8 profile
打开最后一行 vi + profile;按n查找下一个,按N查找上一个
打开指定搜索单词的位置 vi +/if profile
三种模式
使用 Vim 编辑文件时,存在 3 种工作模式,分别是命令模式、编辑模式和底行模式,这 3 种工作模式可随意切换, 如下图所示。
- 命令模式:每一个按键都有其具体的功能。
- 编辑模式:输入什么就是什么。
- 底行(命令行)模式:保存文件或对文件中的指定内容执行查找或替换等操作。
命令模式
使用 Vim 编辑器打开文件时,默认处于命令模式。此模式下,可使用方向键(上、下、左、右键)或 k(上)j(下) h(左)l(右)移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。
G :跳转至文件末尾。
gg :跳转至文件第一行。
数字gg :跳转到指定行,例如: 2gg ,跳转到第 2 行。
^ :跳转至行首。
$ :跳转至行末。
w :跳到下个单词处。
数字w :跳转到指定个数的单词处。
yw :复制一个单词。
3yw :复制三个单词。
yy :复制一行。
3yy :复制三行。
p :粘贴复制内容。
6p :粘贴 6 次。
dw :删除一个单词。
3dw :删除三个单词。
dd :删除一行。
3dd :删除三行。
u :回退到上一步的操作。
Ctrl + r :回退 u 执行的操作。
. :重复上一步操作。
x :剪切当前光标处字符。
3x :剪切三个字符。
r :替换,然后输入一个字符替换,例如: r1 ,光标处字符会被替换为 1 。
3r :替换三个字符。
kjhl :方向键,分别对应上下左右。
ZZ :保存并退出。
ZQ :不保存退出。
Ctrl + s :锁屏。
Ctrl + q :解锁。
编辑模式
这个没什么好说的,就和正常文本输入一样,输入什么就是什么。
底行模式
:set nu :打开行号。
:set nonu :关闭行号。
/要查找的内容 :搜索指定的字符串。
n :查找下一个。
N :查找上一个。
s/要查找的内容/替换为的内容/修饰符 :替换字符串。
/i :忽略大小写。
/g :替换当前行所有,不加 /g 只替换当前行的第一个。
3,8s/abc/lucky/g :替换指定行,不加 /g 只替换指定行的第一个。
%s/要查找的内容/替换为的内容/g :替换全文,不加 % 表示只替换光标所在行。
:w :保存。
:q :退出。
:wq :保存并退出。
:q! :强制退出,不保存。
如果上次异常退出(比如文件正在编辑忽然断电或者直接把 Shell 窗口关闭了)会保留同名隐藏文件。
每次启动会给与提示。如果确定当前文件没问题,请删除隐藏文件。
o :只读模式打开文件。
e :读写模式打开文件。
r :通过 .swp 文件恢复文件内容。
d :删除 .swp 文件。
q :退出文件。
a :终止操作(也会退出文件)。
打开文件
vi 文件名 :正常打开。
vi +8 文件名 :打开文件并跳转至第 8 行。
vi + 文件名 :打开文件并跳转至最后一行。
vi +/要查找的内容 文件名 :打开文件并搜索指定的字符串。
n :查找下一个。
N :查找上一个。
计算机间的数据传输
Window--Linux
lrzsz 需要手动安装 yum install lrzsz -y
- rz 将文件从window上传到Linux
- sz 文件 将文件从Linux传输到Window
xftp 较为通用的文件传输方式
Linux--Linux
- scp 源数据地址(source) 目标数据地址(target)
- scp apache-tomcat-7.0.61.tar.gz root@192.168.1.1:/opt
- scp root@192.168.1.4:/opt/apache-tomcat-7.0.61.tar.gz ./
- scp -r apache-tomcat-7.0.61 root@192.168.1.4:/opt
文件大小
分区信息 df -h
指定文件目录大小 du -h --max-depth=1 apache-tomcat-7.0.61
swap 一个特殊分区,以硬盘代替内存;当内存使用满的时候,可以将一部分数据写出到swap分区
文件压缩
tar
- 主要针对的文件是 xxx.tar.gz
- 解压缩 tar -zx(解压)v(过程)f(文件) xxx.tar.gz
- 压缩 tar -zc(压缩)f(文件) tomcat.tar.gz(压缩后的名字) apache-tomcat-7.0.61(源文件);
zip和unzip
- 安装 yum install zip unzip -y
- 压缩 zip -r tomcat.zip apache-tomcat-7.0.61
- 解压缩 unzip tomcat.zip
无论生活以怎样的方式向你走来,你都必须接受它,尽可能地享受它。