二、Linux开发常用命令

常用的系统工作命令

echo命令

echo命令用于在终端输出字符串或变量提取后的值,格式为“echo [字符串 | $变量]”。

使用$变量的方式提取变量SHELL的值,并将其输出到屏幕上:

1
2
echo $SHELL
输出: /bin/bash

reboot命令

reboot命令用于重启系统

语法格式: reboot [参数]

由于重启计算机这种操作会涉及硬件资源的管理权限,因此默认只能使用root管理员来重启。

常用参数:

-n 在重开机前不做将记忆体资料写回硬盘的动作 帮助
-w 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
-d 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
-f 强迫重开机,不呼叫 shutdown 这个指令
-i 在重开机之前先把所有网络相关的装置先停止

poweroff命令

poweroff命令用于关闭系统

语法格式:poweroff [参数]

该命令与reboot命令相同,都会涉及硬件资源的管理权限,因此默认只有root管理员才可以关闭电脑。

常用参数:

-n 关闭操作系统时不执行sync操作
-w 不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中
-d 关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录
-f 强制关闭操作系统
-i 关闭操作系统之前关闭所有的网络接口
-h 关闭操作系统之前将系统中所有的硬件设置为备用模式

ps命令

ps命令用于查看系统中的进程状态,

语法格式:ps [参数]

该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

常用参数:

-a 显示所有终端机下执行的程序,除了阶段作业领导者之外
a 显示现行终端机下的所有程序,包括其他用户的程序
-A 显示所有程序
-c 显示CLS和PRI栏位
c 列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示
-C <指令名称> 指定执行指令的名称,并列出该指令的程序的状况
-d 显示所有程序,但不包括阶段作业领导者的程序
-e 此选项的效果和指定”A”选项相同
e 列出程序时,显示每个程序所使用的环境变量
-f 显示UID,PPIP,C与STIME栏位
f 用ASCII字符显示树状结构,表达程序间的相互关系
-g <群组名称> 此选项的效果和指定”-G”选项相同,当亦能使用阶段作业领导者的名称来指定
g 显示现行终端机下的所有程序,包括群组领导者的程序

kill命令

kill命令用于终止某个指定PID的服务进程。

语法格式:kill [参数] [进程号]

常用参数:

-l 列出系统支持的信号
-s 指定向进程发送的信号
-a 处理当前进程时不限制命令名和进程号的对应关系
-p 指定kill命令只打印相关进程的进程号,而不发送任何信号

killall命令

killall命令用于终止某个指定名称的服务所对应的全部进程,

语法格式:“killall [参数] [进程名称]”。

系统状态检测命令

ifconfig命令

ifconfig命令用于获取网卡配置与网络状态等信息,

格式为“ifconfig [网络设备] [参数]”。

uname命令

uname命令用于查看系统内核与系统版本等信息,

语法格式:uname [参数]

常用参数:

-a 显示系统所有相关信息
-m 显示计算机硬件架构
-n 显示主机名称
-r 显示内核发行版本号
-s 显示内核名称
-v 显示内核版本
-p 显示主机处理器类型
-o 显示操作系统名称
-i 显示硬件平台

在使用uname命令时,一般会固定搭配上-a参数来完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息。

工作目录切换命令

pwd命令

pwd命令用于显示用户当前所处的工作目录,

语法格式: pwd [参数]

常用参数:

-L 显示逻辑路径

cd命令

语法格式:cd [参数] [目录名]

cd命令用于切换工作路径,格式为“cd [目录名称]”。是最常用的一个Linux命令之一。

可以通过cd命令迅速、灵活地切换到不同的工作目录。

除了常见的切换目录方式:

可以使用“cd -”命令返回到上一次所处的目录,

使用“cd..”命令进入上级目录,

使用“cd ~”命令切换到当前用户的家目录,

使用“cd ~username”切换到其他用户的家目录。

常用参数:

-P 如果切换的目标目录是一个符号链接,则直接切换到符号链接指向的目标目录
-L 如果切换的目标目录是一个符号链接,则直接切换到符号链接名所在的目录
仅使用”-“选项时,当前目录将被切换到环境变量”OLDPWD”对应值的目录
~ 切换至当前用户目录
.. 切换至当前目录位置的上一级目录

ls命令

ls命令用于显示指定工作目录下的内容及属性信息。

语法格式: ls [选项] [文件]

常用参数:

-a 显示所有文件及目录 (包括以“.”开头的隐藏文件)
-l 使用长格式列出文件及目录信息
-r 将文件以相反次序显示(默认依英文字母次序)
-t 根据最后的修改时间排序
-A 同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录)
-S 根据文件大小排序
-R 递归列出所有子目录

文本文件编辑命令

cat命令

cat命令用于查看纯文本文件(内容较少的)。

