Linux中的路径只能使用/,不能使用 或\。
cd 切换目录
cd / 切换到系统根目录,cd即change dir
cd /bin 切换到根目录下的bin目录
cd .. 切换过到当前目录的上一级目录,可以用..,也可以用../
cd ./bin 切换到当前目录下的bin目录,.表示当前目录
cd ~ 切换到当前用户的根目录,比如我的用户名是chy => /home/chy
cd - 切换到上一个目录,是上一个,不是上一级,类似于历史记录中的上一个,很多终端的-都表示上一个
Linux只有一个盘符,只有一个根目录/,没有切换盘符的说法。
新建、删除目录
mkdir resource 在当前目录下新建resource目录,mkdir resource/img,如果resource不存在,会报错
mkdir -p resource/img 如果前面的目录不存在,会自动创建
rmdir resource 删除当前目录下的resource目录,resource目录要是空的才能被删除(空的子目录都不能有),否则会报错
rm -r test 递归删除test目录(如果test下面有子文件、子目录,会递归删除)
pwd 显示当前路径
列出子文件、子文件夹
ls 默认不会列出隐藏的,ls即list,可选参数:
- -a 列出所有的(包括隐藏的),a即all,隐藏的文件|目录以.开头。
- -l 列出详细信息,文件尺寸只有数值,没有单位,默认字节Byte
- -h 友好显示,文件尺寸带有单位K、M等,方便阅读。
不指定文件|文件夹,默认列出当前目录的。
ls -l /home/chy 指定文件|目录后,只列出该文件|目录的信息,不会列出子文件、子目录。
显示子孙文件夹的大小
du /home/chy 显示指定目录下子孙文件、目录的尺寸。如果目标路径是文件,则显示该文件的尺寸。默认数值不带单位。
- 可选参数:-h 友好显示,带单位
- 缺省目标路径时,默认为当前路径
ls 可列出详细信息,du只列出尺寸。
文件的新建、删除
touch 1.txt 在当前目录下新建文件
touch doucument/1.txt 在当期目录下的document目录下新建文件1.txt,如果document目录不存在,会报错
rm 1.txt 删除当前目录下的1.txt
查看文件内容
cat document/1.txt 一次性列出文件的所有内容
cat -n 1.txt 使用-n可显示行号
head -n 5 1.txt 只列出前5行
head -5 1.txt 可简写
tail -n 5 1.txt 只列出最后5行
tail -5 1.txt 可简写
more 1.txt 一页一页地显示,浏览过程中可用的键:
- 空格键 往下翻一页
- Enter 显示下一行的内容
- :f 显示当前行号、文件名(前面有冒号)
- q 不再显示该文件内容,即quit,退出文档内容显示
- /字符串 往下搜索指定的字符串,直接跳到匹配的页面
less 1.txt 也是一页一页地显示,但比more功能更多,浏览过程中可用的键:
- 空格键或PageDown 往下翻一页
- PageUp 向上翻一页
- Enter 显示下一行的内容
- :f 显示当前页面的详细信息,比如行号区间、字节数、字符数占比等
- q 不再显示该文件内容,即quit,退出文档内容显示
- /字符串 往下搜索指定的字符串,直接跳到匹配的页面
- ?字符串 往上搜索指定的字符串,直接跳到匹配的页面
与more相比,less多了往上的功能。
grep 查找文件内容
grep image 1.txt 列出1.txt中含有字符串“image”的行,并将“image”高亮显示(红色)
wget 从网上下载文件
wget https://www.runoob.com/wp-content/uploads/2014/06/363003_1227493859FdXT.png
wget即web get,会自动保存到当前目录
cp 文件|目录的复制
cp document/1.txt 1.txt 复制,源路径、目标路径,只能复制文件,不能复制目录
cp document/1.txt /home/chy 复制到指定的目录下。如果都是目录,那就是指定目标目录名了。
cp 1.txt 2.txt 可更改目标文件名
cp document/1.txt ../ 复制到上一层目录中
如果要复制目录,需加参数-r(递归复制):
cp -r document test 可指定目标目录名,此处指定为test
cp -r document/1 test/1
如果存在同名的目标文件|目录,默认直接覆盖,可使用-i指定存在同名目标文件|目录时要先询问是否覆盖:
cp -i document/1.txt 1.txt
Y|y是覆盖,N|n是不覆盖
mv 文件|目录的剪切
mv document/1.txt 2.txt 可指定目标文件名
mv document/1.txt 1 如果目标是目录,会剪切到该目录下
mv 1.txt 2.txt 如果都是文件|目录,且都在同一目录下,即重命名,将1.txt重命名为2.txt
mv 1 2 将目录1重命名为2
剪切目录时会递归剪切所有的子文件、子目录,不需要加参数。
如果存在同名的目标文件|目录,默认直接覆盖,可用-i指定先询问:
mv -i document/1.txt 1.txt 存在相同的目标文件|目录时,先询问是否覆盖
tar 文件|目录的打包|解开
tar -cvf 1.tar 1.txt 将1.txt打包为1.tar,
tar -cvf document.tar document 打包目录
tar -zcvf document.tar.gz document 打包并压缩
tar -xzvf document.tar.gz 解开,会解压到终端当前使用的目录下(不是.tar.gz所在目录下)
tar -xzvf apache-tomcat-7.0.100.tar.gz -C /root 参数-C可指定解压到哪个目录下
-c是创建新的tar文件,-v是显示运行过程的信息,-f是指定文件名
-x解开,
-z是压缩、解压时过滤归档,压缩、解压都要添加此参数。
参数可以合并写,比如 tar -c -v -f 可以写成 tar -cvf
输出重定向
默认输出是输出到控制台,比如cat 、ls这些命令都是将结果输出到控制台的。
>、>>可以将输出重定向到文件,不将结果输出到控制台,而是输出到文件中。
ls > 1.txt 如果文件不存在,会先创建再写入。如果文件已存在,会覆盖原有内容。
ls > document/1.txt 文件不存在会自动创建,但路径中的目录不存在,会报错。
cat 1.txt > 2.txt
ls >> 1.txt >>和>差不多,不同的是:>会覆盖文件的原有内容,>>是追加。
>、>>的前面只能是一个命令,不能是普通字符串。