吴宏东 - 记于2018年06月29日 - 博客
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/*.xz 由gzip/bzip2/xz生成的压缩文件; *.lock 用来表示某个程序或某种服务正在运行的锁文件; *~备份文件;Shell 命令
cmd [-options] <arguments>;
单字符参数前使用一个减号(-),单词参数前使用两个减号(--); 多个单字符参数前可使用一个减号;通配符
以.开头的文件或目录是隐藏的;
[*]匹配任何字符和任何数字的字符; [?]匹配任何单字符; [...]匹配任何包含在括号内的单字符; [!...]匹配任何不包含在括号内的单字符;# 列出当前目录下所有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;
软链接:创建一个文件指向另一个文件,无法对软链接文件进行内容修改,删除软链接文件的话,对源文件不影响,删除源文件的话,软链接文件会找不到源文件成为死链接;# 创建硬链接文件hardln source hard;# 创建软连接文件softln -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 零设备,可以产生不断的二进制零流,用于创建指定长度的空文件;Linux 目录
/bin 存放二进制可执行程序;
/sbin 存放二进制可执行程序,但是只有root用户才能访问; /dev 存放设备文件; /boot 存放系统引导文件; /etc 存放系统配置文件; /home 存放用户文件根目录; /lib+lib64 存放共享库和内核模块;/lost+found 存放系统检查结果,发现不合法的文件都会存放在这里,通常是空的,除非系统遭受异常损坏; /mnt 临时文件系统的挂载点目录; /media 即插即用的存储设备的挂载点自动在这个目录下创建; /opt 第三方软件的存放目录; /proc 是一个虚拟的文件系统,存放当前内存的映射,用于在不重启机器的情况下管理内核; /root 超级用户目录; /srv 系统对外提供服务的目录; /tmp 存放各种临时文件; /usr 存放系统应用程序; /var 存放随时需要修改的文件,如系统日志、脱机工作目录等;文件目录操作
# 显示当前目录下的所有文件和目录(包含隐藏的)ls -a;# 以长格式列表显示ls -l;# 以递归的方式显示当前目录及子目录下的所有内容ls -R;# 仅显示/home目录本身,不显示目录下的内容ls -dl /home;# 显示当前目录的全路径pwd;# 创建目录连同子目录一起创建mkdir -p /home/wuhd/test;# 创建文件test.txttouch 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*;
文本操作
正则表达式:
^ 匹配首字符,如^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替换为linuxsed -i 's/windows/linux/g' txt;# 删除每行结尾的空格sed -i 's/*$//' txt;# 在每行行首加上"> 'sed -i 's/^/> /' txt;# 在每行行首去掉"> "sed -i 's/^> //' txt;# 删除所有空白行sed -i '/^$/d' txt;
打包压缩
# 将111文件夹打包成111.tartar -cvf 111.tar 111;# 解包tar -xvf 111.tar;# 将111文件夹用gzip打包压缩成111.tar.gztar -zcvf 111.tar.gz 111;# 解压缩tar -zxvf 111.tar.gz;# 将111文件夹用bzip打包压缩成111.tar.bztar -jcvf 111.tar.bz 111;# 解压缩tar -jxvf 111.tar.bz;# 将111文件夹用xz打包压缩成111.tar.xztar -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;