Linux 基础命令
目录操作
ls 查看文件夹
-l:表示以列表的形式进行显示
-h: 表示以较高可读性的形式进行展示
-a:表示显示所有文件和文件夹包含隐藏文件/文件夹
示例: ls -lha /root //显示root文件夹下所有的文件和文件夹
pwd 打印当前所在目录
cd 切换工作目录
示例: cd /usr/local/ //切换到/usr/local/目录
mkdir 创建目录
-p : 递归创建路径上的所有目录
示例 : mkdir /root/a /root/b /root/c //同时创建3个目录
rmdir 删除空目录
-p : 递归删除路径上的目录
文件操作
touch 创建文件或目录
示例 : touch ./1.txt [./2.txt] //同时创建多个文件
rm 删除文件
-r : 递归删除
-f : 强制删除,不提示任何信息.
示例 : rm -rf /home/test //删除rest目录
cp 复制文件或文件夹到指定位置
-r : 递归复制,复制目录下的所有文件.
mv 移动文档到新的位置
注: mv与cp命令不一样,不管是针对文件还是文件夹都不需要加-r选项
示例 : mv hello.txt readme.txt //重命名文件
find 查找文档
-name : 按照文档名称进行搜索(支持模糊搜索)
-type : 按照文档的类型进行搜索. f文件 d文件夹
示例 : find /etc -name "httpd.conf' -type f //搜索/etc下文件名为"httpd.conf"的文件. 注意:名称可使用正则
压缩与解压缩
gzip 压缩文件 后缀 .gz
-d : 解压文件
特点 : 压缩速度快,压缩率低,CPU开销比较低.
bzip2 压缩文件 后缀 .bz2
-d : 解压文件
特点 : 压缩速度慢,压缩率高,CPU开销大.
xz 压缩文件 后缀 .xz
-d : 解压文件
特点 : 压缩率高,解压速度快,压缩时间较长,CPU消耗相对较大.
tar 将文件打包
* -c : create 创建的意思
-v : 可视化,即可以查看创建过程.
* -f : 必选参数,不能省略
-u : update更新原打包文件中的文件.
-r : append 追加文件到压缩文档.
-z : 将文件打包 tar 并压缩成 .gz 文件 格式: xxx.tar.gz
-x : 解压缩
-tf : 用于查看压缩文件内容.
打包压缩示例 : tar -zcvf ./xxx.tar.gz ./* //将当前文件夹所有文件打包压缩成 xxx.tar.gz
解压缩示例 : tar -zxvf ./xxx.tar.gz -C /test //将xxx.tar.gz 解压到 /test 目录
zip 压缩与解压缩 兼容类unix与windows,可以压缩多个文件或目录
-r : 压缩文件夹
压缩示例 : zip readme.zip readme.txt //将readme.txt压缩成 readme.zip 文件
解压缩示例 : unzip readme.zip -d /tmp/ //将 readme.zip 解压到 /tmp/目录下.
输出重定向
> : 标准输出重定向,每次输出会覆盖原来的内容.
2> : 标准错误输出重定向,每次输出会覆盖原来的内容. (命令执行出现标准错误将输出错误)
&> : 标准输出和标准错误重定向,每次输出会覆盖原来的内容.(命令执行出现的错误和信息全都输出)
>> : 追加重定向,追加输出不会覆盖原始文件内容.
2>> :标准错误追加重定向,追加输出不会覆盖原始文件内容.(命令执行出现标准错误将追加输出错误)
&>> :标准错误追加重定向,追加输出不会覆盖原始文件内容.(命令执行出现的错误和信息全都追加输出)
示例 : ls -h > ./filelist.txt //将查询结果标准重定向到当前文件filelist.txt
echo 字符串输出.
示例:
输出到屏幕 : echo "testSting"
向文件中写入内容 : echo "testString" >> readme.txt //向文件readme.txt中追加内容 testString
查看文件内容
cat 正序查看文件内容(全部加载) 示例; cat file1.txt file2.txt > allfile.txt //合并两个文件的内容到 allfile.txt
tac 倒序查看文件内容.
head 查看一个文件的前n行,如果不指定n,则默认显示前10行.
tail 查看一个文件的末n行,如果n不指定默认显示后10行.
-f : 查看一个文件动态变化的内容. 一般用于查看系统的日志.
less 查看文件内容(流加载) 推荐
/关键字 可以直接搜索
n : next,向下切换关键字
N ; shift + n ,向上切换关键字
more 查看文件内容(全部加载)
wc word count 统计文件属性信息
-l : 统计行数
-w : 单词书,依照空格来判断单词数量.
-c : 表示bytes, 统计字节数
du 查看文件或目录属性信息
-s : summaries ,只显示汇总的大小,统计文件夹的大小.
-h : 表示以高可读性的形式进行显示.默认以KB的形式显示
帮助文档
求帮助方法;
type 查看一个命令是内部还是外部. 例: type cd
help 简约帮助信息
内部 : help 命令.
外部 : 命令 --help
man manul缩写手册的意思,详细帮助.任何配置文件都可以在man文档中找到相关信息
1 命令(/bin),5配置文件,8管理员相关工具命令和后台的程序(/sbin)
man [1命令参数|5配置文件参数|8管理员命令参数]
磁盘内存相关
df 查看磁盘的空间
-h : 表示可读性高的形式展示大小
free 查看内存使用情况
-m : 表示以MB为单位查看
lsblk 查看磁盘使用情况
lsblk [选项] [<设备> ...]
fdisk 磁盘分区创建管理
日期时间命令
date 获取系统时间
date "+%F" 输出形式 : 2020-11-20
date "+%F %T" 输出形式 : 2020-11-20 17:01:00
date -d "-1 day" "+%F" 输出时间日期 减1天 符号可选值 +(之后) -(之前) 单位的可选值 : day ,month , year
date 设置系统时间
-s : set 的意思 ,设置系统时间 date -s "2020-11-20 17:00:00"
hwclock 获取计算机硬件 RTC时间
hwclock 设置系统时间
-w : 将Linux系统时间保存到硬件RTC中
-s : 将RTC中的时间保存到Linux系统时间中
管道命令
| 管道符,管道是一种通信机制,通常用于进程间的通信.表现形式为将前面每一个进程的输出直接作为下一个进程的输入.
过滤 ls / | grep "y" //过滤根目录下包含y的文件/文件夹
统计 ls / | wc -l //统计根目录下文档的个数
统计 cat /etc/passwd | wc -l //统计一共有多少个用户信息.
特殊用法 cat /root/install.log | less //能够实现less的流加载效果.
xargs 很多命令不支持管道来传递参数,就需要用到xargs参数
示例 : find /etc -name "*.config" | xargs ls -l //通过xargs 传递参数.
多行输入单行输出 : cat file.txt | xargs
-n : cat file.txt | xargs -n3 //-n指定以多少列进行输出.
说明:
xargs : 可以将管道或标准输入数据转换成命令行参数,也能够从文件的输出中读取数据.
xargs : 可以将单行或多行文本输入转换成其他格式,例如单行变多行,多行变单行.
xargs : 默认的命令是 echo 这意味着通过管道传递给xargs的输入将会包含换行和空白,通过xargs处理换行和空白将被空格取代.
xargs : 是一个强有力的命令,能够捕获一个命令的输出,然后传递给另外一个命令.
history 查看以前输入的Shell命令信息.
clear 清屏
whoami 获取当前用户的用户名
reboot 重启操作系统
shutdown 关闭或重启系统
-r : 表示重启系统
-h : 关闭系统
示例 : shutdown -r 3 //表示3分钟之后重启设备.
cal 操作系统日历
-1 : 表示输出当前月份
-3 : 表示输出上个月+当前月+下个月的月份信息.
-y : 表示输出某一年的月份信息.
bash中的引号
双引号 : echo "$(hostname)" 输出变量内容. $(变量)
单引号 : echo '$(hostname)' 输出纯字符串.
反憋号 : echo `$(hostname)` 输出变量内容.
Linux高级命令
hostname 读取或设置临时主机名称.
-f : 全限定名(FQDN)
hostnamectl set-hostname 主机名 //永久设置主机名
id 查看一个用户的基本信息,如果指定不指定用户则显示当前用户.
ps process show 主要是查看服务器的进程信息.
-e : 等价于 "-A" ,表示列出全部的进程.
-f : 表示full , 显示全部字段.
字段说明:
UID : 该进程执行的用户ID
PID : 进程 ID
PPID :(Parent Process ID) 该进程的父级进程ID,如果找不到,则该进程就被称为僵死进程
C : CPU的占用率百分比形式.
STIME : 进程的启动时间.
TTY : 终端设备,发起该进程的设备识别符号,如果显示"?"则表示该进程并不是由终端设备发起.
TIME : 进程实际使用CPU的时间.
CMD : 该进程的名称或者对应的路径.
tty 查看当前的终端号. tty0表示本地终端号比如显示器. pts/0表示远程虚拟终端号比如xshell连接的窗口.
ps aux BSD格式命令.
USER : 进程所属的使用中账号
PID : 进程的ID号
%CPU : 进程使用掉的CPU资源百分比.
%MEM : 进程所占用的物理内存百分比.
VSZ : 进程已使用的虚拟内存量 (kbytes)
RSS : 进程占用的固定的内存量.(kbytes)
TTY : 显示"?"表示进程与终端无关,tty1-tty6是本机上的登入者运行的程序,pts/0等表示由网络连接进主机运行的程序.
STAT : 进程目前的状态.
R : 程序目前正在运行,或者是可被运行的.
S : 程序目前正在睡眠当中(idle状态),可以被某些讯号(signal)唤醒.
T : 程序目前正在侦测或者停止了.
Z : 程序已经终止,其父程序却无法正常的终止它,造成zombie(僵尸)程序的状态.
START : 程序被触发启动的时间.
TIME : 程序实际使用CPU运作的时间.
COMMAND : 程序的实际指令.
top 动态显示服务器的进程站的资源.
load average 一般单核情况下,这个值不能超过1,超过1代表CPU超负荷运行. 1分钟,5分钟,15分钟负载平均值
字段含义:
PID : 进程ID
USER : 进程对应的用户.
PR : 优先级.
VIRT : 虚拟内存,进程需要的内存大小,假如进程新申请10MB内存,实际只用了1MB那么它会增长10MB而不是实际的1MB使用量.VIRT = SWAP + RES
RES : 常驻内存,进程当前使用的内存大小.
SHR : 共享内存,计算一个进程实际使用的内存 = 常驻内存(RES) - 共享内存(SHR).
S : 表示进程的状态 status (sleeping , 其中S表示睡眠, R表示运行)
%CPU : 表示CPU的占用百分比.
%MEM : 表示内存的占用百分比.
TIME+ : 执行的时间.
COMMAND : 进程的名称或者路径.
按键 M 表示将MEM高到低进程降序排列.
按键 P 表示将结果CPU使用率从高到低进行降序排列.
按键 1 表示拥有多个CPU的时候显示各个CPU的详细信息.
service 用于控制一些软件服务的启动/停止/重启 centos7中 systemctl将代替service命令.
注意 : 服务名可以在/etc/init.d目录下找.
服务≠进程
进程 : 指运行的程序(状态不一定是正在运行 : run/sleep/stop/zombie)
服务 : 指进程的一个"外壳" 用于控制对进程的启动/停止/重启操作.
示例 : service network restart //重启网络服务.
kill 表示杀死进程需要配合ps命令获取进程号. 如果需要杀死子进程则可以直接杀死父进程.
-9 : 表示强制杀死某个进程.
killall 表示杀死进程,通过进程名称杀死进程.
pkill 和killall类似通过进程名称杀死所有进程.
ifconfig 获取网卡的相关信息.
uname 获取计算机操作系统相关信息.
-a : 表示获取全部的系统信息.
netstat 查看网络连接状态
-t : 表示只列出tcp协议的连接.
-u : 表示只列出udp协议的连接.
-n : 表示将地址从字母组合转化成ip地址,将协议转化成端口号进行显示.
-l : 表示过滤出 "state (状态)"列中其值为LISTEN(监听)的连接.
-p : 表示显示发起连接的进程pid和进程名称.
Protocol 协议,Receive 接收 , Send 发送.