分类: 嵌入式
2014-11-06 19:17:03
#目录与文件操作 pwd ls cd mkdir cp mv rm file
一.pwd 显示当前工作目录所在绝对路径(以/为起点表示的路径)
eg:pwd
#选项-P显示链接文件路径
二.ls 显示目录下文件及目录
可以带参数,指定目录或文件
可不带参数,显示当前目录
eg:查看主目录下workdir目录的内容(~代表用户主目录)
ls ~/workdir
ls
#A.选项 -a 显示所有文件,包括隐藏文件(以.开头的文件)
eg:(带参数:指定目录或文件)查看主目录下workdir目录下所有文件
ls -a /home/tim/workdir
eg:(不带参数)查看当前目录下所有文件及目录
ls -a
#B.选项 -l 显示文件或目录的属性信息,(仅解释文件大小,其它细节在文件系统部分解释)
eg:显示当前目录下文件及目录的属性信息
ls -l
eg:显示指定目录或文件的属性信息,注意可以带多个参数!
ls -l /home/tim examples.desktop
#C.选项 -h 以K,M,G为单位显示文件大小,与-l一起用。
注意:bash下通过alias命名了l,la,ll。效果请自行测试
注意:几个特别的目录 . .. / ~ -
三.cd 切换工作目录 关于文件系统的路径。绝对与相对
eg:不带选项和参数,返回当前用户的主目录.
cd回车
eg:切换到根目录下的home目录下
cd /home
eg:切换到上层目录
cd ..
eg:切换到前一个目录
cd -
eg:切换到上层目录的上层目录,从主目录切换到根目录.
cd ~
cd ../..
四.mkdir 新建空目录
eg:当前目录下创建目录dir
mkdir dir
eg:在/home/tim/workdir目录下创建目录dir
mkdir /home/tim/workdir/dir
#选项-p递归创建多层目录
eg:在~下创建dir1/dir2/dir3
mkdir ~/dir1/dir2/dir3 -p
五.cp 拷贝源文件或目录到目标文件或目录,可实现备份
eg:将共享目录下的文件拷贝到主目录下
cp /mnt/hgfs/share/jeffy-vim-v2.0.zip ~
eg:将主目录下的jeff-vim-v2.0.zip 备份为jeffy-vim-v2.0_bak.zip
cp jeff-vim-v2.0.zip jeffy-vim-v2.0_bak.zip
#选项-a拷贝整个目录内容
eg:将目录jeffy-vim-v2.0拷贝到Desktop目录下
cp jeffy-vim-v2.0 ~/Desktop -a
六.mv 移动源文件或目录到目标文件或目录,可实现重命名
eg:将主目录下的test.txt文件移动到共享目录下
vi test.txt
mv test.txt /mnt/hgfs/share
eg:将主目录下的Videos目录重命名为MyVideos
mv Videos MyVideo
七.rm 删除一个或多个文件或目录,物理删除,不可恢复。-rf
eg:删除在主目录下jeffy-vim-v2.0_bak.zip
rm jeffy-vim-v2.0_bak.zip
#选项-rf强制删除文件或目录
eg:删除主目录下的dir目录
rm -rf dir
八.file 查看文件类型
eg:查看主目录下test.c文件类型
file test.c
eg:查看主目录下shared文件类型
file shared
练习:
如果/mnt/hgfs/目录下没有可用目录,将共享目录换为~/Videos
1.将/etc/passwd文件拷贝到用户主目录
2.将用户主目录下的passwd文件备份为passwd-bak
3.在用户主目录下新建目录test_dir
4.将passwd-bak移动到test_dir目录下
5.将test_dir目录下的passwd-bak文件改名为passwd
6.将test_dir目录拷贝到你的共享目录下
7.将共享目录下的test_dir目录改名为dir
8.删除以上产生的文件
#编辑与查看文件内容 touch vi/vim cat more/less head/tail sort uniq diff
九.touch 可用于创建新文件
eg:在主目录下创建文件test_touch
touch test_touch
十.vi / vim 新建或编辑
使用小技巧:
vi file +行号 打开文件时光标直接定位到指定行
vi file1 file2 -d 比较两个文件的差异
十一.cat 在标准输出(显示器)显示文件内容
eg:显示主目录下的文件test.c
cat test.c
#选项-n 显示文件内容时显示行号
eg:显示主目录下的文件test.c同时显示行号
cat -n test.c
十二.more/less 分屏显示文件
cat 显示文件时一次性全在屏幕上显示出来了,查看前面内容不太方便,
more/less命令能解决这个问题
使用异同点
eg:分屏显示文件内容
more /etc/passwd
less /etc/passwd
相同操作方法
d键下翻页,b键上翻页
回车下翻行,空格下翻页
不同操作:less支持上下键,pagedown和pageup键上下翻行翻页
显示区别,more显示当前显示内容百分比。
退出按q键。
十三.head/tail 显示文件开头/结尾
如果只想查看文件开头或最后几行内容,可使用head/tail命令,默认显示10行
eg:查看/etc/passwd文件开头10内容
head /etc/passwd
eg:查看/etc/passwd文件结尾处10内容
tail /etc/passwd
#选项-num指定显示内容的行数
eg:查看/etc/passwd文件开头20行内容
head -20 /etc/passwd
tail 用法类似
head与tail常与管道结合使用
十四.sort 按行排序从小到大显示文件内容,注意排序结果不会影响原文件
显示结果与语系相关,为了以ASCII码值为结果使用LANG=C统一
可以通过echo $LANG查看
eg:排序查看文件内容
vi test.c
每行写入字符,数字,符号
sort test.c
#选项-r从大到小的顺序排序显示
eg:逆序排序查看文件内容
sort -r test.c
#选项-n对数字排序时以数值结果排序,而不是ASCII码值排序
eg:按数字数值排序
vi test
每行写入数字
sort test
sort -n test
显示区别
#选项-o指定排序结果输出到文件
eg:将test.c 排序结果写回test.c
sort test.c -o test.c
十五.uniq显示文件内容,去掉相邻重复的行
eg:显示时重复相邻行只显示一行。
uniq test
十六、diff按行比较两个文件的不同,将两具文件中不同内容显示出来
常用于程序新旧版本对比
eg:显示sort1.c与sort2.c不同处
diff sort1.c sort2.c
显示结果不直观,建议用vim sort1.c sort2.c -d代替,直观对比
显示结果中a表示追加,d表示删除,c表示更改,
<表示属于第一个文件,>表示属于第二个文件.
#查找与搜索 find grep
十七、find在当前目录下递归查找文件显示路径,即包括子目录
用法:find -name filename
或find -name 'filename'
或find -name "filename"
eg:在当前目录(主目录)下查找test.c文件
find -name test.c
用法:find 路径 -name filename
eg:在workdir目录下查找test.c文件
find ~/workdir -name test.c
十八、grep在文件中查找字符串
eg:在/etc/passwd 文件中查找"tim"
grep "tim" /etc/passwd
#选项-n显示字符串所在行号
eg:在/etc/passwd文件中查找"tim",并显示所在行号
grep "tim" /etc/passwd
eg:在当前目录下所有文件中搜索"main"(不包括子目录)
grep "main" *
eg:在当前目录下所有文件中搜索"main"(包括子目录)
grep "main" * -nR
#搜索字符串的匹配方式 ^ $
eg:查找所有含有tim的字符串
将/etc/passwd 拷贝到主录目下
cp /etc/passwd ~
grep "tim" passwd
eg:查找以tim开头的字符串
grep "^tim" passwd
eg:搜索以tim结尾的字符串
grep "tim$" passwd
eg:搜索出只含"tim"的字符串
grep "^tim$" passwd