1.文件基本管理
#)新建文件
touch file file1…
#)新建目录
mkdir dir 新建目录(空目录)
mkdir -p dir 新建递归目录 -p=path
hello是一个递归型目录
#)删除文件
rm -f file1 file2 file3… -f=force 强制删除
file、file1已经被删除且在垃圾箱中也不存在,说明rm 命令是不可恢复的彻底删除命令
#)删除目录
rm -fr dir -f=force -r=recursive 递归删除
在删除目录的时候必须加 -r 参数,否则不能删除
#)复制文件
cp file dest ##复制单个文件
cp file file2 file2 dir ##复制多个文件到指定目录
#)复制目录
cp -r sourcedir1 sourcedir2 dest ##复制源目录到指定目录
#)移动文件
mv file file1 相当于重命名
mv file dir 移动文件
mv /etc/passwd . 此命令中的"."代表当前目录
我们可以看到,在将/etc/passwd文件复制到桌面上,执行mv passwd hello命令后,passwd文件消失,而hello中的内容则为原passwd文件的内容,相当于对passwd进行了重命名。
#)文件查看
cat file #显示文件中的所有内容
-n file #显示文件内容并在每行前加入行号
-b file #显示文件内容并在每行前加入行号但是不包括空格
我们可以看到,相比较 -n参数,-b参数在空行前没有标注行号
less file #分页浏览命令
上|下 file #逐行查看
pgup|pgdn file #主页查看
/关键字 file #搜索文件中的关键字并高亮表示,"n"向下匹配一个关键字, "N"向上匹配一个关键字
注意:less查看完成后,需要q(quit)/Ctrl+c进行退出
head file #默认显示文件前10行
head -n 3 file #显示file前3行
tail file #默认显示文件后10行
tail -n 3 file #显示file后3行
#)文件修改
1.图形工具 gedit file
2.vim vim file
#)文件统计
wc file ## 行数,单词数,字节数
-l file ##行数
-w file ##字数
-m file ##字符数
-c file ##字节数 ,统计一个文件的大小
-L file ##最长行的字节数
2.文件路径
1.相对路径
相对于当前系统文件位置,文件名称的简写,此名称前会自动添加"pwd"命令的的输出,相对路径文件名称前不会出现"/";
2.绝对路径
文件在系统中的真实位置,在任何情况下都可以使用,绝对路径一定以"/"开头。
3.几个特殊目录
. ##表示此层目录
.. ##表示上一层目录
~ ##当前用户家目录
~usename ##指定用户家目录
- ##表示前一个工作目录
~+ ##当前目录
~- ##当前目录之前所在的目录
4.linux的系统结构及目录分类
linux是一个倒树形结构顶级目录,"/"根目录
"/"下的二级目录有:
/bin ##系统常规命令
/boot ##系统启动目录
/dev ##设备影射文件
/etc ##系统配置文件
/home ##普通用户家目录
/lib ##32位函数库
/lib46 ##64位函数库
/media ##光盘临时挂载
/mnt ##手动临时挂载
/run ##自动临时挂载
/opt ##第三方软件安装位置
/proc ##系统进程信息和硬件位置
/root ##超级用户家目录
/sbin ##系统管理命令
/srv ##系统数据
/sys ##内核相关调试
/tmp ##临时文件
/usr ##用户相关设定
/var ##系统数据
5.关于系统路径的命令
pwd 显示当前路径
ls dir 显示路径信息
ls -l ; file ##显示目标文件属性
ls -l -d dir ##显示目录本身属性
ls -R dir ##递归显示目录中的所有内容
ls -a ##显示所有文件包括以"."开头的隐藏文件
ls -ad .* ##显示所有隐藏文件
5.切换
cd ##进入当前用户家目录 ..表示当前目录的上一级
cd /mnt ##进入mnt目录
cd .. ##退回进入当前目录的上级目录
cd - ##当前目录和进入当前目录的目录切换
3.文件批处理
* ##匹配0~任意字符
? ##匹配单个字符 ""批量抓转义
[[:alpha:]] ##匹配单个字母
[[:lower:]] ##匹配单个小写字符
[[:upper:]] ##匹配单个大写字符
[[:digit:]] ##匹配单个数字
[[:alnum:]] ##匹配单个数字或字母
[[:punct:]] ##匹配单个符号
[[:space:]] ##匹配单个空格
##[[:space:]][[:space:]] 匹配两个空格
{} ##精确匹配
{1..5}
{a..c} ##A&B&C
{1,2,3}
[] ##模糊匹配
[a-c] ##a|b|c,不能精确匹配目标
[1-3]
[!a-c] ##不是a,b,c中的某一个
[^a-c] ##不是a,b,c中的某一个
例如,要将/etc 下的所有文件名中带有数字并且以 .conf结尾的所有文件复制到桌面上,我们可以精确匹配:
4.输入输出管理
1.输出重定向
> ##重定向正确输出
2> ##重定向错误输出
&> ##重定向所有输出
“注意”:重定向动作会覆盖源文件内容
(执行下方命令使我们在/etc下寻找文件名为passwd 的文件)
使用重定向命令,将正确的输出重定向到文件file 中,我们可以看到file中有两条正确的输出,而在shell中只存在错误的输出:
同理,可以使用 2> 将错误的内容重定向到file.err文件中,则此时shell中只能看见正确的输出:
也可以使用 &> 将所有输出重定向到file.all文件中,此时shell中不能看见输出,file.all文件中包含所有的输出:
2.输出追加
“追加会把定向的输出放到源文件最后不会覆盖源文件”
>> ##重定向追加正确输出
2>> ##重定向追加错误输出
&>> ##重定向追加所有输出
我们可以看到,使用 >>后,在原来file 中内容后面多了两行相同的内容,这说明正确的输出被追加到file的后面,file 原本的内容并没有被覆盖,则使用 2>>、&>>同理:
3.输入管理
"<<EOF
内容
EOF"
4.管道
| ##把第一条命令的正确输出变成第二条命令的输入,则执行完毕后只显示错误输出与第二条命令的输出
2>&1 ##将编号为2的错误输出转换成编号为1
例如:
5.命令行技巧
history #显示历史#
history -c ##临时清楚当前环境中的历史,内存中内容未清除,若要显示则需(重开shell)
上|下 ##逐行翻阅历史
!数字 ##调用指定行数的历史
!字母 ##调用以此字母开头的最近一条命令
ctrl+(关键字) ##调用含有此关键字的最近一行命令