**语法格式:**“cat [选项] [文件]”

注意:当文件内容较大时,文本内容会在屏幕上快速闪动(滚屏),用户往往看不清所显示的具体内容。因此对于较长文件内容可以按Ctrl+S键,停止滚屏;以及Ctrl+Q键可以恢复滚屏;而按Ctrl+C(中断)键则可以终止该命令的执行。

常用参数:

-n 显示行数(空行也编号)
-s 显示行数(多个空行算一个编号)
-b 显示行数(空行不编号)
-E 每行结束处显示$符号
-T 将TAB字符显示为 ^I符号
-v 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
-e 等价于”-vE”组合
-t 等价于”-vT”组合
-A 等价于 -vET组合
–help 显示帮助信息
–version 显示版本信息

more命令 – 显示文本文件内容

more命令用于将内容较长的文本文件内容(不能在一屏显示完)进行分屏显示,并且支持在显示时定位关键字。而对于内容较少的文本文件内容则推荐使用cat命令查看。

语法格式:more [参数] [文件]

常用参数:

-num 指定每屏显示的行数
-l more在通常情况下把 ^L 当作特殊字符, 遇到这个字符就会暂停,-l选项可以阻止这种特性
-f 计算实际的行数,而非自动换行的行数
-p 先清除屏幕再显示文本文件的剩余内容
-c 与-p相似,不滚屏,先显示内容再清除旧内容
-s 多个空行压缩成一行显示
-u 禁止下划线
+/pattern 在每个文档显示前搜寻该字(pattern),然后从该字串之后开始显示
+num 从第 num 行开始显示

head命令

head命令以行为单位,取文件的内容,后面不接参数时默认打印前10行。

语法格式:head [参数] [文件]

常用参数:

-n 后面接数字,代表显示几行的意思
-c 指定显示头部内容的字符数
-v 总是显示文件名的头信息
-q 不显示文件名的头信息

文件目录管理命令

touch命令

touch命令用于创建空白文件或设置文件的时间;

语法格式:touch [参数] [文件]

常用参数:

-a 改变档案的读取时间记录
-m 改变档案的修改时间记录
-r 使用参考档的时间记录,与 –file 的效果一样
-c 不创建新文件
-d 设定时间与日期,可以使用各种不同的格式
-t 设定档案的时间记录,格式与 date 命令相同
–no-create 不创建新文件
–help 显示帮助信息
–version 列出版本讯息

mkdir命令

mkdir命令用于创建空白的目录;

语法格式 : mkdir [参数] [目录]

常用参数:

-p 递归创建多级目录
-m 建立目录的同时设置目录的权限
-z 设置安全上下文
-v 显示目录的创建过程

在工作目录下,建立一个名为 dir 的子目录:

1
[root@linuxcool ~]# mkdir dir

在目录/usr/linuxcool下建立子目录dir,并且设置文件属主有读、写和执行权限,其他人无权访问

1
[root@linuxcool ~]# mkdir -m 700 /usr/linuxcool/dir

cp命令

cp命令可以将多个文件复制到一个具体的文件名或一个已经存在的目录下,也可以同时复制多个文件到一个指定的目录中。

语法格式:cp [参数] [文件]

常用参数:

-f 若目标文件已存在,则会直接覆盖原文件
-i 若目标文件已存在,则会询问是否覆盖
-p 保留源文件或目录的所有属性
-r 递归复制文件和目录
-d 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
-l 对源文件建立硬连接,而非复制文件
-s 对源文件建立符号连接,而非复制文件
-b 覆盖已存在的文件目标前将目标文件备份
-v 详细显示cp命令执行的操作过程
-a 等价于“dpr”选项

例如: 交互式地将目录 /usr/linuxcool 中的所有.c文件复制到目录 dir 中:

1
[root@linuxcool ~]# cp -r /usr/linuxcool/*.c dir

mv命令

mv命令用于剪切文件或将文件重命名,mv与cp的结果不同。mv命令好像文件“搬家”,文件名称发生改变,但个数并未增加。而cp命令是对文件进行复制操作,文件个数是有增加的。

语法格式:mv [参数]

常用参数:

-i 若存在同名文件,则向用户询问是否覆盖
-f 覆盖已有文件时,不进行任何提示
-b 当文件存在时,覆盖前为其创建一个备份
-u 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作

rm命令

rm命令用于删除文件或目录,格式为“rm [选项]文件”。

语法格式:rm [参数] [文件]

常用参数:

-f 忽略不存在的文件,不会出现警告信息
-i 删除前会询问用户是否操作
-r/R 递归删除
-v 显示指令的详细执行过程

直接删除,不会有任何提示:

1
[root@linuxcool ~]# rm -f test.txt.bz2  

递归删除目录及目录下所有文件:

