1. 文件管理
ls命令 – 显示指定工作目录下的内容及属性信息
ls 命令是Linux下最常用的指令之一。ls命令为英文单词 list 的缩写,正如英文单词 list 的意思,其功能是列出指定目录下的内容及其相关属性信息。
默认状态下,ls命令会列出当前目录的内容。而带上参数后,我们可以用ls做更多的事情。作为最基础同时又是使用频率很高的命令,我们很有必要搞清楚ls命令的用法,那么接下来一起看看吧!
语法格式: ls [选项] [文件]
常用参数:
-a | 显示所有文件及目录 (包括以“.”开头的隐藏文件) |
---|---|
-l | 使用长格式列出文件及目录信息 |
-r | 将文件以相反次序显示(默认依英文字母次序) |
-t | 根据最后的修改时间排序 |
-A | 同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录) |
-S | 根据文件大小排序 |
-R | 递归列出所有子目录 |
参考实例
列出所有文件(包括隐藏文件):
1 | ls -a |
列出文件的详细信息:
1 | ls -l |
列出根目录(/)下的所有目录:
1 | ls / |
列出当前工作目录下所有名称是 “s” 开头的文件 :
1 | ls -ltr s* |
列出 /bin 目录下的所有目录及文件的详细信息 :
1 | ls -lR /bin |
列出当前工作目录下所有文件及目录并以文件的大小进行排序 :
1 | ls -AS |
pwd命令 – 显示当前路径
pwd命令是“print working directory”中每个单词的首字母缩写,其功能正如所示单词一样,为打印工作目录,即显示当前工作目录的绝对路径。
在实际工作中,我们经常会在不同目录之间进行切换,为了防止“迷路”,我们可以使用pwd命令快速查看当前我们所在的目录路径。
语法格式: pwd [参数]
常用参数:
-L | 显示逻辑路径 |
---|---|
参考实例
查看当前工作目录路径:
1 | pwd |
mkdir命令 – 创建目录
mkdir命令是“make directories”的缩写,用来创建目录。
注意:默认状态下,如果要创建的目录已经存在,则提示已存在,而不会继续创建目录。 所以在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。 mkdir命令还可以同时创建多个目录,是不是很强大呢?
语法格式 : mkdir [参数] [目录]
常用参数:
-p | 递归创建多级目录 |
---|---|
-m | 建立目录的同时设置目录的权限 |
-z | 设置安全上下文 |
-v | 显示目录的创建过程 |
参考实例
在工作目录下,建立一个名为 dir 的子目录:
1 | mkdir dir |
在目录/usr/linuxcool下建立子目录dir,并且设置文件属主有读、写和执行权限,其他人无权访问
1 | mkdir -m 700 /usr/linuxcool/dir |
同时创建子目录dir1,dir2,dir3:
1 | mkdir dir1 dir2 dir3 |
递归创建目录:
1 | mkdir -p linuxcool/dir |
cp命令 – 复制文件或目录
cp命令可以理解为英文单词copy的缩写,其功能为复制文件或目录。
cp命令可以将多个文件复制到一个具体的文件名或一个已经存在的目录下,也可以同时复制多个文件到一个指定的目录中。
语法格式:cp [参数] [文件]
常用参数:
-f | 若目标文件已存在,则会直接覆盖原文件 |
---|---|
-i | 若目标文件已存在,则会询问是否覆盖 |
-p | 保留源文件或目录的所有属性 |
-r | 递归复制文件和目录 |
-d | 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录 |
-l | 对源文件建立硬连接,而非复制文件 |
-s | 对源文件建立符号连接,而非复制文件 |
-b | 覆盖已存在的文件目标前将目标文件备份 |
-v | 详细显示cp命令执行的操作过程 |
-a | 等价于“dpr”选项 |
参考实例
复制目录:
1 | cp -R dir1 dir2/ |
将文件test1改名为test2:
1 | cp -f test1 test2 |
复制多个文件:
1 | cp -r file1 file2 file3 dir |
交互式地将目录 /usr/linuxcool 中的所有.c文件复制到目录 dir 中
1 | cp -r /usr/linuxcool/*.c dir |
mv命令 – 移动或改名文件
mv命令是“move”单词的缩写,其功能大致和英文含义一样,可以移动文件或对其改名。
这是一个使用频率超高的文件管理命令,我们需要特别留意它与复制的区别:mv与cp的结果不同。mv命令好像文件“搬家”,文件名称发生改变,但个数并未增加。而cp命令是对文件进行复制操作,文件个数是有增加的。
语法格式:mv [参数]
常用参数:
-i | 若存在同名文件,则向用户询问是否覆盖 |
---|---|
-f | 覆盖已有文件时,不进行任何提示 |
-b | 当文件存在时,覆盖前为其创建一个备份 |
-u | 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作 |
参考实例
将文件file_1重命名为file_2:
1 | mv file_1 file_2 |
将文件file移动到目录dir中 :
1 | mv file /dir |
将目录dir1移动目录dir2中(前提是目录dir2已存在,若不存在则改名):
1 | mv /dir1 /dir2 |
将目录dir1下的文件移动到当前目录下:
1 | mv /dir1/* . |
2. 文档编辑
cat命令 – 在终端设备上显示文件内容
Linux系统中有很多个用于查看文件内容的命令,每个命令又都有自己的特点,比如这个cat命令就是用于查看内容较少的纯文本文件的。cat这个命令也很好记,因为cat在英语中是“猫”的意思,小猫咪是不是给您一种娇小、可爱的感觉呢?
注意:当文件内容较大时,文本内容会在屏幕上快速闪动(滚屏),用户往往看不清所显示的具体内容。因此对于较长文件内容可以按Ctrl+S键,停止滚屏;以及Ctrl+Q键可以恢复滚屏;而按Ctrl+C(中断)键则可以终止该命令的执行。或者对于大文件,干脆用more命令吧!
语法格式:cat [参数] [文件]
常用参数:
-n | 显示行数(空行也编号) |
---|---|
-s | 显示行数(多个空行算一个编号) |
-b | 显示行数(空行不编号) |
-E | 每行结束处显示$符号 |
-T | 将TAB字符显示为 ^I符号 |
-v | 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外 |
-e | 等价于”-vE”组合 |
-t | 等价于”-vT”组合 |
-A | 等价于 -vET组合 |
–help | 显示帮助信息 |
–version | 显示版本信息 |
参考实例
查看文件的内容:
1 | cat filename.txt |
查看文件的内容,并显示行数编号:
1 | cat -n filename.txt |
查看文件的内容,并添加行数编号后输出到另外一个文件中:
1 | cat -n linuxcool.log > linuxprobe.log |
清空文件的内容:
1 | cat /dev/null > /root/filename.txt |
持续写入文件内容,碰到EOF符后结束并保存:
1 | cat > filename.txt <<EOF |
将软盘设备制作成镜像文件:
1 | cat /dev/fd0 > fdisk.iso |
echo命令 – 输出字符串或提取Shell变量的值
echo命令用于在终端设备上输出字符串或变量提取后的值,这是在Linux系统中最常用的几个命令之一,但操作却非常简单。
人们一般使用在变量前加上$符号的方式提取出变量的值,例如:$PATH,然后再用echo命令予以输出。或者直接使用echo命令输出一段字符串到屏幕上,起到给用户提示的作用。
语法格式:echo [参数] [字符串]
常用参数:
-n | 不输出结尾的换行符 |
---|---|
-e “\a” | 发出警告音 |
-e “\b” | 删除前面的一个字符 |
-e “\c” | 结尾不加换行符 |
-e “\f” | 换行,光标扔停留在原来的坐标位置 |
-e “\n” | 换行,光标移至行首 |
-e “\r” | 光标移至行首,但不换行 |
-E | 禁止反斜杠转移,与-e参数功能相反 |
—version | 查看版本信息 |
–help | 查看帮助信息 |
参考实例
输出一段字符串:
1 | echo "LinuxCool.com" |
输出变量提取后的值:
1 | echo $PATH |
对内容进行转义,不让$符号的提取变量值功能生效:
1 | echo \$PATH |
结合输出重定向符,将字符串信息导入文件中:
1 | echo "It is a test" > linuxcool |
使用反引号符执行命令,并输出其结果到终端:
1 | echo `date` |
输出带有换行符的内容
1 | echo -e "a\nb\nc" |
输出信息中删除某个字符,注意看数字3消失了:
1 | echo -e "123\b456" |
rmdir命令 – 删除空目录
rmdir命令作用是删除空的目录,英文全称:“remove directory”。
注意:rmdir命令只能删除空目录。当要删除非空目录时,就要使用带有“-R”选项的rm命令。
rmdir命令的“-p”参数可以递归删除指定的多级目录,但是要求每个目录也必须是空目录。
语法格式 : rmdir [参数] [目录名称]
常用参数:
-p | 用递归的方式删除指定的目录路径中的所有父级目录,非空则报错 |
---|---|
– – ignore-fail-on-non-empty | 忽略由于删除非空目录时导致命令出错而产生的错误信息 |
-v | 显示命令的详细执行过程 |
– – help | 显示命令的帮助信息 |
– – version | 显示命令的版本信息 |
参考实例
删除空目录:
1 | rmdir dir |
递归删除指定的目录树:
1 | rmdir -p dir/dir_1/dir_2 |
显示指令详细执行过程:
1 | rmdir -v dir |
显示命令的版本信息:
1 | rmdir --version |
tail命令 – 查看文件尾部内容
tail用于显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。
语法格式:tail [参数]
常用参数:
–retry | 即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用 |
---|---|
-c |
输出文件尾部的N(N为整数)个字节内容 |
-f<name/descriptor> | –follow |
-F | 与选项“-follow=name”和“–retry”连用时功能相同 |
-n |
输出文件的尾部N(N位数字)行内容 |
–pid=<进程号> | 与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令 |
–help | 显示指令的帮助信息 |
–version | 显示指令的版本信息 |
参考实例
显示文件file的最后10行:
1 | tail file |
显示文件file的内容,从第20行至文件末尾:
1 | tail +20 file |
显示文件file的最后10个字符:
1 | tail -c 10 file |
一直变化的文件总是显示后10行:
1 | tail -f 10 file |
显示帮助信息:
1 | tail --help |
expr命令 – 命令行计数器
expr命令的英文全称是“expression”,即是表达式的意思,作用是一个命令行的计数器,常用于在UNIX/LINUX系统中求表达式变量的值,一般用于整数值,也可用于字符串。
语法格式:expr [表达式]
常用参数:
空格 | 隔开每个项 |
---|---|
\(反斜杠) | 放在 shell 特定的字符前面 |
“”(引号) | 对包含空格和其他特殊字符的字符串要用引号括起来 |
参考实例
计算字串长度:
1 | expr length “this is a test” |
抓取字串:
1 | expr substr “this is a test” 3 5 |
抓取第一个字符数字串出现的位置:
1 | expr index "sarasara" a |
整数运算:
1 | expr 14 % 9 |
注意:使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义
使用expr进行四则运算:
1 | expr \( 10 + 10 \) \* 2 + 100 |
3. 系统管理
uname命令 – 显示系统信息
uname命令的英文全称即“Unix name”。
用于显示系统相关信息,比如主机名、内核版本号、硬件架构等。
如果未指定任何选项,其效果相当于执行”uname -s”命令,即显示系统内核的名字。
语法格式:uname [参数]
常用参数:
-a | 显示系统所有相关信息 |
---|---|
-m | 显示计算机硬件架构 |
-n | 显示主机名称 |
-r | 显示内核发行版本号 |
-s | 显示内核名称 |
-v | 显示内核版本 |
-p | 显示主机处理器类型 |
-o | 显示操作系统名称 |
-i | 显示硬件平台 |
参考实例
显示系统主机名、内核版本号、CPU类型等信息:
1 | uname -a |
仅显示系统主机名:
1 | uname -n |
显示当前系统的内核版本 :
1 | uname -r |
显示当前系统的硬件架构:
1 | uname -i |
rsh命令 – 远端登入的shell
rsh命令的英文全称为“remote shell”,该命令提供的用户环境,也就是shell,以便指令能够在指定的远端主机上执行。
语法格式: rsh [参数]
常用参数:
-d | 使用Socket层级的排错功能 |
---|---|
-l | 指定要登入远端主机的用户名称 |
-n | 把输入的指令号向代号为/dev/null的特殊外围设备 |
参考实例
远程命令执行:
1 | rsh -l linuxcool 192.168.1.88 /bin/ls |
yes命令 – 重复打印字符串
yes命令的作用是中输出指定的字符串,直到yes进程被杀死。不带任何参数输的yes命令默认的字符串就是y。 终止yes命令可以使用组合键ctrl+c
yes命令通常在脚本中使用,在脚本中可以对对命令和程序的确认提示和问题进行管道输出并回答提问(例如:你确认要删除这个文件吗,按’y’ or ‘n’)。
语法格式: yes [字符串]
– -help | 显示帮助信息 |
---|---|
– -version | 显示命令版本信息 |
参考实例
重复打印一段字符:
1 | yes linuxcool |
useradd命令 – 创建用户
useradd命令用来创建新的用户或更改用户的信息。
useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
语法格式:useradd [参数] [用户名]
常用参数:
-D | 改变新建用户的预设值 |
---|---|
-c | 添加备注文字 |
-d | 新用户每次登陆时所使用的家目录 |
-e | 用户终止日期,日期的格式为YYYY-MM-DD |
-f | 用户过期几日后永久停权。当值为0时用户立即被停权,而值为-1时则关闭此功能,预设值为-1 |
-g | 指定用户对应的用户组 |
-G | 定义此用户为多个不同组的成员 |
-m | 用户目录不存在时则自动创建 |
-M | 不建立用户家目录,优先于/etc/login.defs文件设定 |
-n | 取消建立以用户名称为名的群组 |
-r | 建立系统帐号 |
-u | 指定用户id |
参考实例
添加新用户linuxcool:
1 | useradd linuxcool |
不创建家目录,并且禁止登陆:
1 | useradd -M -s /sbin/nologin linuxcool |
添加新用户linuxcool,指定UID为888,指定归属用户组为root,cool成员,其shell类型为/bin/sh:
1 | useradd -u 888 -s /bin/sh -G root,cool linuxcool |
添加新用户linuxcool,设置家目录为/tmp/linuxcool,用户过期时间为2019/05/01.过期后两天停权:
1 | useradd -e "2019/05/01" -f 2 -d /tmp/linuxcool linuxcool |
who命令 – 打印当前登录用户
who命令用来打印当前登录用户信息,包含了系统的启动时间 、 活动进程 、 使用者 ID、使用终端等信息,是系统管理员了解系统运行状态的常用命令。
who命令的输出信息默认来自文件“/var/log/utmp”和“/var/log/wtmp”。
语法格式: who [参数] [选项]
常用参数:
-a | 打印全面信息 |
---|---|
-b | 打印系统最近启动时间 |
-d | 打印死掉的进程 |
-l | 打印系统登录进程 |
-H | 带有列标题打印用户名,登录终端和登录时间 |
-t | 打印系统上次锁定时间 |
-u | 打印已登录用户列表 |
参考实例
打印用户登录信息(-H 带有列标题打印):
1 | who -H |
打印全部信息:
1 | who -H -a |
打印系统最近启动时间 :
1 | who -b |
打印系统登录进程:
1 | who -l |
4. 磁盘管理
df命令 – 显示磁盘空间使用情况
df命令的英文全称即“Disk Free”,顾名思义功能是用于显示系统上可使用的磁盘空间。默认显示单位为KB,建议使用“df -h”的参数组合,根据磁盘容量自动变换合适的单位,更利于阅读。
日常普遍用该命令可以查看磁盘被占用了多少空间、还剩多少空间等信息。
语法格式: df [参数] [指定文件]
常用参数:
-a | 显示所有系统文件 |
---|---|
-B <块大小> | 指定显示时的块大小 |
-h | 以容易阅读的方式显示 |
-H | 以1000字节为换算单位来显示 |
-i | 显示索引字节信息 |
-k | 指定块大小为1KB |
-l | 只显示本地文件系统 |
-t <文件系统类型> | 只显示指定类型的文件系统 |
-T | 输出时显示文件系统类型 |
– -sync | 在取得磁盘使用信息前,先执行sync命令 |
参考实例
显示磁盘分区使用情况:
1 | df |
以容易阅读的方式显示磁盘分区使用情况:
1 | df -h |
显示指定文件所在分区的磁盘使用情况:
1 | df /etc/dhcp |
显示文件类型为ext4的磁盘使用情况:
1 | df -t ext4 |
lsblk命令 – 查看系统的磁盘
lsblk命令的英文是“list block”,即用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。
lsblk命令包含在util-linux-ng包中,现在该包改名为util-linux。
语法格式:lsblk [参数]
常用参数:
-a | 显示所有设备 |
---|---|
-b | 以bytes方式显示设备大小 |
-d | 不显示 slaves 或 holders |
-D | print discard capabilities |
-e | 排除设备 |
-f | 显示文件系统信息 |
-h | 显示帮助信息 |
-i | use ascii characters only |
-m | 显示权限信息 |
-l | 使用列表格式显示 |
-n | 不显示标题 |
-o | 输出列 |
-P | 使用key=”value”格式显示 |
-r | 使用原始格式显示 |
-t | 显示拓扑结构信息 |
参考实例
lsblk命令默认情况下将以树状列出所有块设备:
1 | lsblk |
默认选项不会列出所有空设备:
1 | lsblk -a |
也可以用于列出一个特定设备的拥有关系,同时也可以列出组和模式:
1 | lsblk -m |
要获取SCSI设备的列表,你只能使用-S选项,该选项是用来以颠倒的顺序打印依赖的:
1 | lsblk -S |
例如,你也许想要以列表格式列出设备,而不是默认的树状格式。可以将两个不同的选项组合,以获得期望的输出:
1 | lsblk -nl |
fdisk命令 – 磁盘分区
fdisk命令的英文全称是“Partition table manipulator for Linux”,即作为磁盘的分区工具。进行硬盘分区从实质上说就是对硬盘的一种格式化, 用一个形象的比喻,分区就好比在一张白纸上画一个大方框,而格式化好比在方框里打上格子。
语法格式:fdisk [参数]
常用参数:
-b | 指定每个分区的大小 |
---|---|
-l | 列出指定的外围设备的分区表状况 |
-s | 将指定的分区大小输出到标准输出上,单位为区块 |
-u | 搭配”-l”参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址 |
-v | 显示版本信息 |
参考实例
查看所有分区情况:
1 | fdisk -l |
选择分区磁盘:
1 | fdisk /dev/sdb |
在当前磁盘上建立扩展分区:
1 | fdisk /ext |
不检查磁盘表面加快分区操作:
1 | fdisk /actok |
重建主引导记录:
1 | fdisk /cmbr |
quota命令 – 显示磁盘已使用的空间与限制
quota命令用于显示磁盘已使用的空间与限制。执行quota命令可查询磁盘空间的限制,并得知已使用多少空间。
语法参数:quota [参数]
常用参数:
-g | 列出群组的磁盘空间限制 |
---|---|
-q | 简明列表,只列出超过限制的部分 |
-u | 列出用户的磁盘空间限制 |
-v | 显示该用户或群组,在所有挂入系统的存储设备的空间限制 |
-V | 显示版本信息 |
参考实例
显示目前执行者(root )的 quota 值:
1 | quota -guvs |
显示 test 这个使用者的 quota 值:
1 | quota -uvs test |
arpd命令 – 收集arp信息
arpd命令是用来收集免费arp信息的一个守护进程,它将收集到的信息保存在磁盘上或者在需要时,提供给内核用户用于避免多余广播。
语法格式:arpd [参数]
参考实例
-l | 将arp数据库输出到标准输出设备显示并退出 |
---|---|
-f | 指定读取和加载arpd数据库的文本文件,文件的格式与“-l”输出信息类似 |
-b | 指定arpd数据库文件,默认的位置为“/var/lib/arpd.db |
-a | 指定目标被认为死掉前查询的次数 |
-k | 禁止通过内核发送广播查询 |
-n | 设定缓冲失效时间 |
常用参数:
启动arpd进程:
1 | arpd -b /var/tmp/arpd.db |
一段时间后看结果:
1 | killall arpd ; arpd -l -b /var/tmp/arpd.db |
启用内核帮助程序,将主要角色留给内核:
1 | arpd -b /var/tmp/arpd.db -a 1 eth0 eth1 |
完全替换接口eth0和eth1上的内核决议。 在这种情况下,内核仍会进行单播探测以验证条目,但所有广播活动都被抑制并在arpd的授权下进行:
1 | arpd -b /var/tmp/arpd.db -a 3 -k eth0 eth1 |
禁止内核发送广播查询 :
1 | arpd -k |
5. 文件传输
curl命令 – 文件传输工具
curl命令是一个利用URL规则在shell终端命令行下工作的文件传输工具;它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。
作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征;做网页处理流程和数据检索自动化。
语法格式:curl [参数] [网址]
常用参数:
-O | 把输出写到该文件中,保留远程文件的文件名 |
---|---|
-u | 通过服务端配置的用户名和密码授权访问 |
参考实例
将下载的数据写入到文件,必须使用文件的绝对地址:
1 | curl https://www.linuxcool.com/abc.txt --silent -O |
访问需要授权的页面时,可通过-u选项提供用户名和密码进行授权:
1 | curl -u root https://www.linuxprobe.com/ |
ftpwho命令 – 显示ftp会话信息
ftpwho命令用于显示当前所有以FTP登入的用户会话信息。
执行该命令可得知当前用FTP登入系统的用户有哪些人,以及他们正在进行的操作。
语法格式:ftpwho [参数]
常用参数:
-h | 显示帮助信息 |
---|---|
-v | 详细模式,输出更多信息 |
参考实例
查询当前正在登录FTP 服务器的用户:
1 | ftpwho |
fsck命令 – 检查并修复Linux文件系统
fsck命令的英文全称是“filesystem check”,即检查文件系统的意思,常用于检查并修复Linux文件系统的一些错误信息,操作文件系统需要先备份重要数据,以防丢失。
Linux fsck命令用于检查并修复Linux文件系统,可以同时检查一个或多个 Linux 文件系统;若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。
语法格式:fsck [参数] [文件系统]
常用参数:
-a | 自动修复文件系统,不询问任何问题 |
---|---|
-A | 依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统 |
-N | 不执行指令,仅列出实际执行会进行的动作 |
-P | 当搭配”-A”参数使用时,则会同时检查所有的文件系统 |
-r | 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式 |
-R | 当搭配”-A”参数使用时,则会略过/目录的文件系统不予检查 |
-t | 指定要检查的文件系统类型 |
-T | 执行fsck指令时,不显示标题信息 |
-V | 显示指令执行过程 |
参考实例
修复坏的分区文件系统:
1 | fsck -t ext3 -r /usr/local |
显示fsck系统安装的版本号:
1 | fsck --version |
ftpshut命令 – 指定时间关闭FTP服务器
ftpshut命令为系统管理者提供了在设置的时间关闭FTP服务器,且能在关闭之前发出警告信息通知用户的功能。
关闭时间若设置后为”none”,则会马上关闭服务器。如果采用”+30″的方式来设置表示服务器在30分钟之后关闭。依次类推,假设使用”1130″的格式则代表服务器会在每日的11时30分关闭,时间格式为24 小时制。FTP服务器关闭后,在/etc目录下会产生一个名称为shutmsg的文件,把它删除后即可再次启用FTP服务器。
语法格式:ftpshut [参数]
常用参数:
-d | 切断所有FTP连线时间 |
---|---|
-l | 停止接受FTP登入的时间 |
参考实例
在晚上11:00 关闭FTP服务器,并在关闭前5 分钟拒绝新的FTP登录,前3 分钟关闭所有ftp的链接,且给出警告信息 :
1 | ftpshut-d 3 -1 5 1100 "Server will be shutdown at 23:00:00" |
lprm命令 – 删除打印队列中的打印任务
lprm命令的英文全称是“Remove jobs from the print queue”,意为用于删除打印队列中的打印任务。尚未完成的打印机工作会被放在打印机贮列之中,这个命令可用来将未送到打印机的工作取消。
语法格式:lprm [参数] [任务编号]
常用参数:
-E | 与打印服务器连接时强制使用加密 |
---|---|
-P | 指定接受打印任务的目标打印机 |
-U | 指定可选的用户名 |
参考实例
将打印机hpprint中的第102号任务移除:
1 | lprm -Phpprint 102 |
将第101号任务由预设打印机中移除:
1 | lprm 101 |
6. 网络通讯
ping命令 – 测试主机间网络连通性
ping命令主要用来测试主机之间网络的连通性,也可以用于。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
不过值得我们注意的是:Linux系统下的ping命令与Windows系统下的ping命令稍有不同。Windows下运行ping命令一般会发出4个请求就结束运行该命令;而Linux下不会自动终止,此时需要我们按CTR+C终止或者使用-c参数为ping命令指定发送的请求数目。
语法格式:ping [参数] [目标主机]
常用参数:
-d | 使用Socket的SO_DEBUG功能 |
---|---|
-c | 指定发送报文的次数 |
-i | 指定收发信息的间隔时间 |
-I | 使用指定的网络接口送出数据包 |
-l | 设置在送出要求信息之前,先行发出的数据包 |
-n | 只输出数值 |
-p | 设置填满数据包的范本样式 |
-q | 不显示指令执行过程 |
-R | 记录路由过程 |
-s | 设置数据包的大小 |
-t | 设置存活数值TTL的大小 |
-v | 详细显示指令的执行过程 |
参考实例
检测与linuxcool网站的连通性:
1 | ping www.linuxcool.com |
连续ping4次:
1 | ping -c 4 www.linuxcool.com |
设置次数为4,时间间隔为3秒:
1 | ping -c 4 -i 3 www.linuxcool.com |
利用ping命令获取指定网站的IP地址:
1 | ping -c 1 linuxcool.com | grep from | cut -d " " -f 4 |
netstat命令 – 显示网络状态
netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
从整体上看,netstat的输出结果可以分为两个部分:一个是Active Internet connections,称为有源TCP连接,其中”Recv-Q”和”Send-Q”指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到;另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
语法格式:netstat [参数]
常用参数:
-a | 显示所有连线中的Socket |
---|---|
-p | 显示正在使用Socket的程序识别码和程序名称 |
-u | 显示UDP传输协议的连线状况 |
-i | 显示网络界面信息表单 |
-n | 直接使用IP地址,不通过域名服务器 |
参考实例
显示详细的网络状况:
1 | netstat -a |
显示当前户籍UDP连接状况:
1 | netstat -nu |
显示UDP端口号的使用情况:
1 | netstat -apu |
显示网卡列表:
1 | netstat -i |
显示组播组的关系:
1 | netstat -g |
ifconfig命令 – 显示或设置网络设备
ifconfig命令的英文全称是“network interfaces configuring”,即用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。
语法格式:ifconfig [参数]
常用参数:
add<地址> | 设置网络设备IPv6的IP地址 |
---|---|
del<地址> | 删除网络设备IPv6的IP地址 |
down | 关闭指定的网络设备 |
up | 启动指定的网络设备 |
IP地址 | 指定网络设备的IP地址 |
参考实例
显示网络设备信息:
1 | # ifconfig |
启动关闭指定网卡:
1 | # ifconfig eth0 down |
为网卡配置和删除IPv6地址:
1 | # ifconfig eth0 add 33ffe:3240:800:1005::2/64 |
用ifconfig修改MAC地址:
1 | # ifconfig eth0 down |
配置IP地址:
1 | # ifconfig eth0 192.168.1.56 |
ss命令 – 显示活动套接字信息
ss是Socket Statistics的缩写。ss命令用来显示处于活动状态的套接字信息。它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
语法格式:ss [参数]
常用参数:
-n | 不解析服务名称,已数字方式显示 |
---|---|
-a | 显示所有套接字 |
-l | 显示处于监听状态的套接字 |
-o | 显示计时器信息 |
-e | 显示详细的套接字信息 |
-m | 显示套接字的内存使用情况 |
-p | 显示使用套接字的进程 |
-i | 显示内部的TCP信息 |
-s | 显示套接字使用概况 |
-4 | 仅显示ipv4的套接字 |
-6 | 仅显示ipv6的套接字 |
-0 | 显示PACKET套接字 |
-t | 只显示TCP套接字 |
-u | 只显示UDP套接字 |
-d | 只显示DCCP套接字 |
-w | 只显示RAW套接字 |
-x | 只显示 Unix套接字 |
-D | 将原始TCP套接字信息转储到文件 |
参考实例
显示TCP套接字:
1 | # ss -t -a |
显示UDP套接字:
1 | # ss -u -a |
显示套接字使用概况:
1 | # ss -s |
ipcalc命令 – 简单的IP地址计算器
ipcalc命令的全称是:Calculate IP information for a host(计算主机的IP信息)
ipcalc命令是一个简单的ip地址计算器,可以完成简单的IP地址计算任务。
语法格式: ipcalc [参数] [IP地址]
常用参数:
-b | 由给定的IP地址和网络掩码计算出广播地址 |
---|---|
-h | 显示给定IP地址所对应的主机名 |
-m | 由给定的IP地址计算器网络掩码 |
-p | 显示给定的掩码或IP地址的前缀 |
-n | 由给定的IP地址和网络掩码计算网络地址 |
-s | 安静模式,不显示任何错误信息 |
–help | 显示帮助信息 |
参考实例
计算给定掩码的前缀 :
1 | # ipcalc -p 192.168.88.56 255.255.255.0 |
给定IP和网络掩码计算网络地址 :
1 | # ipcalc -n 192.168.88.56 255.255.255.0 |
给定IP显示对应的主机名:
1 | # ipcalc -h 223.5.5.5 |
使用多个参数计算给定IP的网络掩码,广播地址,网络地址:
1 | # ipcalc -m -b -n 119.29.29.29/28 |
7. 设备管理
mount命令 – 文件系统挂载
mount命令用于加载文件系统到指定的加载点。此命令的最常用于挂载cdrom,使我们可以访问cdrom中的数据,因为你将光盘插入cdrom中,Linux并不会自动挂载,必须使用Linux mount命令来手动完成挂载。
语法格式:mount [参数]
常用参数:
-t | 指定挂载类型 |
---|---|
-l | 显示已加载的文件系统列表 |
-h | 显示帮助信息并退出 |
-V | 显示程序版本 |
-n | 加载没有写入文件“/etc/mtab”中的文件系统 |
-r | 将文件系统加载为只读模式 |
-a | 加载文件“/etc/fstab”中描述的所有文件系统 |
参考实例
查看版本:
1 | # mount -V |
启动所有挂载:
1 | # mount -a |
挂载 /dev/cdrom 到 /mnt:
1 | # mount /dev/cdrom /mnt |
挂载nfs格式文件系统:
1 | # mount -t nfs /123 /mnt |
挂载第一块盘的第一个分区到/etc目录 :
1 | # mount -t ext4 -o loop,default /dev/sda1 /etc |
setleds命令 – 设定键盘上方三个 LED 的状态
setleds即是英文词组“set leds”的合并,翻译为中文就是设置LED灯。setleds命令用来设定键盘上方三个 LED 灯的状态。在 Linux 中,每一个虚拟主控台都有独立的设定。
这是一个十分神奇的命令,竟然可以通过命令来控制键盘的灯的状态。那么下面我一起来学习一下这个命令吧。
语法格式:setleds [参数]
常用参数:
-F | 设定虚拟主控台的状态 |
---|---|
-D | 改变虚拟主控台的状态和预设的状态 |
-L | 直接改变 LED 显示的状态 |
+num/-num | 将数字键打开或关闭 |
+caps/-caps | 把大小写键打开或关闭 |
+scroll /-scroll | 把选项键打开或关闭 |
参考实例
控制键盘灯num灯亮和灯灭:
1 | # setleds +num |
控制键盘的大小写键打开或关闭,键盘指示灯亮与灭:
1 | # setleds +caps |
控制键盘的选项键打开或关闭,键盘指示灯亮与灭:
1 | # setleds +scroll |
对三灯的亮与灭的情况进行组合,分别设置为数字灯亮,大小写灯灭,选项键scroll灯灭:
1 | # setleds +num -caps -scroll |
loadkeys命令 – 改变linux键盘驱动程序
loadkeys命令可以根据一个键盘定义表改变 linux 键盘驱动程序转译键盘输入过程。
语法格式:loadkeys [参数] [文件]
常用参数:
-v | 印出详细的资料,你可以重复以增加详细度 |
---|---|
-q | 不要显示任何讯息 |
-c | 清除所有 composite 定义 |
-s | 将定串定义表清除 |
参考实例
显示功能键:
1 | # loadkeys --funcs-only |
将定串定义表清除:
1 | # loadkeys -s |
清除所有 composite 定义:
1 | # loadkeys -c |
印出详细的资料,你可以重复以增加详细度:
1 | # loadkeys -v |
不要显示任何讯息:
1 | # loadkeys -q |
8. 备份压缩
gzip命令 – 压缩和解压文件
gzip命令的英文是“GNUzip”,是常用来压缩文件的工具,gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。
gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。
语法格式:gzip [参数]
常用参数:
-a | 使用ASCII文字模式 |
---|---|
-d | 解开压缩文件 |
-f | 强行压缩文件 |
-l | 列出压缩文件的相关信息 |
-c | 把压缩后的文件输出到标准输出设备,不去更动原始文件 |
-r | 递归处理,将指定目录下的所有文件及子目录一并处理 |
-q | 不显示警告信息 |
参考实例
把rancher-v2.2.0目录下的每个文件压缩成.gz文件:
1 | # gzip * |
把上例中每个压缩的文件解压,并列出详细的信息:
1 | # gzip -dv * |
递归地解压目录:
1 | # gzip -dr rancher.gz |
unzip命令 – 解压缩zip文件
unzip命令是用于.zip格式文件的解压缩工具 ,unzip命令将列出、测试或从zip格式存档中提取文件,这些文件通常位于MS-DOS系统上。
默认行为(就是没有选项)是从指定的ZIP存档中提取所有的文件到当前目录(及其下面的子目录)。一个配套程序zip(1L)创建ZIP存档;这两个程序都与PKWARE的PKZIP和PKUNZIP为MS-DOS创建的存档文件兼容,但许多情况下,程序选项或默认行为是不同的。
语法格式:unzip [参数] [文件]
常用参数:
-l | 显示压缩文件内所包含的文件 |
---|---|
-v | 执行时显示详细的信息 |
-c | 将解压缩的结果显示到屏幕上,并对字符做适当的转换 |
-n | 解压缩时不要覆盖原有的文件 |
-j | 不处理压缩文件中原有的目录路径 |
参考实例
把/home目录下面的mydata.zip解压到mydatabak目录里面:
1 | # unzip mydata.zip -d mydatabak |
把/home目录下面的wwwroot.zip直接解压到/home目录里面:
1 | # unzip wwwroot.zip |
把/home目录下面的abc12.zip、abc23.zip、abc34.zip同时解压到/home目录里面:
1 | # unzip abc\*.zip |
查看把/home目录下面的wwwroot.zip里面的内容:
1 | # unzip -v wwwroot.zip |
验证/home目录下面的wwwroot.zip是否完整:
1 | # unzip -t wwwroot.zip |
zip命令 – 压缩文件
zip程序将一个或多个压缩文件与有关文件的信息(名称、路径、日期、上次修改的时间、保护和检查信息以验证文件完整性)一起放入一个压缩存档中。可以使用一个命令将整个目录结构打包到zip存档中。
对于文本文件来说,压缩比为2:1和3:1是常见的。zip只有一种压缩方法(通缩),并且可以在不压缩的情况下存储文件。(如果添加了bzip 2支持,zip也可以使用bzip 2压缩,但这些条目需要一个合理的现代解压缩来解压缩。当选择bzip 2压缩时,它将通货紧缩替换为默认方法。)zip会自动为每个要压缩的文件选择更好的两个文件(通缩或存储,如果选择bzip2,则选择bzip2或Store)。
语法格式:zip [参数] [文件]
常用参数:
-q | 不显示指令执行过程 |
---|---|
-r | 递归处理,将指定目录下的所有文件和子目录一并处理 |
-z | 替压缩文件加上注释 |
-v | 显示指令执行过程或显示版本信息 |
-n<字尾字符串> | 不压缩具有特定字尾字符串的文件 |
参考实例
将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip:
1 | # zip -q -r html.zip /home/html |
压缩文件 cp.zip 中删除文件 a.c:
1 | # zip -dv cp.zip a.c |
把/home目录下面的mydata目录压缩为mydata.zip:
1 | # zip -r mydata.zip mydata |
把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip:
1 | # zip -r abc123.zip abc 123.txt |
将 logs目录打包成 log.zip:
1 | # zip -r log.zip ./logs |
bzip2命令 – bz2文件的压缩程序
Linux系统中bzip2命令的英文是“bunzip2”,即.bz2文件格式的压缩程序; bzip2命令系统默认是没有安装的,需要安装bzip2库才可以使用此命令。
bzip2命令采用新的压缩演算法,压缩效果比传统的LZ77/LZ78压缩演算法来得好。若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。
语法格式:bzip2 [参数] 文件系统
常用参数:
-c | 将压缩与解压缩的结果送到标准输出 |
---|---|
-d | 执行解压缩 |
-f | bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数 |
-k | bzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数 |
-s | 降低程序执行时内存的使用量 |
-t | 测试.bz2压缩文件的完整性 |
-v | 压缩或解压缩文件时,显示详细的信息 |
-z | 强制执行压缩 |
参考实例
压缩文件:
1 | # bzip2 a.txt |
检查文件完整性:
1 | # bzip2 -t a.txt.bz2 |
zipinfo命令 – 查看压缩文件信息
zipinfo命令的全称为“zip information”,该命令用于列出压缩文件信息。执行zipinfo指令可得知zip压缩文件的详细信息。
语法格式:zipinfo [参数]
常用参数:
-1 | 只列出文件名称 |
---|---|
-2 | 此参数的效果和指定”-1″参数类似,但可搭配”-h”,”-t”和”-z”参数使用 |
-h | 只列出压缩文件的文件名称 |
-l | 此参数的效果和指定”-m”参数类似,但会列出原始文件的大小而非每个文件的压缩率 |
-m | 此参数的效果和指定”-s”参数类似,但多会列出每个文件的压缩率 |
-M | 若信息内容超过一个画面,则采用类似more指令的方式列出信息 |
-s | 用类似执行”ls -l”指令的效果列出压缩文件内容 |
-t | 只列出压缩文件内所包含的文件数目,压缩前后的文件大小及压缩率 |
-T | 将压缩文件内每个文件的日期时间用年,月,日,时,分,秒的顺序列出 |
-v | 详细显示压缩文件内每一个文件的信息 |
-x<范本样式> | 不列出符合条件的文件的信息 |
-z | 如果压缩文件内含有注释,就将注释显示出来 |
参考实例
显示压缩文件信息:
1 | # zipinfo file.zip |
显示压缩文件中每个文件的信息:
1 | # zipinfo -v file.zip |
只显示压缩包大小、文件数目:
1 | # zipinfo -h file.zip |
生成一个基本的、长格式的列表(而不是冗长的),包括标题和总计行:
1 | # zipinfo -l file |
查看存档中最近修改的文件:
1 | # zipinfo -T file | sort –nr -k 7 | sed 15q |
9. 其他命令
bc命令 – 浮点运算
bc的英文全拼为“ Binary Calculator ”,是一种支持任意精度的交互执行的计算器语言。bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下。
语法格式:bc [选项]
常用参数:
-i | 强制进入交互式模式 |
---|---|
-l | 定义使用的标准数学库 |
-w | 定义使用的标准数学库 |
-q | 打印正常的GNU bc环境信息 |
参考实例
算术操作高级运算bc命令它可以执行浮点运算和一些高级函数:
1 | # echo "1.212*3" | bc |
设定小数精度(数值范围):
1 | # echo "scale=2;3/8" | bc |
计算平方和平方根:
1 | # echo "10^10" | bc |
rmmod命令 – 删除模块
rmmod即“remove module”的简称,rmmod命令用于删除模块。 执行rmmod命令,可删除不需要的模块。Linux操作系统的核心具有模块化的特性,因此在编译核心时,不需要吧全部功能都放入核心,可以将这些功能编译成一个个单独的模块,待有需要时再分别载入它们。
语法格式:rmmod [参数] [模块名称]
常用参数:
-a | 删除所有目前不需要的模块 |
---|---|
-s | 把信息输出至syslog常驻服务,而非终端机界面 |
-v | 显示指令执行的详细信息 |
-f | 强制移除模块,使用此选项比较危险 |
-w | 等待着,知道模块能够被除时再移除模块 |
参考实例
卸载模块pppoe并显示执行信息:
1 | # rmmod -v pppoe |
卸载bridge模块:
1 | # rmmod bridge |
卸载bridge模块并将错误信息写入syslog:
1 | # rmmod -s bridge |
孤立正在使用的bridge模块,知道不被使用:
1 | # rmmod -w bridge |
删除正在使用的bridge模块(-f可以删除正在使用的模块,非常危险,慎用):
1 | # rmmod -f bridge |
我在上面这个网站看到的常用Linux命令,所以拿出来方便自己学习和记忆。