#文件夹与文件操作 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
cp
2.将用户主文件夹下的passwd文件备份为passwd-bak
cp
3.在用户主文件夹下新建文件夹test_dir
mkdir
4.将passwd-bak移动到test_dir文件夹下
mv
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
/*}}}*/
#打包文件夹与压缩文件,(结合ppt 3 66页) zip unzip gzip gunzip bzip2 bunzip2 tar
/*{{{*/
十九、zip对多个文件进行压缩,生成.zip后缀名压缩文件,unzip进行解压缩
!使用方法:zip 压缩包名.zip 文件1 文件2 ……
eg:将test.c test1.c test2.c 压缩到test.zip文件里
zip test.zip test.c test1.c test2.c
eg:将test.zip解压到当前文件夹下
unzip test.zip
二十、gzip对一个文件进行普通压缩,不能对文件夹压缩
eg:将test.c压缩成test.c.gz
gzip test.c
二十一、gunzip对gz格式压缩文件解压
eg:将test.c.gz解压
gunzip test.c.gz
二十二、bzip2对一个文件进行高比例压缩。不能对文件夹压缩
eg:将test.c文件压缩为test.c.bz2
bzip2 test.c
二十三、bunzip2 对bz2格式压缩文件进行解压
eg:将test.c.bz2解压
bunzip2 test.c.bz2
二十四、tar将多个文件或文件夹打包
#经常使用选项
-c 创建
-x 释放
-z 处理gzip压缩的tar包
-j 处理bzip2压缩的tar包
-v 显示具体信息
-f 指定打包或解包的文件,需放在选项最后
!使用方法
打包
eg:将jeffy-vim-v2.0打包生成jeffy-vim-v2.0.tar
tar -cvf jeffy-vim-v2.0.tar jeffy-vim-v2.0
解包
eg:将jeffy-vim-v2.0.tar解包
tar -xvf jeffy-vim-v2.0.tar
先打包。再使用gzip bzip2命令压缩
tar -cvf jeffy-vim-v2.0.tar jeffy-vim-v2.0
gzip jeffy-vim-v2.0.tar <= 生成jeffy-vim-v2.0.tar.gz
或bzip2 jeffy-vim-v2.0.tar <= 生成jeffy-vim-v2.0.tar.bz2
直接打包并压缩
以gzip压缩 -czvf,后缀.tar.gz 或.tgz
tar -czvf jeffy-vim-v2.0.tar.gz jeffy-vim-v2.0
tar -czvf jeffy-vim-v2.0.tgz jeffy-vim-v2.0
以bzip2压缩 -cjvf ,后缀.tar.bz2 或.tbz2
tar -cjvf jeffy-vim-v2.0.tar.bz2 jeffy-vim-v2.0
tar -cjvf jeffy-vim-v2.0.tbz2 jeffy-vim-v2.0
解压缩并解包 -xvf,对gzip与bzip2处理的文件均有效
tar -xvf jeffy-vim-v2.0.tar.bz2
tar -xvf jeffy-vim-v2.0.tbz2
tar -xvf jeffy-vim-v2.0.tgz
/*}}}*/
#其他命令 clear date echo which whereis man
/*{{{*/
二十五、clear 清屏
快捷键 ctrl + l
二十六、date 查看日期及时间
eg:date
二十七、echo显示一行文本,经常使用于显示环境变量值
eg:显示字符串hello world!
echo "hello world!"
echo hello world!
注意差别。加""原样输出。否则算多个字符串输出
eg:显示环境变是LANG的值,注意查看环境变量须要加$
echo $LANG
二十八、which 查找命令所在路径
eg:查找ls 所在路径
which ls
二十九、whereis 查找命令所在路径,源,man手冊文件所在位置
whereis ls
三十、man 查帮助手冊
eg:查ASCII码表
man ascii
eg:查whereis 命令帮助页
man whereis
eg:查函数strcmp
/*}}}*/
#系统维护命令 sudo su passwd shutdown
/*{{{*/
三十一、sudo以超级用户身份运行一条命令
eg:查看系统下存放账号password文件内容,需超级用户权限
$cat /etc/shadow
$cat: /etc/shadow:Permission denied
$sudo cat /etc/shadow
$[sudo]password for tim: <=输入tim用户的password。注意password不会回显!
三十二、su暂时切换用户
eg:切换到root用户
su
Passwd: <=输入root用户password!
exit可退出切换的用户
eg:切换到root用户,并切换到root主文件夹/root
su -
Passwd: <=输入root用户password
注意假设第一次切换root用户可能会提示password错误
三十三、改动passwordpasswd
eg:改动tim用户password
sudo passwd tim <=加sudo 是能够设置短password
eg:改动rootpassword
sudo passwd root
三十四、shutdown关机命令
eg:5分钟后关机
sudo shutdown +5
eg:马上关机
sudo shutdown -h now
eg:马上重新启动
sudo shutdown -r now
sudo reboot
/*}}}*/
#用户管理 adduser deluser
/*{{{*/
三十五、adduser加入用户,会要求输入新用户password。全名,
并在/home文件夹下创建新用户主文件夹
eg:sudo adduser max <=输入当前用户password
三十六、deluser删除用户
eg:删除用户max
sudo deluser max
#选项--remove-home,删除用户同一时候删除该用户主文件夹
eg:sudo deluser --remove-home max
/*}}}*/
剩下命令
du df mount umount ln "ls -l" chmod chown chgrp ps kill