Linux文件目录
文件类型
[-]普通文件
[d]目录
[l]符号链接
[c]字符设备
[b]块设备
[s]插座
[p]命名管道
常见后缀
*.txt文本文件:
*.conf配置文件:
. html/. XML/. yml/. SQL html/XML/YAML/SQL文件;
. c/.cpp C/C语言源程序文件
. so/.ko/*.lib模块文件、库文件;
. sh/. PHP/. py/. pl/*.Rb shell/PHP/python/perl/ruby脚本文件;
*.rpm RPM文件:
*.tar tar归档文件
由. gz/.BZ2/*.xzgzip/bzip2/xz生成的压缩文件;
*.lock表示程序或服务正在运行的锁定文件。
*~文件备份
外壳命令
cmd [-options];
在单个字符参数之前加上负号(-),在单词参数之前加上负号(-);
可以在多个单个字符参数之前使用减号。
通配符
以.开头的文件或目录是隐藏的
[*]任意字符和与任意数字一致的字符
[? ]匹配任意一个字符;
[.]匹配括号中的所有单个字符;
[! ]匹配不在括号中的单个字符;
#列出当前目录中的所有c语言源文件
ls *.c;
列出/home目录下所有子目录下的所有c语言源文件
ls /home/*/*.c;
#列出所有以当前目录下的test开头、后跟以下字符的. txt文件
LS测试? txt;
#列出当前目录开头为a、b或c的所有文件
ls [abc]*;
#列出当前目录开头不是a、b或c的所有文件
ls [! abc]*;
#列出当前目录开头字母为字母的所有文件
ls [a-zA-Z]*;
链接
硬链接:两个文件指向硬盘上的一个存储空间,对这两个文件中的任何一个进行更改都会影响另一个文件。 删除其中一个硬盘空间不会释放,链接数减少1。
软链接:创建一个文件指向另一个文件,但不能对软链接文件进行内容修改。 删除软链接文件不会影响源文件。 删除源文件时,软链接文件找不到源文件,变为死链接。
#创建硬链接文件hard
ln source hard;
#创建软连接文件soft
Ln-s源软件;
设备文件
设备文件是指计算机周围的硬件设备,即除CPU和内存以外的设备。
所有设备文件都保存在/dev目录中。
/dev/sd*硬盘装置。 sda1代表第一个硬盘的第一个分区,sdb2代表第二个硬盘的第二个分区。
/dev/sr0光驱设备、移动设备;
/dev /控制台系统控制台;
/dev/tty*本地终端设备;
/dev/pts/*虚拟终端装置;
/dev/ppp* ppp设备、(点到点)协议设备、传统拨号连接;
/dev/lp*并行设备,lp0表示第一个并行设备,lp1表示第二个并行设备。
/dev/null空设备,也称为“黑洞”,写入其中的所有内容都将丢失,用于切断终端的输出。
/dev/zero零设备。 可以持续生成用于创建指定长度的空文件的二进制零流。
Linux目录
在野性的万宝路中存储二进制可执行程序;
/s野性的万宝路中存储了二进制可执行程序,但只有root用户可以访问;
/dev保管设备文件
存储/boot系统的引导文件;
保存/etc系统配置文件;
保存/home用户文件的根目录;
/lib存储lib 64共享库和内核模块;
/lost found存储系统检查结果,发现非法文件存放在此,通常为空,除非系统受到异常损坏;
/mnt临时文件系统的挂载点目录;
/media即插即用存储设备的装载点将自动在此目录下创建;
/opt第三方软件的存储目录;
/proc是一个虚拟文件系统,用于存储当前内存映射,以便在不重新启动计算机的情况下管理内核。
/root超级用户目录;
/srv系统对外服务目录;
/tmp保存各种临时文件;
存储/usr系统APP应用程序
随时保存需要修改的文件,如/var系统日志、脱机工作目录等;
文件目录操作
# 显示当前目录下的所有文件和目录(包含隐藏的)
ls -a;
# 以长格式列表显示
ls -l;
# 以递归的方式显示当前目录及子目录下的所有内容
ls -R;
# 仅显示/home目录本身,不显示目录下的内容
ls -dl /home;
# 显示当前目录的全路径
pwd;
# 创建目录连同子目录一起创建
mkdir -p /home/wuhd/test;
# 创建文件test.txt
touch test.txt;
# 进入/home目录
cd /home;
# 进入当前目录
cd .;
# 返回上一级目录
cd ..;
# 返回上二级目录
cd ../..;
# 显示当前目录以及子目录的树形结构
tree;
# 显示/home目录下的2级的树形结构
tree -L 2 /home;
# 复制/home下某个文件到/opt目录下
cp /home/test /opt/test;
# 复制/home下所有文件到/opt目录下
cp /home/* /opt;
# 移动/home下某个文件到/opt目录下
mv /home/test /opt/test;
# 强制删除文件
rm -f /home/test;
# 删除当前目录下的所有隐藏文件
rm .*;
# 强制删除wuhd目录下的所有内容
rm -rf /tmp/wuhd;
# 在当前目录及mldpy目录下查找以yum开头的文件
find . -name 'yum*';
# 在当前目录及mldpy目录下查找属主wuhd的文件
find . -user "wuhd";
# 仅在当前目录下查找以yum开头的文件
ls yum*;
文本操作
正则表达式:
^ 匹配首字符,如^x,以字符x开始的字符串;
$ 匹配尾字符,如x$,以字符x结尾的字符串;
. 匹配任意一个字符,如l..e,可匹配love,life;
? 匹配任意一个可选字符,如xy?,可匹配x,xy;
* 以前面一个字符匹配零次或多次重复,如xy*,可匹配x,xy,xyy;
+ 以前面一个字符匹配一次或多次重复,如xy+,可匹配xy,xyy,xyyy;
[...] 匹配任意一个字符,如[xyz],可匹配x,y,z;
| 以或逻辑匹配多个匹配,如abc|xyz,可匹配abc或xyz;
转义字符,如*,可匹配字符*;
# 正序查看文件
cat /etc/passwd;
# 显示行号
cat -n /etc/passwd;
# 倒序查看文件
tac /etc/passwd;
# 分屏显示,空格键、回车键翻阅,q退出
more /var/log/messages;
# 分屏显示,空格键、回车键、PgUp、PgDn翻阅,q退出
less /var/log/messages;
# 显示前4行内容
head -10 /var/log/messages;
# 显示后4行内容
tail -10 /var/log/messages;
# 行数 字数 字符数 文件名
wc /var/log/messages;
# 对文本内容排序(以ASCII码顺序)
sort txt;
# 相同行只输出一行
sort -u txt;
# 对文本内容排序(以ASCII码逆序)
sort -r txt;
# 对文本字符串数值排序
sort -n txt;
# 比较文件差异
diff httpd.conf httpd.conf.bak;
# windows替换为linux
sed -i 's/windows/linux/g' txt;
# 删除每行结尾的空格
sed -i 's/*$//' txt;
# 在每行行首加上"> '
sed -i 's/^/> /' txt;
# 在每行行首去掉"> "
sed -i 's/^> //' txt;
# 删除所有空白行
sed -i '/^$/d' txt;
打包压缩
# 将111文件夹打包成111.tar
tar -cvf 111.tar 111;
# 解包
tar -xvf 111.tar;
# 将111文件夹用gzip打包压缩成111.tar.gz
tar -zcvf 111.tar.gz 111;
# 解压缩
tar -zxvf 111.tar.gz;
# 将111文件夹用bzip打包压缩成111.tar.bz
tar -jcvf 111.tar.bz 111;
# 解压缩
tar -jxvf 111.tar.bz;
# 将111文件夹用xz打包压缩成111.tar.xz
tar -Jcvf 111.tar.xz 111;
# 解压缩
tar -Jxvf 111.tar.xz;
常用命令
# 显示进程树
pstree;
# 显示系统运行时间、用户数、平均负载
uptime;
# 显示文件信息
stat txt;
# 显示在线的登录用户
who;
# 显示用户自己的身份
whoami;
# 查找程序ls的位置
whereis ls;
# 显示文件或目录的大小,不显示目录中每个文件大小
du -sh /;
# 显示1949年日历
cal 1949;
# 显示1949年10月日历
cal 10 1949;
VI 编辑器
普通模式:
O 上开新行;
o 下开新行;
I 行首;
A 行尾;
/str 向右搜索str;
?str 向左搜索str;
n 下一个;
N 反向下一个;
u 撤销操作;
Z+Z 保存退出;
Z+Q 不保存退出;
退出插入模式;
yy 复制当行内容;
p 粘贴复制的内容;
命令模式:
:set number 显示行号;
:set nonumber 不显示行号;
:n 跳到第n行;
:d 删除当前行;
:n1,n2 d 删除从n1行到n2行内容;
:n1,n2 w file 保存从n1行到n2行内容到文件file;
:!cmd 执行shell命令cmd;
:r!cmd 执行cmd命令并将输出的内容写入到光标位置;
:q 退出vi;
:wq 保存退出vi;
:q! 强制不保存退出vi;