吴宏东 - 记于2018年06月29日 - 博客 https://segmentfault.com/u/wu...php
[-] 普通文件;
[d] 目录;
[l] 符号连接;
[c] 字符设备;
[b] 块设备;
[s] 套接字;
[p] 命名管道;html
*.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/*.xz 由gzip/bzip2/xz生成的压缩文件;
*.lock 用来表示某个程序或某种服务正在运行的锁文件;
*~备份文件;linux
cmd [-options] <arguments>;
单字符参数前使用一个减号(-),单词参数前使用两个减号(--);
多个单字符参数前可以使用一个减号;正则表达式
以.开头的文件或目录是隐藏的;
[*]匹配任何字符和任何数字的字符;
[?]匹配任何单字符;
[...]匹配任何包含在括号内的单字符;
[!...]匹配任何不包含在括号内的单字符;sql
# 列出当前目录下全部c语言源文件 ls *.c; # 列出/home目录下全部子目录下全部c语言源文件 ls /home/*/*.c; # 列出当前目录下全部以test开头,随后一个字符任意的.txt文件 ls test?.txt; # 列出当前目录下首字符是a或b或c的全部文件 ls [abc]*; # 列出当前目录下首字符不是a或b或c的全部文件 ls [!abc]*; # 列出当前目录下首字符是字母的全部文件 ls [a-zA-Z]*;
硬连接:两个文件指向硬盘上一个存储空间,对两个文件中任何一个进行修改都会影响另外一个文件,删除其中一个硬盘空间不会释放,连接数会减1;
软连接:建立一个文件指向另外一个文件,没法对软连接文件进行内容修改,删除软连接文件的话,对源文件不影响,删除源文件的话,软连接文件会找不到源文件成为死连接;shell
# 建立硬连接文件hard ln source hard; # 建立软链接文件soft ln -s source soft;
设备文件指计算机外围硬件装置,即除了CPU和内存之外的设备;
全部设备文件都存放在/dev目录下;
/dev/sd* 硬盘设备,sda1表示第一块硬盘的第一个分区,sdb2表示第二块硬盘的第二个分区;
/dev/sr0 光驱设备、移动设备;
/dev/console 系统控制台;
/dev/tty* 本地终端设备;
/dev/pts/* 伪终端设备;
/dev/ppp* ppp设备,(Point to Point)协议设备,传统的拨号上网;
/dev/lp* 并口设备,lp0表示第一个并口设备,lp1表示第二个并口设备;
/dev/null 空设备,也称为“黑洞”,全部写入它的内容都将丢失,用于屏蔽终端输出;
/dev/zero 零设备,能够产生不断的二进制零流,用于建立指定长度的空文件;segmentfault
/bin 存放二进制可执行程序;
/sbin 存放二进制可执行程序,可是只有root用户才能访问;
/dev 存放设备文件;
/boot 存放系统引导文件;
/etc 存放系统配置文件;
/home 存放用户文件根目录;
/lib+lib64 存放共享库和内核模块;
/lost+found 存放系统检查结果,发现不合法的文件都会存放在这里,一般是空的,除非系统遭受异常损坏;
/mnt 临时文件系统的挂载点目录;
/media 即插即用的存储设备的挂载点自动在这个目录下建立;
/opt 第三方软件的存放目录;
/proc 是一个虚拟的文件系统,存放当前内存的映射,用于在不重启机器的状况下管理内核;
/root 超级用户目录;
/srv 系统对外提供服务的目录;
/tmp 存放各类临时文件;
/usr 存放系统应用程序;
/var 存放随时须要修改的文件,如系统日志、脱机工做目录等;windows
# 显示当前目录下的全部文件和目录(包含隐藏的) 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; # 在当前目录及其子目录下查找以yum开头的文件 find . -name 'yum*'; # 在当前目录及其子目录下查找属主wuhd的文件 find . -user "wuhd"; # 仅在当前目录下查找以yum开头的文件 ls yum*;
正则表达式:bash
^ 匹配首字符,如^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;
普通模式:less
O 上开新行; o 下开新行; I 行首; A 行尾; /str 向右搜索str; ?str 向左搜索str; n 下一个; N 反向下一个; u 撤销操做; Z+Z 保存退出; Z+Q 不保存退出; <ESC> 退出插入模式; 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;