一、前言
Linux是一个开源、免费的操作系统内核,同时也是基于该内核构建的完整的操作系统的通称。Linux通常与GNU项目结合使用,比如shell。Shell是计算机操作系统中用户与内核交互的接口。它的功能是接收用户输入的命令或脚本,将其翻译成系统能理解的指令,并执行对应的操作。bash是shell中的一种类型,是Linux系统中最常用的命令行shell。
二、bash常用命令
1.基本命令
cd
*打开目录
cd..
*回到上层目录
pwd
*查看所在路径
2.查询命令
1)locate 命令参数 文件/目录
常见的命令参数:
-c 输出找到数量
-d dbpath 使用dbpath指定使用的数据库,默认的数据库是/var/lib/mlocate/mlocate.db
-i 忽略大小写
-q 不会显示任何错误讯息
-e 只显示当前存在的文档条
*locate命令直接通过搜索一个数据库来查询,速度快。但存在更新问题:可能查不到刚刚建立的文件或查到已经删除的文件。因此,使用这个命令之前需要先进行更新:
updatedb 命令参数
常用参数:
-o<文件> 忽略默认的数据库文件,使用指定的slocate数据库文件
-u<目录> 更新指定目录的slocate数据库
-v 显示执行的详细过程
*updatedb必须以root权限才能执行,普通用户必须在命令前加sudo来提升权限以执行。
示例:
touch newFile
sudo updatedb
locate newFile
2)which 命令
*用于查询并显示给定命令的绝对路径
whereis 命令参数 文件名
*用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。
常用的命令参数:
-b:只查找二进制文件;
-B<目录>:只在设置的目录下查找二进制文件;
-m:只查找说明文件;
-M<目录>:只在设置的目录下查找说明文件;
-s:只查找原始代码文件;
-S<目录>只在设置的目录下查找原始代码文件;
示例:
which pwd
whereis pwd
3)find 查找目录 查找参数 查找内容
-amin<+|-分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-atime<+|-24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-cmin<+|-分钟>:查找在指定时间之时被更改过的文件或目录;
-ctime<+|-24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
-mmin<+|-分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
-mtime<+|-24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
-depth:从指定目录下最深层的子目录开始查找;
-exec<执行指令>:假设find指令的回传值为True,就执行该指令;
-follow:排除符号连接;
-gid<群组识别码>:查找符合指定群组识别码的文件或目录;
-group<群组名称>:查找符合指定群组名称的文件或目录;
-uid<用户识别码>:查找符合指定的用户识别码的文件或目录;
-user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;
-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
-inum<inode编号>:查找符合指定的inode编号的文件或目录;
-newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-size<+|-|=文件大小>:查找符合指定的文件大小的文件;
-type<文件类型>:只寻找符合指定的文件类型的文件;
-a:是前后条件都要满足;
-o :是满足一个条件就好;
*find命令需要使用root权限,普通用户在指令前加sudo
3.文件的管理
1)文件的创建/删除
touch 文件名
*创建文件
rm 参数 文件名
*删除文件
常见参数:
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;-i:删除已有文件或目录之前先询问用户。
示例:
touch newFile1 newFile2
rm newFile1 newFile2
2)文件复制/重命名
cp 参数 源文件 目的目录
*将一个或多个源文件复制到指定的目的目录下。常见的参数:
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-p:保留源文件或目录的属性
mv 参数 目录名
* 移动文件。常用的参数:
-f:若目标文件与现有的文件重复,则直接覆盖现有的文件;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
mv 文件名 新文件名
*重命名文件
示例:
touch file1 file2 file3 file4 file5
mkdir dir
cp file1 file2 dir
cp file1 dir/file1Cpy
mv file3 file4
mv file5 file6
3)文件的查看
cat 参数 文件名
*查看文件。常用参数:
-n 或 --number:由1开始对所有输出的行数编号;
-b 或 --number-nonblank:和-n相似,只不过对于空白行不编号。
head 参数 文件名
*从文件开头显示内容,默认显示前十行。常用参数:
-n number:显示文件的前number行内容;
tail 参数 文件名
*从文件结尾显示内容,其他同上。
示例:
cat /etc/passwd
head -n 8 /etc/passwd
tail -n 6 /etc/passwd
4.目录的管理
1)创建/删除目录
mkdir 参数 目录名
*创建目录。常用的参数:
-p或--parents:若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录。
rmdir 参数 目录名
*删除空目录。常见参数:
-p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;
rm -r 目录名
*删除非空目录
示例:
mkdir newDir1 newDir2
mkdir -p newDir3/newDir4
rmdir newDir1 newDir2
rmdir -p newDir3/newDir4
2)复制/重命名目录
cp 参数 源目录 目的目录
*复制目录。常见参数:
-r 是递归把源目录下的目录递归进行移动;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-p:保留源文件或目录的属性;
mv 参数 源目录 目的目录
*移动目录。常用参数:
-f:若目标目录与现有的目录重复,则直接合并现有的目录;
-i:交互式操作,覆盖前先行询问用户,如果源目录与目标目录同名,则询问用户是否合并目标目录。用户输入”y”,表示将合并目标目录;输入”n”,表示取消对源目录的移动。这样可以避免误将目录覆盖。
mv 目录名 新命令名
*重命名
示例:
mkdir dir1 dir2 dir dir3 dir4 dir5
cp -r dir1 dir2 dir
mv dir3 dir4 dir
mv dir5 dir6
3)查看目录内容
ls 参数 目录
*查看一个目录下的内容。常用参数:
-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);
-A:显示除影藏文件“.”和“..”以外的所有文件列表;
-l:列出内容的详细信息;
-r:以文件名反序排列并输出目录内容列表;
-s:显示文件和目录的大小,以区块为单位;
-i:显示文件索引节点号(inode)。一个索引节点代表一个文件;
-R:递归处理,将指定目录下的所有文件及子目录一并处理。
示例:
ls -la /mnt