1、退出文件编辑
:q! //退出文件编辑模式且不保存
:wq //强制性写入文件并退出,并更新文件的修改时间
:x //写入文件并退出,仅当文件被修改时才更新文件的修改时间,否则不修改文件的修改时间
2、文件状态命令
view 文件名 //进入显示文件内容,并且可编辑
cat 文件名 //显示文件内容,不可编辑
more 文件名 //分屏显示文件内容,不可编辑
ls -l *.java //利用通配符显示文件,此处查找以.java结尾的文件,实际使用中根据自己需要设置
ls -l // 列出子目录的名字,注意区分和 ”ls -l * ” 的区别
ls -l * // 列出子目录的名字还将列出子目录下所有的文件 ,如果不想列出子目录的所有文件可以使用 ls -ld *
ls -la //显示隐藏文件。
ls -lb //还有另外一种隐藏文件,在ls命令下无法正确列出文件名字,可能还会提示“No such file or directory” 或 “cannot open file” 等错误信息。这是因为文件名中包含空值字符等不可打印的特殊字符,解决这个问题可以使用"-b"选项 如: ls -lb
mv命令: //重新命名文件,但不能采用“?”通配符,否则系统会误以为用户想要把连个文件移至某个目录下,可以借助Ctrl-v键,在相应的位置上输入控制字符,即可解决文件改名问题
(注意:Ctrl-V 是一个特殊的控制字符,在需要输入各种控制字符或其他特殊字符时,可以先按下Ctrl-V键,接着输入想要输入的任何控制字符,即可达到目的。从某种意义上来说,Ctrl -V相当于一个转义符号,可用于引入任何控制字符)
ls -lR /var/samba //利用ls命令的“-R”选项,可以递归地逐层显示当前(或指定)目录及其子目录中所有的文件
(注意:“ls -l * ”与“ls -lR”两个命令的意义和输出结果也不相同。前者仅仅涉及当前目录及其直接子目录连个目录层次中的所有文件。而后者将会遍历当前目录及其所有子目录(包括子目录下的子目录)中的所有文件)
$pwd //显示当前所在目录
$cd //更改当前目录,cd命令的默认参数是$HOME
$mkdir命令创建目录
3、文件状态下命令
ESC键 //回到控制模式
4、dirname和basename区别
dirname
给定的包含绝对路径的文件名中去除文件名(非目录部分),剩下路径(目录部分)
basename
给定的路径的文件名去除左边目录部分
basename [pathname] [suffix]basename [string] [suffix]suffix为后缀,如果suffix被指定了,basename会将pathname或string中的suffix去掉。示例:
- $ basename /tmp/test/file.txt
- file.txt
- $ basename /tmp/test/file.txt .txt
- file
注意点:1、如果像下面脚本中传递参数给basename,参数为空,basename会将参数左移2、basename最多接受两个参数,如果设置的参数多于两个,会提示错误。path dirname basename "/usr/lib" "/usr" "lib" "/usr/" "/" "usr" "usr" "." "usr" "/" "/" "/" "." "." "." ".." "." ".."