1.基本知识
type:显示命令类型
file: 显示文件类型
ELF:代表二进制可执行程序(类似于exe)
man:帮助手册(用于外部命令)
echo: 打印到标准输出
whereis : 定位命令位置
脚本:是个文本文件它解释执行,但脚本会给出它真正的解释器(一个二进制可执行程序)
help: 内部命令帮助
shell:人机交互,与内核沟通:cd is a shell builtin(cd 是一个shell命令,内部命令)
基本命令:
•df:显示磁盘使用情况
df(-h):相当于打开我的电脑
•du:显示文件系统使用情况
du -sh ./*:统计各个文件夹的占存
•ls:显示目录
ls -li(会显示内存地址)
•cd:切换工作目录
cd -(回到上个使用的目录)
•pwd:显示当前工作目录
•mkdir:创建目录
mkdir -p ./a/b/c(深度创建)
mkdir ./abc/{x,y,z}dir(创建多个文件)
•rm:删除
rm -fr(强制删除包括目录)
•cp:拷贝
cp install.log /tmp
cp a /tmp (拷贝目录)
•mv:移动
mv xxxx /tmp (移动)
mv xxxx ooxx (重命名)
•ln:链接
ln install.log.syslog sxt.txt (创建快捷方式,指向同一地址,硬链接)
ln -s sxt.txt bjsxt.log(软链接,指向sxt.txt而不是地址)
•stat:元数据
stat ./profile (查看文件的元数据,属性)
cat:类似于程序,打印处文件内容 (more,less服务端中分屏显示)(head -4 看文件前四行的头部分,tail -4看文件的后四行末尾部分)(head 4 xxxx | tail -1 只看第四行)
| ;管道常用来分屏,xxxx | more
2.文件类型:
• -:普通文件 (f)
• d: 目录文件
• b: 块设备文件 (block)
• c: 字符设备文件 (character)
• l: 符号链接文件(symbolic link file)
• p: 命令管道文件(pipe)
• s: 套接字文件(socket)
•文件权限:9位,每3位一组,3组 权限(U,G,O)每一组:rwx(读,写,执行), r--
•Filesystem Hierarchy Standard(文件系统层次化标准)
–/boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader)
–/dev: 设备文件
–/etc:配置文件
–/home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME
–/root:管理员的家目录;
–/lib:库文件
–/media:挂载点目录,移动设备
–/mnt:挂载点目录,额外的临时文件系统
–/opt:可选目录,第三方程序的安装目录
–/proc:伪文件系统,内核映射文件
–/sys:伪文件系统,跟硬件设备相关的属性映射文件
–/tmp:临时文件, /var/tmp
–/var:可变化的文件
–/bin: 可执行文件, 用户命令
–/sbin:管理命令
3.vi全屏文本编辑器
set nu:显示行数
•打开文件
–vim /path/to/somefile
–vim +# :打开文件,并定位于第#行
–vim +:打开文件,定位至最后一行
–vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首
•关闭文件
–末行模式:
–:q 退出 没有动过文件
–:wq 保存并退出 动过了,不后悔
–:q! 不保存并退出 动过了,后悔了
–:w 保存
–:w! 强行保存
–:wq --> :x
–ZZ: 保存并退出 不需要冒号,编辑模式
•模式:
–编辑模式:按键具有编辑文本功能:默认打开进入编辑模式
–输入模式:按键本身意义
–末行模式:接受用户命令输入
•编辑-->输入:
– i: 在当前光标所在字符的前面,转为输入模式;
– a: 在当前光标所在字符的后面,转为输入模式;
–
– o: 在当前光标所在行的下方,新建一行,并转为输入模式;
– O:在当前光标所在行的上方,新建一行,并转为输入模式;
– I:在当前光标所在行的行首,转换为输入模式
– A:在当前光标所在行的行尾,转换为输入模式
• 输入-->编辑:
•ESC
•编辑-->末行:
–:
•末行-->编辑:
–ESC, ESC
•操作:
编辑模式
•移动光标
–字符
•h: 左;j: 下;k: 上;l: 右
–单词
•w: 移至下一个单词的词首
•e: 跳至当前或下一个单词的词尾
•b: 跳至当前或前一个单词的词首
–行内
•0: 绝对行首
•^: 行首的第一个非空白字符
•$: 绝对行尾
–行间
•G:文章末尾
•3G:第3行
•gg:文章开头
–翻屏
•ctrl:f,b
•删除&替换单个字符
–x:删除光标位置字符
–3x:删除光标开始3个字符
–r:替换光标位置字符
•删除命令 : d
–dw,dd
•复制粘贴&剪切
–yw,yy
–p
–P
•撤销&重做
–u 撤销
–ctrl+r 重做 撤销的操作
–. 重复上一步的操作
末行模式 shift + :
–set nu number
–set nonu nonumber
–set readonly
•/:查找
–/after(/)
–n,N(勾范围)
–?向上查找
•!:执行命令
–:!ls -l /
•s查找并替换
–s/str1/str2/gi(如1,$s#after#bef/or/)
•/:临近s命令的第一个字符为边界字符:/,@,#
•g:一行内全部替换(不然一行只替换一次/)
•i:忽略大小写
–范围
•n:行号
•.:当前光标行
•+n:偏移n行
•$:末尾行,$-3
•%:全文
4.正则表达式
基本用法:grep “ooxx” grep.txt(提取包含ooxx的行)
匹配操作符
–\ 转义字符
–. 匹配任意单个字符
–[1249a],[^12],[a-k] 字符序列单字符占位
–^ 行首
–$ 行尾
–\<,\>:\<abc 单词首尾边界
–| 连接操作符
–(,) 选择操作符
–\n 反向引用
例:1.包含“ooxx”单词的行:grep "\<ooxx\>" grep.txt
2.以“ooxx”开头的行:grep “^ooxx” grep.txt
3.以“ooxx”单词开头的行:grep "^ooxx\>" grep.txt
4.包含数字4-8:grep "[4-8]" grep.txt(单字符匹配)
5.出现“ooxx~~ooxx”或“ooxx~~xxoo”的行:“ooxx.*ooxx”,"ooxx.*xxoo" or
设置元素"\(oo\)\(xx\).*\1\2","\(oo\)\(xx\).*\2\1"