1
2
[root@linuxcool ~]# mkdir /data/log
[root@linuxcool ~]# rm -rf /data/log

删除当前目录下所有文件:

1
[root@linuxcool ~]# rm -rf *

打包压缩与搜索命令

tar命令

tar命令用于对文件进行打包压缩或解压,

语法格式:tar [参数] [文件或目录]

常用参数:

-A 新增文件到以存在的备份文件
-B 设置区块大小
-c 建立新的备份文件
-C <目录> 切换工作目录,先进入指定目录再执行压缩/解压缩操作,可用于仅压缩特定目录里的内容或解压缩到特定目录
-d 记录文件的差别
-x 从归档文件中提取文件
-t 列出备份文件的内容
-z 通过gzip指令压缩/解压缩文件,文件名最好为*.tar.gz
-Z 通过compress指令处理备份文件
-f<备份文件> 指定备份文件
-v 显示指令执行过程
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-j 通过bzip2指令压缩/解压缩文件,文件名最好为*.tar.bz2
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-w 确认压缩文件的正确性
-p 保留原来的文件权限与属性
-P 使用文件名的绝对路径,不移除文件名称前的“/”号
-N <日期格式> 只将较指定日期更新的文件保存到备份文件里
– -exclude=<范本样式> 排除符合范本样式的文件
– -remove-files 归档/压缩之后删除源文件

把指定的文件进行打包压缩:

1
tar-czvf压缩包名称.tar.gz要打包的目录

解压命令为:

1
tar -xzvf压缩包名称.tar.gz

grep命令

强大的文本搜索工具,grep命令的选项用于对搜索过程的补充,而其命令的模式十分灵活,可以是变量、字符串、正则表达式。

需要注意的是:一当模式中包含了空格,务必要用双引号将其引起来。

语法格式: grep [参数]

常用参数:

-i 搜索时,忽略大小写
-c 只输出匹配行的数量
-l 只列出符合匹配的文件名,不列出具体的匹配行
-n 列出所有的匹配行,显示行号
-h 查询多文件时不显示文件名
-s 不显示不存在、没有匹配文本的错误信息
-v 显示不包含匹配文本的所有行
-w 匹配整词
-x 匹配整行
-r 递归搜索
-q 禁止输出任何结果,已退出状态表示搜索是否成功
-b 打印匹配行距文件头部的偏移量,以字节为单位
-o 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位

用户身份与文件权限

sudo 切换用户执行身份命令

sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码。

语法格式:sudo [参数]

常用参数:

-v 因为 sudo 在第一次执行时或是在 N分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过N分钟,也会问密码
-k 强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
-b 将要执行的指令放在背景执行
-p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称,%h 会显示主机名称
-s 执行环境变数中的SHELL 所指定的shell ,或是 /etc/passwd 里所指定的 shell
command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令

adduser 添加用户命令

该命令用于新增使用者帐号或更新预设的使用者资料。adduser 与 useradd 指令为同一指令(经由符号连结 symbolic link)

语法格式:adduser [参数]

常用参数:

-c 加上备注文件,备注文字会存储在 passwd 的备注参数中
-d 指定用户登录时的起始目录
-D 变更默认值
-e 设定此帐号的使用期限(格式为 YYYY-MM-DD),预设值为永久有效
-f <缓冲天数> 指定在密码过期后多少天即关闭该帐号
-g <群组> 指定用户所属的群组
-G <群组> 指定用户所属的附加群组
-m 自动建立用户的登入目录
-M 不要自动建立用户的登入目录
-n 取消建立以用户名称为名的群组
-r 建立系统帐号
-s 指定用户登入后所使用的shell
-u 指定用户ID

deluser 删除用户命令

deluser命令用于删除用户。将一个用户从一个组中删除(即退出用户组)

语法格式:deluser [参数]

常用参数:

–remove-all-files 删除用户拥有的所有文件
–remove-home 删除用户的主目录和邮件后台处理程序
–backup-to 目标目录进行备份
–system 只有系统用户才能删除

su 切换用户命令

su命令用于切换当前用户身份到指定用户或者以指定用户的身份执行命令或程序。

普通用户切换到root用户,可以使用su – 或su root,但是必须输入root密码才能完成切换。root用户切换到普通用户,可以使用su username,不需要输入任何密码即可完成切换。

语法格式: su [选项] [用户名]

常用参数:

-c或–command 执行完指定的指令后,即恢复原来的身份
-f或–fast 适用于csh与tsch,使shell不用去读取启动文件
-l或–login 改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname,此外,也会变更PATH变量
-m,-p或–preserve-environment 变更身份时,不要变更环境变量
-s或–shell 指定要执行的shell
–help 显示帮助信息
–version 显示版本信息

切换到linuxcool用户,并改变为linuxcool用户环境变量:

1
[root@linuxcool ~]# su - linuxcool