1.查看文件
ls [-ald] dirname
表示查看当前目录
-a 列出该目录下的所有文件,包括隐藏文件
-l 列出该目录下的详细数据
ls -al
可以简写为ll
cd [path]
change dir 的简写,用来切换目录,以下是几个目录表示方式:
. 表示当前目录
.. 表示上一级目录
~ 表示当前用户的主文件夹目录,相当于/home/xxx
- 上一次操作的目录
~user 表示user的主文件夹目录,相当于/home/user
!$ 上次命令中包含的路径
pwd [-P]
-P 显示当前路径,非连接路径
显示当前目录路径,如:
jyq@ubuntu:~$ pwd
/home/jyq
cat [-n] filename
查看文件内容
-n 显示行号
more filename
以页的形式查看文件内容,但只能向下翻页
Space 向下翻一页
Enter 向下翻一行
b 往回翻页
/string 向下查找string字符串
:f 显示出文件名和当前行号
q 退出
less filename
相比于more,可以向上翻页
Space/PageDown 向下翻页
PageUp 向下翻页
/string 向下查找字符串
?string 向上查找字符串
q 退出
head [-n number] filename
查看文件前几行,默认10行
# 查看.bashrc的前二十行
$ head -n 20 .bashrc
# 不查看.bashrc的最后50行
$ head -n -50 .bashrc
tail [-n number] filename
显示文件后几行,不指定行数默认10行,如:
# 查看.bashrc文件的后11行内容
$ tail -n 11 .bashrc
# 查看.bashrc文件第110行之后的内容
$ tail -n +110 .bashrc
nl [-n] filename
查看文件,显示行号
-n 列出行号的方法,有三种
-n ln:行号在屏幕最左方显示
-n rn:行号在字段的最左方显示,但不加0
-n rz:行号在字段的最左方显示,且加0
2.操作文件
mkdir [-mp] dirname
创建文件夹
-p 递归创建多级目录
-m 创建时配置文件权限
如:
yq@ubuntu:~/PythonWorkSpace$ mkdir test2;ls -l
total 8
-rwx--x--x 1 jyq jyq 11 Jun 13 16:53 test
drwxrwxr-x 2 jyq jyq 4096 Jun 19 08:22 test2
$ mkdir -m 700 test3;ls -l
total 12
-rwx--x--x 1 jyq jyq 11 Jun 13 16:53 test
drwxrwxr-x 2 jyq jyq 4096 Jun 19 08:22 test2
drwx------ 2 jyq jyq 4096 Jun 19 08:22 test3
rmdir [-p] dirname
删除空目录
-p 连同上级目录一并删除
如:
# 将test1/test3文件夹和test1文件夹都删除
$ rmdir -p test1/test3/
touch [-acdmt] filename
创建文件,或者修改文件的时间,常用于创建文件
-a 仅仅修改文件访问时间
如:
# 创建一个test.log文件
$ touch test.log
rm [-ifr] dirname/filename
删除文件或文件夹
-i 删除前询问用户
-r 递归删除文件夹中的内容
-f 强制删除
如:
$ rm -rf myfolder/
cp [-airls] sourcefile targetfile
复制文件
-a 复制后文件的数据特性完全一致
-r 递归复制一个文件夹
-i 复制前询问用户
-s 复制成为符号链接文件
-l 创建一个硬连接文件,硬连接不能跨磁盘分区
如:
# 将WorkSpace整个文件夹复制给myfolder文件夹
$ cp -r WorkSpace/ myfolder
# 创建一个连接文件
$ cp -s test test_link
$ ls -l
total 16
-rwx--x--x 1 jyq jyq 11 Jun 13 16:53 test*
lrwxrwxrwx 1 jyq jyq 4 Jun 19 08:45 test_link -> test*
# 创建一个硬连接文件
$ cp -l test test_h
$ ls -l
total 12
-rwx--x--x 2 jyq jyq 11 Jun 13 16:53 test
-rwx--x--x 2 jyq jyq 11 Jun 13 16:53 test_h
ln [-s] file1 file2
产生链接文件(相当于快捷方式),链接文件改变,源文件也会改变.
-s 软连接,不加默认硬连接,硬连接不能跨磁盘分区
注意:两文件名要使用绝对路径
mv [-fiu] source target
移动文件或重命名文件
-f 强制操作
-i 询问用户
-u 若目标文件已经存在,且source已更新,则进行操作
如:
# 重命名
$ mv test new_test
# 移动到上一级目录
$ mv new_test ..
3.查找文件
find [path] [option] [action]
查找文件,常用形式为:
find -name filename
如:
# 查找当前目录中是否有test文件
$ find -name test
# 查找当前目录中是否存在test开头的文件
$ find -name 'test*'
locate [-ri] keyword
查找文件名中含有关键字的文件,是从数据库中进行查找,因此速度比find要快。
-r 后面可接正则表达式
-i 不区分大小写
使用locate查找时会先建索引,因此新建的数据无法查找到,除非重启或更新计算机。
压缩、解压文件
zip
gzip [-19d] filename
GNU zip简写,只能压缩文件,不能压缩文件夹,压缩之后的文件名为*.gz。
-1 表示快速压缩
-9 表示最佳状态压缩,数字表示压缩等级
-d 解压
如:
# 压缩后为test.txt.gz文件
$ gzip -6 test.txt
# 解压gz文件
$ gzip -d test.txt.gz
tar [-cvf] filename
打包/解压文件夹,gzip只能压缩文件,不能压缩文件夹,因此先需要tar命令将文件夹打包成文件,再用gzip命令
语法:tar [-cvf] (创建.tar文件、观看打包过程、指定压缩后的文件名,可以不加-)
-c 创建.tar文件
-v 观看打包过程
-f 指定压缩后的文件
-x 解压文件
-z
以下是常用的参数:
# 将文件夹mydir打包为.tar文件
tar cvf mydir.tar mydir
# 将tar文件解压
tar xvf mydir.tar
# 直接将文件打包压缩,相当于:$ tar cvf mydir.tar mydir;gzip -9 mydir.tar
tar zcvf mydir.tar.gz mydir
# 直接将文件解压,相当于:$ gzip -d mydir.tar.gz;tar xvf mydir.tar
tar zxvf mydir.tar.gz mydir
zip [-r] file.zip filename/dirname
压缩为.zip文件
-r 递归压缩文件夹
如:
# 将文件夹folder1和folder2压缩为all_info.zip文件
$ zip -r all_info.zip folder1 folder2
# 压缩文件
$ zip test.zip test.log
unzip filename.zip
解压zip文件,如:
$ unzip all_info.zip
rar [ax] filename[.rar]
解压rar文件,该命令需要手动安装:
$ sudo apt-get install rar
常用参数有:
x 解压文件
a 压缩文件为.rar文件
如:
# 将test2文件夹、test1.txt、test.txt压缩到myinfo.rar中
$ rar a myinfo test2/ test1.txt test.txt
# 解压myinfo.rar文件
$ rar x myinfo.rar