linux基础
一 新手必备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 变量名
浙公网安备 33010602011771号