ls命令为list的缩写。通过ls命令可以查看Linux文件夹中包含的文件及其文件权限(包括目录、文件夹、文件权限)、目录信息等等。
ls [选项] [目录/文件]
选项:
本章后继提及的命令均可以通过下列几个通用选项参数查看命令相关信息。
--help 查看该命令的帮助文档
--version 显示版本信息。
实例:
按大小反序显示文件详细信息
ls -lrS
列出当前目录中所有以"s"开头的目录的详细内容
ls -l t*
ls -l命令也可以直接使用 ll 命令查看,效果相同。
cd命令用于实现目录跳转。
cd [目录名]
实例:
1:进入根目录
cd /
2:入 "home" 目录
cd ~
3:把上个命令的参数作为cd参数使用
cd !$
4:进入上一次工作路径
cd -
5:返回上一级目录
cd ..
除了上述命令外也可使用绝对路径与相对路径访问对应的目录文件。
pwd命令用于查看当前工作目录路径。
实例:
1:查看当前路径
pwd
2:查看当前目录的绝对路径 (注意大写P)
pwd -P
mkdir命令用于创建文件夹。
mkdir [选项] [参数]
选项:
实例:
1:当前工作目录下创建名为 csc 的文件夹。
mkdir csc
2:在 tmp 目录下创建路径为 user/csc 的目录,若不存在,则创建。
mkdir -p /tmp/user/csc
3: 当前工作目录下创建名为 w3cschool 的文件夹,并设置只有文件主拥有读、写和执行权限,其他人无权访问。
mkdir -m 700 w3cschool
删除一个目录中的一个或多个文件或目录。
如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
rm [选项] [文件]
选项:
实例:
1:删除任何.log格式的文件,-i 删除前逐一提醒确认操作。
rm -i *.log
2:删除csc目录中的子目录及子目录中所有的档案。
rm -r csc
3:删除csc目录中的子目录及子目录中所有的档案,并且不用逐一确认。
rm -rf csc
4:删除以 -r 开头的文件(下列用法可避免-r被识别为选项,同理可应用于其他场景)
rm -- -r*
从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限。
注意:不能删除非空目录
rmdir [选项] [目录]
选项:
实例:
1:当 parent 子目录被删除后使它也成为空目录的话,则顺便一并删除:
rmdir -p parent/child/boy
mv命令使用方法比较特殊。
1:将源文件名改为目标文件名(改名)
mv [文件名] [文件名]
2:将文件移动到目标目录(移动文件)
mv [文件名] [目录名]
3:目标目录已存在,将源目录移动到目标目录,目标目录不存在则改名。(移动目录或者改名)
mv [目录名] [目录名]
实例:
1:将文件 test.log 重命名为 test1.txt
mv test.log test1.txt
2:将文件 log1.txt,log2.txt,log3.txt 移动到根的 test3 目录中
mv log1.txt log2.txt log3.txt /test3
3:将文件 file1 改名为 file2,如果 file2 已经存在,则询问是否覆盖
mv -i file1.txt file2.txt
4:移动当前文件夹下的所有文件到上一级目录
mv * ../
将源文件复制至目标文件,或将多个源文件复制至目标目录。
注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在 shell 脚本中,如果不加 -i 参数,则不会提示,而是直接覆盖!
cp [选项] [参数]
选项:
实例:
1:复制 a.txt 到 test 目录下,保持原文件时间,如果原文件存在提示是否覆盖。
cp -ai a.txt test
2:为 a.txt 建议一个链接(快捷方式)
cp -s a.txt link_a.txt
显示磁盘空间使用情况。
获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。
默认情况下,磁盘空间将以 1KB 为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示。
df [选项] [参数]
选项:
实例:
1:显示文件系统的磁盘使用情况统计数据:
df
第一列指文件系统的名称;第二列指该文件系统的总内存(以1K为单位);第三列为已用内存;第四列为可用内存;第五列为内存已使用量百分比;最后一栏指该文件系统的挂载点(所在目录)。
2:查看总量统计信息
df --total
注意最后一行出现了一条总量统计信息。
3:显示所有磁盘空间占用情况
df -h
可见原先以K为单位的计量变为了更易读的G、M、K单位。
4:将 /etc 底下的可用的磁盘容量以易读的容量格式显示
df -h /etc
du命令用于显示目录或文件的大小。
du会显示指定的目录或文件所占用的磁盘空间。
du [选项] [文件或目录名称]
选项:
实例:
1:只列出当前目录下所有文件夹容量(包含隐藏文件夹):
du
显示所有目录占用空间,包括以 . 开头的隐藏文件,最后一行显示该目录总的空间占用量。
2:检测根目录下每个目录占用容量(以G/M/K显示容量)。
du -smh /*
fdisk用于创建和维护分区表,它兼容DOS类型的分区表、BSD或者SUN类型的磁盘列表。
fdisk [必要参数][选择参数]
必要参数:
选择参数:
菜单操作选项:
实例:
1:列出所有分区信息
fdisk -l
2:找出你系统中的根目录所在磁盘,并查阅该硬盘内的相关信息(组合使用,注意图片中的细节提示)
通过输入m,可以查看菜单命令介绍。(上方也有罗列介绍)
如果要退出可以输入 q,则退出并不保存应用。反之如果输入 w 则退出且保存并应用操作。(注意别用错了~)
chgrp命令用于变更文件或目录的所属群组。
Linux系统中,文件或目录权限的掌控由拥有者及所属群组来管理。
可以使用chgrp指令去变更文件与目录的所属群组,参数以群组名称或群组识别码皆可。
chgrp [选项] [属组名] [文件名]
选项:
实例:
1:改变文件的群组属性,将csc文件由root组改为bin组。(可通过ll命令查看文件属性)
chgrp -v bin csc
2:根据指定文件改变文件的群组属性(将w3cschool目录的所属组改为跟csc目录一致)
chgrp --reference=csc w3cschool
chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件以空格分开的要改变权限的文件列表,支持通配符。
一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限把自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。
chown [选项] [user][:[group]] [文件]
选项:
参数:
实例:
1:将文件 csc 的属主设置为 boy,属组设置为 bin :
chown boy:bin csc
Linux的文件调用权限分为三级 : 属主、属组、其他访问者。chmod 可以调整文件的访问权限。
chmod [选项] [文件]
主要选项:
[ugoa...][[+-=][rwxX]...][,通过逗号隔开可设置多组权限...]
其他选项:
实例:
1:chmod也可以使用数字来表示权限。
chmod 777 csc
777三位数分别表示属主、属组、及其他人的权限。
其中 r = 4, w = 2, x = 1。三种权限均开启则r+w+x=7。
2:将csc目录设置为所有人都可写入。
chmod ugo+w csc
可以发现ugo+r与a+r实现的效果是一样的。
3:将csc与w3cschool目录的写入权限设置为,属主与属组均有权限,其他人不可写入。
chmod ug+w,o-w csc w3cschool
cat命令主要用来查看文件内容,创建文件,文件合并,追加文件内容等功能。
cat [选项] [文件]
选项:
-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends:在每行结束处显示 $。
-T 或 --show-tabs:将 TAB 字符显示为 ^I。
-A 或 --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
实例:
1:【创建文件用法】使用cat命令创建test1.txt文件,并写入内容
cat test1.txt<
上述命令使用后即可开始输入内容,最后另启一行,使用EOF结束。
EOF为结束字符,可以更改为其他字符,但是注意大小写,且结束输入必须依靠该字符。
2:【查看文件】查看test1.txt的内容,并带上行号
cat -n test1.txt
3:【追加文件】将 test1.txt 的内容加上行号写入 a1.txt 中,覆盖原来的内容,文件不存在则创建它。
cat -n test1.txt>a1.txt
cat -n test1.txt>a1.txt 中的 > 为覆盖原来的内容
cat -n test1.txt>>a1.txt 中的 >> 为不覆盖原来的内容
more 命令类似 cat ,不过会以分页的形式显示,更方便使用者逐页阅读。
而最基本的指令就是按空白键(space)就往下一页显示;
按 b 键就会往回(back)一页显示;
使用中的说明文件,请按 h 。
more [选项] [文件]
选项:
常用操作命令:
实例:
1:显示文件中从第2行起的内容。(可以使用cat命令将a1.txt多写入一些内容)
more +2 a1.txt
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
less [选项] [文件]
选项:
实例:
1:查看文件(按 q 可以退出less操作)
less a1.txt
2:ps查看进程信息并通过less分页显示
ps -ef |less
head 用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行。
选项:
实例:
1:显示 a1.txt 文件中前 20 行
head a1.txt -n 2
tail 命令可用于查看文件的内容,通过-f选项可以用于查阅正在变动的日志文件。
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。
tail [选项] [文件]
选项:
实例:
1:该命令会一直刷新test.log的内容,直到按下快捷键(Ctrl+C)中止命令。
tail -f test.log
which命令用于查找文件。
which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
which [选项] [文件]
选项:
实例:
通过which命令查看bash的绝对路径。
which bash
find命令用来在指定目录下查找文件。
任何位于参数之前的字符串都将被视为欲查找的目录名。
如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
find path -option [ -print ] [ -exec -ok |xargs |grep ] [command {} \;]
参数说明:
path:要查找的目录路径。
print:表示将结果输出到标准输出。
exec:对匹配的文件执行该参数所给出的shell命令。 ( 形式为command {} \;,注意{}与\;之间有空格 )
ok:与exec作用相同。(区别在于,在执行命令之前,都会给出提示,让用户确认是否执行)
|xargs:与exec作用相同 ,起承接作用。(区别在于 |xargs 主要用于承接删除操作 ,而 -exec 都可用 如复制、移动、重命名等)
options :表示查找方式。
options选项:
-name filename: 查找名为filename的文件
-perm :按执行权限来查找
-user username:按文件属主来查找
-group groupname:按组来查找
-mtime -n +n :按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n :按文件访问时间来查找文件,-n指n天以内,+n指n天以前
-ctime -n +n :按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup :查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser :查无有效属主的文件,即文件的属主在/etc/passwd中不存
-type b/d/c/p/l/f:查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] :查长度为n块[或n字节]的文件
-mount :查文件时不跨越文件系统mount点
-follow :如果遇到符号链接文件,就跟踪链接所指的文件
-prune :忽略某个目录
实例:
1:按文件名查找。
find ~ -name '*.txt' -print
2:在当前目录及子目录中查找不是a1开头的txt文件
find . -name "a1*" -prune -o -name "*.txt" -print
3:在当前目录除csc之外的子目录内搜索 txt文件
find . -path "./csc" -prune -o -name "*.txt" -print
ln 命令非常重要,它的功能是为某一个文件在另外一个位置建立一个同步的链接(类似于快捷方式)。
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用 ln 命令链接(link)它就可以,不必重复的占用磁盘空间。
ln [选项] [源文件/目录] [目标文件/目录]
选项:
软链接:不可以删除源文件,删除源文件导致链接文件找不到,出现文件红色闪烁
硬链接:可以删除源文件,链接文件可以正常打开
- 1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
- 2.软链接可以 跨文件系统 ,硬链接不可以
- 3.软链接可以对一个不存在的文件名进行链接
- 4.软链接可以对目录进行链接
- 1.硬链接,以文件副本的形式存在。但不占用实际空间。
- 2.不允许给目录创建硬链接
- 3.硬链接只有在同一个文件系统中才能创建
实例:
1:对文件创建软连接
ln -s php.txt linkphp
2:对文件创建硬连接
ln php.txt lnphp
grep 命令用于查找文件里符合条件的字符串。
grep [选项] [规则] [目录/文件]
常用选项:
grep的规则表达式:
实例:
1:在当前目录中查找后缀包含txt并且其中包含World字符串的文件,并且打印出文件中对应行的内容。(查找条件注意大小写区分)
grep World *txt
2:在当前目录中查找并显示包含 H 或者 C 字符的内容行
grep -E 'H|C' a1.txt
date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记。
date [选项] [+格式]
或
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
选项:
格式:
时间部分:
日期部分:
若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数。
当不需要增加多余的0(例如2020/01/01...),则可以在标记中插入 - 符号,例如 date '+%-H:%-M:%-S',则会获得2020/1/1...
当使用root身份更改系统时间,需要配合clock -w 命令将系统时间写入CMOS中,这样下次重新开机时才会保持正确值。
实例:
1:显示当前时间
cal用于显示公历(阳历)日历。
cal [选项] [参数]
选项:
参数:
如果一个参数,则表示年份。 两个参数,则表示月份与年份。
实例:
1:显示制定年月日期
cal 12 2019
2:将星期一作为第一列,显示前中后三个月。
cal -3m
ps命令用于显示当前进程 (process) 的状态。
ps [options]
选项:
ps 工具标识进程的5种状态码:
实例:
1:显示当前所有进程
ps -A
2:与grep联用查找某进程
ps -aux | grep bash
kill命令用于删除执行中的程序或工作。
kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。
若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
参数:
PID可以通过ps命令查看
实例:
1:杀死进程
kill 123
2:强制杀死进程
kill -KILL 123
3:彻底杀死进程
kill -9 123
free命令用于显示内存状态。
free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
free [选项] [-s <间隔秒数>]
选项:
实例:
1:显示内存使用情况
free
yum是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包。
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令。
yum [选项] [要进行的操作] [操作对象]
yum常用命令:
清除缓存命令:
实例:
1:安装 pam-devel
yum install pam-devel