十年河东,十年河西,莫欺少年穷
学无止境,精益求精
大学毕业后,一直做C#开发,从NetFrm2.0做起,至今快十年了,受微软影响,很少接触Linux。
自netCore推出后,微软也进入了开源、跨平台的行列,且随着docker容器技术及K8S的发展流行,因此学习Linux势在必行了。
俗话说,工欲善其事必先利其器,前段时间,在自己的Win10电脑上,通过VmWare装了二台Linux、Centos7操作系统,一个网页服务器版,一个桌面版。
有了Linux操作系统,就需学会操作该系统,鉴于之前自己是小白一枚,因此只能通过自学来改善薄弱的Linux知识了。
本篇博客记录linux文件管理相关命令,大牛可直接跳过。
linux 命令格式为:命令+【选项】+【参数】 例如:ls -a / 列出根目录下所有文件包含隐藏文件 ,【】里面内容为可选项。
1、ls 命令
ls 列出当前目录下文件、文件夹
ls -a 列出当前目录下文件、文件夹,以.开头的隐藏文件也会被列出
ls -l 列出当前目录下文件/文件夹详情信息
- 开头的为 文件
l 开头的为连接,软链接,硬链接,软链接类似于windows操作系统下的快捷方式,硬链接相当于源文件的复制版,但修改源文件时,硬链接内容也会修改
d 开头的为文件夹
第一个 rwx 代表拥有者可读 、可写 、可执行 ,第二个 rwx 代表与拥有者同组人员可读、可写、可执行,第三个 rwx 代表其他人 可读 可写 可执行
第一个 root 为拥有者/创建者 第二个 root代表与root同组人员,80770 代表文件/文件夹大小,单位字节,时间为修改时间,liunx中没有创建时间,如果文件从创建到现在,一直未被修改,则修改时间为创建时间 最后为文件名/文件夹名称
上述文件大小用字节来表示,看着贼不爽,可采用如下命令来人性化展示
ls -lh
ls .
ls . 类似于 ls ,列举当前目录文件/文件夹
ls ..
ls .. 两个点,代表当前目录的上层目录,用于列举当前目录上层目录的文件/文件夹
ls -i
ls -i 列举当前文件/文件夹对应的系统ID
ls -ltr t*
列举当前目录下 以t开头的文件/文件夹
其他诸如 ls 命令,可自行参考其他资料
2、cd pwd cp mv mkdir rmdir rm rf 相关
cd 用于切换目录
pwd 显示当前所在目录
cp 使用复制
mv 用于剪切 或 重命名
剪切:
mv text.txt ../text.txt
将 text.txt 剪切至当前目录的上级目录
上级目录 desk 中也有一个text.txt
重命名
mv text.txt chenwolong.txt
mkdir :创建目录
rmdir :删除空目录,这里需要强调的是删除的只能是空目录
如果删除的文件夹不为空,则删除失败
rm -r wenjianjia
询问模式,是否删除文件夹:wenjianjia
输入 y 则删除,输入 n 则不删除
rm -rf wenjianjia
强制删除文件夹 wenjianjia
在这里说一个删库跑路的方法:
# 删除根目录下所有文件,杀伤力极大,请谨慎使用 # 此命令一出,Linux根目录下很多文件,可以能彻底从这个星球上彻底消失了 rm -rf /*
执行后,linux操作系统完蛋,系统数据几乎全部删除,跑路是不可能的,进监狱的可能性挺大,哈哈。
3、cat tac more touch less n q head tail tail -f
touch 代表创建一个文件
touch aaa.txt
cat 代表查看一个文件 tac 和cat一样,只不过是倒着看
more 和 less 是分页查看, less 功能强大一些, 可以设置查看的条数,看大文件时使用。 例如有上万条数据时,可使用more 、 less
less -5 aaa.txt
head 代表看前几行数据
head -6 aaa.txt
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。
其他指令可参考其他资料
4、linux 软链接 和 硬链接
软链接 硬链接 均使用 ln 指令
ln -s aaa.txt aaa.exe
以上指令是将aaa.txt 生成 软链接 aaa.exe ,上述说过,软链接类似window系统中的桌面快捷方式。
硬链接
ln aaa.txt bbb.txt
硬链接相当于源文件的复制版,但当源文件改变时,硬链接内容也会相应改变。且源文件删除后,硬链接依然可以使用。但是,相对软链接来说:源文件删除后,软链接就不可用了。
关于软硬连接内容,大家可参考其他资料。
5、vim 相关
vim 文件名,代表新建一个文件,并进入编辑模式
vim long.txt
输入 i 进入编辑模式
按esc键后:输入 :wq! 为保存并退出,输入:q! 代表不保存,强制退出,输入:q 代表UI退出
关于VIM的强大功能,大家可参考其他资料
6、文件搜索命令-find -name 区分大小写 -iname不区分大小写 -size 通过文件大写来查找 -user 根据所有者进行查找 -group 根据所属组进行查找
find /home/chenwolong/桌面/net -name a.txt
搜索net 目录及其子目录下 名称为 a.txt 的文件,这种属于名称全匹配。
怎么模糊匹配呢?使用 * 号进行模糊匹配
find /home/chenwolong -name *aa*
例如
[root@localhost net2]# find /home/chenwolong -name *aa* /home/chenwolong/桌面/net/net2/aa.txt
使用 ? 进行单字符匹配
find /home/chenwolong -name a?.txt
以上指令可以查出 aa.txt ab.txt ac.txt 等
使用 -iname 不区分大小写查找文件
find /home/chenwolong -iname aa.txt
可以查出 aa.txt 和 AA.txt 或 Aa.txt
-size +代表大于多少字节的文件 -代表小于多少字节的问题 如果查询一个 等于1024字节的文件,不需要加修饰符
例如:
find /home -size -1 --查询小于 1字节的文件
find /home/chenwolong -size 1024 --查询等于1024字节的文件
-user 根据所有者进行查询
find /home/ -user root
-group 根据所属组进行查询
find /home/ -group root
还有其他用法,如:locate locate是系统维护的一个文件资料库,用于查找系统文件比较快,如果你新建的一个文件暂时没有被linux收录到文件资料库,那么使用locate是暂时找不到的
locate a.txt
针对linux命令进行所搜常用的有swich 查找命令,whereis 查找命令,
例如:
[root@localhost /]# whereis ls ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
grep 文件搜索命令 ,例如查找文件中是否存在某字符
例如:
grep long a.txt
grep -i Mao a.txt --不区分大小写
grep -v Mao a.txt --排除指定字符串
关于 grep 的详细用法 ,不多说了
Vim 操作小技巧
vim nginx01.conf
进入编辑器后,输入 :set nu 后,按下enter键,显示行号
: set nu
输入 :数字1,数字2 d 删除指定行数范围内的内容,按下enter键 即可删除
:87,112 d
@天才卧龙的博客
grep long a.txt