一 新手必备Linux命令
1.1 shell
内核负责驱动硬件、管理活动和分配/管理硬件资源,由于其重要性不能被用户直接操作
"SHELL":"人与内核(硬件)的翻译官",用户输入命令,shell会调用相应程序服务秩序工作,目前Linux主流系统默认字符shell是Bash
1.2 执行命令与查看帮助
命令名称 [命令参数] [命令对象]
命令参数 分长格式(man --help)与短格式 (man -h)
命令对象 要处理的目标文件
1.3 常见的系统工作命令
1.3.1 echo 在终端打印字符串或变量
例:
[root@localhost ~]# echo "hello world" hello world
[root@localhost ~]# echo $SHELL /bin/bash
1.3.2 date 显示或设置系统时间或日期 date [参数] [+格式]
格式:
时间方面 | 日期方面 |
---|---|
% : 印出 % | %a : 星期几 (Sun..Sat) |
%n : 下一行 | %A : 星期几 (Sunday..Saturday) |
%t : 跳格 | %b : 月份 (Jan..Dec) |
%H : 小时(00..23) | %B : 月份 (January..December) |
%I : 小时(01..12) | %c : 直接显示日期与时间 |
%k : 小时(0..23) | %d : 日 (01..31) |
%l : 小时(1..12) | %D : 直接显示日期 (mm/dd/yy) |
%M : 分钟(00..59) | %h : 同 %b |
%p : 显示本地 AM 或 PM | %j : 一年中的第几天 (001..366) |
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M) | %m : 月份 (01..12) |
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数 | %U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形) |
%S : 秒(00..61) | %w : 一周中的第几天 (0..6) |
%T : 直接显示时间 (24 小时制) | %W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形) |
%X : 相当于 %H:%M:%S | %x : 直接显示日期 (mm/dd/yy) |
%Z : 显示时区 | %y : 年份的最后两位数字 (00.99) |
%Y : 完整年份 (0000..9999) |
参数:
- -d datestr : 显示 datestr 中所设定的时间 (非系统时间)
- --help : 显示辅助讯息
- -s datestr : 将系统时间设为 datestr 中所设定的时间
- -u : 显示目前的格林威治时间
- --version : 显示版本编号
例:
[root@localhost ~]# date "+%x" 2019年08月26日
[root@localhost ~]# date -u 2019年 08月 26日 星期一 09:19:16 UTC
1.3.3 wget 下载网络文件 wget [参数] [网络地址]
下载单个文件 wget URL
wget -O下载并以不同的文件名保存
wget默认会以最后一个符合”/”的后面的字符来命令,对于动态链接的下载通常文件名会不正确。
wget -O name URL
wget –limit -rate限速下载 wget –limit-rate=300k URL
wget -c断点续传
wget -b后台下载
代理名称下载
wget –user-agent=”Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16″ URL
wget –spider测试下载链接
wget -i下载多个文件 wget -i file
wget -Q限制总下载文件大小
wget -r -A下载指定格式文件
1.3.4 ps 查看系统进程
参数 | 作用 |
---|---|
-a | 显示所有用户进程 |
-u | 显示当前用户进程 |
-x | 显示没有控制终端的进程 |
Linux系统中5种常见进程状态,分为
- R(运行)
- S(中断)
- D(不可中断)
- Z(僵死)
- T(停止)
1.3.5 top 动态监测进程活动与系统负载等信息
1.4 系统状态监测命令
1.4.1 ifconfig 获取网卡配置与网络状态等信息
1.4.2 uname 查看系统内核与系统版本信息 uname [-a]
1.4.3 update 查看系统负载信息
1.4.4 free显示当前系统内存使用情况 free -m/g/h
1.4.5 who 查看当前登入主机用户终端信息
1.4.6 last 用于查看所有系统的登录信息
1.4.7 history 显示历史执行过的命令
history -c 清除历史
默认记录1000条命令记录,可在/etc/profile中修改HISTSIZE变量值
1.5 工作目录切换命令
1.5.1 pwd 显示所处工作目录
1.5.2 cd 工作路径切换
参数 | 作用 |
---|---|
~ | 切换至家目录 |
- | 切换至上次所在目录 |
.. | 切换至上级目录 |
~username | 切换至指定用户家目录 |
1.5.3 ls 显示目录文件信息 ls [选项] [目录]
参数 | 作用 |
---|---|
-a | 显示全部文件 |
-d | 仅看目录本身 |
-h | 易读文件容量 |
-l | 显示文件详细信息 |
- 查看文件详情:ls -l 或 ll
- 增强对文件大小易读性,以人类可读的形式显示文件大小: ls -lh
- 查看当前目录下的所有文件或者目录,包括隐藏文件: ls -la
- 只查看当前目录: ls -ld
1.6 文本文件编辑命令
1.6.1 cat 查看纯文本文件(较短的) cat [参数] [文件]
参数 | 作用 |
---|---|
-n | 显示行号 |
-b | 显示行号(不包括空行) |
-A | 显示出不可见符号,如空格,tab键 |
1.6.2 more 查看纯文本(较长的) more [参数] [文件]
参数 | 作用 |
---|---|
-数字 | 预先显示行数(默认显示为一页) |
-d | 显示提示语句与报错信息 |
1.6.3 head 查看纯文本前N行 head [参数] [文件]
参数 | 作用 |
---|---|
-n 数字 | 显示指定行数 |
-n-数字 | 正常输出(如cat),但不显是指定尾行 |
1.6.4 tail 查看后N行, tail [参数] [文件]
参数 | |
---|---|
-n 数字 | 显示指定后N行 |
-f | 持续刷新显示内容 |
1.6.5 od 查看特殊格式文件 od [参数] [文件]
1.6.6 tr 转换或删除文本文件中的字符
1.6.6 wc统计文本行数、字数、字节数 wc [参数] [文本]
参数 | 作用 |
---|---|
-l | 只显示行数 |
-w | 只显示单词数 |
-c | 只显示字节数 |
1.6.7 cut提取文本字符 cut [参数] [文本]
参数 | 作用 |
---|---|
-d 分隔符 | 指定分隔符 |
-f | 指定列 |
-c | 单位字符 |
1.6.8 diff 比较文本差异 dif [参数] [文件]
参数 | 命令 |
---|---|
-b | 忽略空格差异 |
-B | 忽略空行差异 |
--brief或-q | 报告是否存在差异 |
-c | 使用上下文输出格式 |
1.7 文件目录管理命令
1.7.1 touch 创建空白文件与修改文件时间 touch [选项] [文件]
参数 | 作用 |
---|---|
-a | 修改访问时间 |
-m | 修改更改时间 |
-d | 同时修改访问与修改时间 |
-t | 要修改成的时间 |
1.7.2 mkdir 创建空白文件夹 mkdir [选项] [目录]
参数 | 作用 |
---|---|
-m | 指定权限 |
-p | 创建多层目录 |
-v | 显示创建过程 |
1.7.3 cp 复制文件或目录 cp [选项] 源文件 目标文件
参数 | 作用 |
---|---|
-p | 保留源文件属性 |
-d | 若对象为链接文件,则保留链接属性 |
-r | 递归复制(用于目录) |
-i | 询问覆盖 |
-a | 相当于-pdr |
1.7.4 mv 移动文件或修改名称 mv [选项 i/f] [源文件或目录] [目标文件或目录]
1.7.5 rm 删除文件或者目录
参数 | 作用 |
---|---|
-f | 忽略警告信息 |
-i | 删除询问 |
-r | 删除文件夹 |
1.7.6 dd 指定大小的拷贝文件或指定转换文件
1.8 用户和组管理命令
1.8.1 useradd 创建新用户 useradd [选项] 用户名
参数 | 作用 |
---|---|
-d | 指定用户家目录(默认/home/username) |
-D | 展示默认值 |
-e | 账号有效期,YYYY-MM-DD |
-g | 指定初始用户组 |
-G | 指定一个或多个拓展用户组 |
-N | 不创建与用户用户同名的用户组 |
-s | 指定默认shell |
-u | 指定用户UID |
1.8.1.1 id 查看用户信息
1.8.2 passwd 修改用户密码 pass [选项] [用户名]
修改当前用户 passwd
修改其他用户 passwd 用户名
参数 | 作用 |
---|---|
-l | 锁定用户禁止登陆 |
-u | 解除锁定 |
--stdin | 允许从标准输入修改用户密码,如(echo "newpasswd" | passwd --stdin username) |
-d | 是账号无密码 |
-e | 强制用户下次登陆时修改密码 |
-S | 显示用户密码状态 |
1.8.3 userdel 删除用户 userdel [参数] username
参数 | 作用 |
---|---|
-f | 强制删除,家目录及相关文件 |
-r | 同时删除,家目录及相关文件 |
1.8.4 usermod 修改用户属性 usermod [参数] username
1.9 打包压缩文件命令
1.9.1 tar 命令用于对文件打包压缩或解压 tar [参数] [文件]
打包并压缩文件 tar -czvf 压缩包.tar.gz 文件名
解压并展开压缩包 tar -xzvf 压缩包.tar.gz
参数 | 作用 |
---|---|
-c | 创建压缩文件 |
-x | 解压缩文件 |
-t | 查看压缩包内文件 |
-z | 用Gzip压缩或解压 |
-j | 用bzip2压缩或解压 |
-v | 显示压缩或解压过程 |
-f | 目标文件名 |
-p | 保留原始权限与属性 |
-P | 使用绝对路径压缩 |
-C | 指定解压到目录 |
1.10 文件搜索命令
1.10.1 grep 对文本进行搜索 grep [参数] [文件]
搜索关键词 grep 关键词 文件
作用 | |
---|---|
-b | 将可执行文件当做文本搜索 |
-c | 仅显示找到次数 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择 |
1.10.2 find 查找文件 find [查找路径] [条件] [操作]
作用 | |
---|---|
-name | 匹配名称 |
-perm | 匹配权限 |
-user | 匹配所有者 |
-group | 匹配组 |
-mtime -n +n | 匹配修改时间(-n指那天以内,+n指n天以前) |
-atiem -n +n | 匹配访问时间 |
-ctime -n +n | 匹配修改权限时间 |
-nouser | 匹配无所有者文件 |
-nogroup | 匹配无所有组文件 |
-newer f1 !f2 | 匹配比文件f1新比f2旧的文件 |
-type b/d/c/p/l/f | 匹配文件类型 |
--size | 匹配文件大小 |
-prune | 忽略某个目录 |
--exec{} ; | 后面可接对搜索结果进一步处理的命令 |
二 管道符、重定向与环境变量
2.1 管道命令符
“|” 将前一个命令的标准输出当做后一个命令的标准输入 命令1|命令2
root@localhost ~]# grep -n "长" 1 | wc -l 2
2.2 输入输出与重定向
2.2.1 输入输出
标准输入(STDIN,文件描述符为0):默认键盘输入,为0时表示从其他文件或命令输出
标准输出(STDOUT,文件描述符为1):默认输出到屏幕,为1时表示是文件
错误输出(STDERR,文件描述符为2):默认输出到屏幕,为2时表示文件
2.2.2 输入输出重定向符的情况
输出重定向:
符号 | 作用 |
---|---|
命令 > 文件 | 标准输出重定向到一个文件中(清空原有文件数据) |
命令 2> 文件 | 将错误输出重定向到一个文件中(清空原有文件数据) |
命令 >> 文件 | 标准输出重定向到一个文件中(追加到原有文件数据) |
命令 2>> 文件 | 将错误输出重定向到一个文件中(追加到原有文件数据) |
命令 >> 文件 2>&1 | 将标准输出与错误输出共同写入到文件中(追加) |
输入重定向:
作用 | |
---|---|
命令 < 文件 | 将文件作为命令的标准输入 |
命令 << 分界符 | 从标准输入中读入,直到遇见‘’分界符‘’停止 |
命令 < 文件 1 > 文件 2 | 将文件1作为命令的标准输入并将标准输出到文件2 |
2.3 命令行通配符
2.3.1 常见文本通配符
含义 | |
---|---|
* | 匹配0个或多个字符 |
? | 匹配任意单个字符 |
[0-9] | 匹配范围内数字 |
[abc] | 匹配给出的字符 |
2.3.2 特殊字符
作用 | |
---|---|
(反斜杠) | 转义单个字符 |
'' (单引号) | 转义所以字符 |
"" (双引号) | 变量依然生效 |
`` (反引号) | 执行命令语句 |
2.4 实用PATH变量
2.4.1 alias 设置命令别名 alias 别名=命令 /unalias 取消别名 unalias 别名
2.4.2 echo $PATH 查看path变量
2.4.3 PATH=$PATH:变量路径
2.5 重要的环境变量
变量名 | 作用 |
---|---|
HOME | 用户主目录 |
SHELL | 当前的shell |
HISTSIZE | 历史命令记录条数 |
邮件邮箱文件 | |
LANG | 语系数据 |
RANDOM | 随机数字 |
PS1 | bash 提示符 |
HISTFILESIZE | history命令存储数量 |
PATH | 在路径中目录查找执行文件 |
EDITOR | 默认文本编辑器 |
2.5.1 export 将局部命令提升为全局变量
export 变量名