linux常用命令及命令详解
1. 目录及路径
目录
Linux系统里是没有盘符的概念,只有根目录
/bin 二进制文件,系统常规命令
/boot 系统启动分区,系统启动时读取的文件
/dev 设备文件
/etc 大多数配置文件
/home 普通用户的家目录
/lib 32位函数库
/lib64 64位库
/media 手动临时挂载点
/mnt 手动临时挂载点
/opt 第三方软件安装位置
/proc 进程信息及硬件信息
/root 临时设备的默认挂载点
/sbin 系统管理命令
/srv 数据
/var 数据
/sys 内核相关信息
/tmp 临时文件
/usr 用户相关设定
路径
绝对路径:从/目录计算到目标位置(通俗的话是说从最顶端开始顺着路线走到目的地)
相对路径:从当前你所在的目录,到目标目录
…/ 上一级目录
./ 当前目录
ls 显示当前目录下的所有子目录和文件
cd 空格 绝对路径/相对路径目录 切换目录
pwd:显示你当前所在位置的绝对路径
单凡遇到需要定位目录或者文件 都可以使用绝对路径和相对路径
按 一次Tab键可以帮我们补全目录名及文件名
按 二次Tab键可以帮我们显示多个候选目录及文件
~代表家目录
2. systemctl 命令
在windows里面使用任务管理器对服务进行操作, 在Linux里使用systemctl命令进行操作
系统守护进程操作命令,对linux系统的服务进行关闭和开启
语法:systemctl 状态 服务名字
状态
- start 开启
- stop 关闭
- restart 重启
- status 状态
- enable 开机自启
- disable 开机不自启
服务名字
- MySQL
- firewalld
- network
- docker
网络
关闭网络:systemctl stop network
启动网络:systemctl start network
重启网络:systemctl restart network
开机自启:systemctl enable network
开机不自启:systemctl disable network
查看网络: systemctl status network
关机
关机:poweroff 或者 shutdown now
重启:reboot
查看系统服务
systemctl list-unit-files 查看原生systemd服务
chkconfig 查看第三方安装的服务
ctrl+c 退出查看
systemctl list-unit-files | grep firewalld 查看防火墙服务
3.文件操作
创建文件
touch 文件名
删除
rm 文件名
rm -rf 文件名
复制
cp 源文件 目标文件
移动(重命名)
mv 源文件 目标文件
文件查看
cat 文件名 全文查看
more -数字 文件名 分页查看,每个屏幕显示多少行
less 文件名 显示文件内容,可以使用上下键回看内容,按q键退出
head -数字 文件名 显示前多少行数据
tail -数字 文件名 显示末尾多少行
tail -f 文件名 实时显示末尾10行内容
- 一个软件,产生大量的日志文件
- 查看日志,日志末尾,实时更新
退出文件的几种情况
cat > a.txt 要退出追加内容 按ctrl+d退出
tail -f a.txt 按ctrl+c 退出
esc退出编辑模式
less a.txt 按q退出
- 文件编辑模式
vi /vim文件名
/字符串 从上到下查询文件中的字符串 按n进行切换
?字符串 从下到上查询文件中的字符串 按n进行切换
:%s/准备要被替换的字符串/替换后的字符串/g
:起始行标号,结束行标号s/替换前字符串/替换后的字符串/g
-
:n1,n2dd 删除第n1行到第n2行数据
-
:wq 保存退出
-
:set nu 设置行号
-
:set nonu 取消行号
-
命令模式—定位光标
-
-$移动到该行末尾
-
^移动到该行开头
-
G移动到末行行首
-
gg移动到最开始行行首
命令模式—删除命令
dd 删除光标所在的行
命令模式—复制和剪切 yy
复制当前行 nyy 复制多行
p 粘贴
-
-
三种模式切换关系
4. 目录操作
-
查看 ls
-
-
ls 查看当前目录下的所有子目录和文件
-
ls -a 显示当前目录下的所有子目录和文件并且还显示隐藏的目录和文件
-
ls -l = ll 显示当前目录下的所有子目录和文件的详细信息
-
ls -al 显示当前目录下的所有子目录和文件包含隐藏目录及文件的详细信息
-
ls -h 显示文件大小
-
ls -alh 查看所有
-
-
-
创建目录
mkdir 目录名字1 在当前目录下创建子目录
-
mkdir 绝对路径/目录名 在绝对路径下创建子目录
-
mkdir 相对路径/目录名 在相对路径下创建子目录
-
mkdir -p 目录名/子目录名/子目录名 递归创建目录
-
删除目录
- rm -rf 目录名 删除该目录及该目录下所有递归的目录及文件
- rmdir 目录名 删除该目录,要求该目录是一个空的
-
复制目录
- cp -r 源目录 新目录
-
移动(剪切)或者重名名目录
- mv 源目录 新目录
-
-
5. 安装卸载
5.1 yum下载安装
yum软件仓库为进一步降低软件安装难度,yum可以按照用户的要求分析出软件所需要的依赖关系,再从服务器上进行下载软件包安装;
- yum info 软件包名称 查看软件包信息
- yum update 软件包名称 升级软件包
- yum remove 软件包名称 卸载软件包
- yum install 软件包名称 下载并且安装软件包
5.2 rpm安装
rpm是redhat软件包管理工具,实现类似于windows中添加、删除程序功能。
常用命令参数如下:
- rpm -ivh 软件包名 安装软件包并显示安装进度。
- rpm -qa 查询已经安装哪些软件包
- rpm -q 软件包名 查询指定软件包是否已经安装
- rpm -uvh 软件包名 升级一个软件包
- rpm -e —nodeps 软件包名 删除指定软件包,不依赖软件之间的关系
尽管rpm能够帮助用户查询软件相关依赖,但是问题还是需要手动解决,大型软件可能和数十个上百个个依赖关系;
6.压缩归档
压缩
gzip 文件名
解压缩
gzip -d 压缩包名
压缩命令
- zip—-第三件软件需要下载安装使用 yum -y install zip
- unzip 也需要下载使用 yum -y install unzip
- 压缩命令:zip 起名 源文件 (文件名.zip)
- 解压缩命令:unzip 压缩包名压缩命令
归档
将众多文件组合成一个大文件的过程
命令
tar -cvf 起归档名 文件 起名(文件名.tar)
解归档
就是一个文档里的文件解出来
命令
tar -xvf 归档包名
命令详解
-c(compress)压缩,tar
-v(verbose)冗长的,常用于打印详细信息
-x(extract)解压,tar
-z gzip压缩
- f file 归档的文件名。
压缩归档
命令
tar -zcvf 起名字.tar.gz 文件名
tar -zcvf 起名字.tar.gz 文件名 -C 指定目录
z 压缩 c归档 v显示详细信息 f指定文件 -C指定目录
解压缩解归档
命令
tar -zxvf 文件名
7.文件与内容查找
find 查找文件或者目录
grep 查找的文件的内容
- 根据名字查询
- find 查找目录 -name 文件名字或者目录名字
- 精确查询
- find 查找目录 -name 文件or目录名字
- 模糊查询
- find ./ -name ‘t*’:在当前目录查找以t开头的所有文件或者目录
- find / -name ‘t‘ :在根目录查找名字包含t的所有文件或者目录
- 正则表达式 |管道符
- find ./ -name “[c|d]*”:[|]以c或者d开头的所有文件或者目录
- find ./ -name “[^c|d|t|a]*“: 不以cdta开头的文件或者目录
- 根据权限
- find / -perm 777:查询根目录下权限为777的文件或者目录
- find / -perm 666:查询根目录下权限位666的文件或者目录
- 根据路径
- find / -path 排除目录 -prune -o -name “文件”
- 根据时间
- find / -mtime -3: 到当前时间3天内更新过的文件
- find / -mtime +3: 3天前更新过的文件
- 根据类型
- find / -type d
- d:目录
- l:软连接
- f:文件
- 根据大小
- find / -size 6c:大小为6字节的文件
- G 代表GB
- b 代表0.5字节
- grep命令
- 语法:
- grep 内容 文件
- 精确匹配
- grep 查找的内容 文件名
- 模糊匹配
- ^开头
- grep ‘^内容’ 文件名
- $结尾
- grep ‘内容$’ 文件名
- | 管道符通常和xargs配合一起使用,把前一个命令的结果当作后面一个命令的条件
- find / -name 文件名 | xargs grep 内容
- find / -type f | xargs grep mysql
xargs
:将上一个命令的输出作为参数传递给下一个命令。- xargs的英文全称是"extended arguments",中文意思是"扩展参数"。
8 .上传工具
winscp
finalshell
xtfp
等等
命令: lrzsz yum -y install lrzsz
rz上传
sz 文件名下载
9.组操作
权限:定义资源(目录和文件)或服务的访问能力,称之为权限
用户权限:定义某一个特定的人访问资源或者服务的访问能力
用户组权限:定义一类用户具有访问某个资源或服务的能力.同时用户组还拥有具有访问某个资源的权限
组的分类
管理员组
root
程序组
用户组
除开管理员的其他账户
查看组信息
cat /etc/group
组和用户的概念
组下面有用户,组设置一定的权限,那么组下面所有的人都有相应的权限创建组
groupadd 组名修改组
groupmod -n 新组名 原组名删除组
groupdel 组名
10.用户操作
创建用户
useradd 用户名
1.创建这个用户
2.创建同名的主组
3.创建了同名的家目录
useradd -g 主组名 用户名 (前提是 必须先有主组名)
1.创建这个用户(cat /etc/passwd)
2.指定这个用户的主组是主组名(cat /etc/group groups 用户名)
3.创建了同名的家目录
useradd -G 附加组名 用户名 (前提是有亲戚)
1.创建这个用户
2.创建同名的主组
3.创建了同名的家目录
4.指定附加组是哪个(这个用户可以去亲戚串门)
useradd -g 主组名 -G 附加组名 用户名(前提是有个空房子,有个亲戚和亲戚家的房子)
1.创建这个用户
2.指定这个用户的主组是主组名(cat /etc/group groups 用户名)
3.创建同名家目录
4.指定附加组是哪个(这个用户可以去亲戚串门)注意:
一个用户必须有一个组,当创建一个新用户时,系统会默认给该用户创建一个同名的组,且会在home目录下创建一个同名的家目录
查看用户所在的组信息
groups 用户名切换用户
su 用户名对用户设置密码
使用root账户 passwd 用户名 需要输入两次相同的密码即可
查看组与用户信息
cat /etc/passwd:查看用户
cat /etc/group:查看组
修改用户
usermod -g 新的用户组 用户:重新指定用户的主组
usermod -G 新的附加组名 用户:重新指定用户的附加组
usermod -d 新的家目录 用户:重新指定用户的家目录
usermod -u 新的uid 用户:重新指定用户的id
删除用户
如果组下有人,是不让删除组,需要先删除人,在删除组
userdel 用户名:删除用户,不删除家目录,默认会删除组
userdel -rf 用户名: 强制(不管用户是否登录)删除用户和主组删掉,以及家目录删除,信箱文件也会删除掉
11.权限修改
控制规则
对象:文件和目录
权限
对文件和目录拥有一定的权利
linux里的权限有:rwx,其中r代表读的权限,w代表写的权限,x代表执行的权限 , 数字表示w:4 , w:2, x:1查看权限
ls -l 或者ll
文件类型
首个字段
-文件
l 软链接
d 目录
命令授权
chmod o+/-wrx 文件名 对其他组的用户授权rwx(读写执行)的权限
chmod g+/-wrx 文件名 对附加组的用户授权rwx(读写执行)的权限
chmod u+/-wrx 文件名 对主组的用户授权rwx(读写执行)的权限
数字授权
chmod -R 777 文件名 (r—4 w—2 x—1,一个数字代表一个组,第一个主组,第二个附加组,第三个其他组) 改拥有者-change owner
改拥有者-change owner
chown 新的拥有者 文件或者目录:修改拥有者
chown -R 新的拥有者 文件或者目录:递归授权
修改文件所在的组-change group
chgrp 新的主组名 文件或者目录:修改文件所在的组
chgrp -R 新的组 文件或者目录:递归修改文件所在的组
12.网络命令
查看ip
ip addr—ip a
ping ip 检测当前设备与目标ip是否相通
查看网络进程
netstat -anp|grep 3306
网络配置文件
/etc/sysconfig/network-scripts/ifcfg-ens33TYPE=Ethernet 网卡类型:以太网
PROXY_METHOD=none 代理方式:关闭状态
BROWSER_ONLY=no 只是浏览器(yes|no)
BOOTPROTO=static/dhcp(变) 设置网卡获得ip地址的方式(static|dhcp|none|bootp)
DEFROUTE=yes 设置为默认路由(yes|no)
IPV4_FAILURE_FATAL=no 是否开启IPV4致命错误检测(yes|no)
IPV6INIT=yes IPV6是否自动初始化
IPV6_AUTOCONF=yes IPV6是否自动配置
IPV6_DEFROUTE=yes IPV6是否可以为默认路由
IPV6_FAILURE_FATAL=no 是不开启IPV6致命错误检测
IPV6_ADDR_GEN_MODE=stable-privacy IPV6地址生成模型
NAME=eth0 网卡物理设备名称
UUID=6e89ea13-f919-4096-ad67-cfc24a79a7e7 UUID识别码
DEVICE=eth0 网卡设备名称
ONBOOT=yes 开机自启(yes|no)
IPADDR=192.168.10.203(变) IP地址(路由器的网段必须是192.168.11.xxx 3-255)
NETNASK=255.255.255.0 子网掩码,也可使用掩码长度表示(PREFIX=24)
GATEWAY=192.168.10.1(变) 网关
DNS1=114.114.114.114 首选DNS
DNS2=8.8.8.8 备用DNS
13.进程操作
netstat—需要下载 yum -y install net-tools 查看网络进程
ps -ef 查看所有进程
例如:
ps -ef | grep java
netstat -anp |grep 3306 查看3306端口被谁使用
kill pid 结束进程
kill -9 pid 强制结束进程
top 查看系统资源占用情况
top -d 10 更改top命令刷新的间隔时间,默认是3秒刷新一次
ctrl+c退出top命令
history 历史操作记录
history -c 清楚历史操作记录
clear 清屏
id 显示用户的详细信息
自动设置时间, 需要联网
ntpdate time.windows.com
date 显示当前时间
date -s 设置时间
alias 显示系统的起别名命令
alias a=‘ls -a’
free -h 查看系统内存
df -h 查看磁盘空间
命令 --help 查看这个命令帮助
whereis 程序名 搜索二进制文件,源代码及帮助手册
yum -y install ntp
ntpdate time1.aliyun.com 同步系统时间命令命令:top
每行代表意思:
任务进程
第一行:
20:00:31 — 当前系统时间
up 1:43 — 系统已经运行了1小时43分钟(在这期间没有重启过)
3 users — 当前有3个用户登录系统
load average: 后面的三个数分别是负载情况。
第二行:
Tasks — 任务(进程),系统现在共有118个进程,其中处于运行中的有1个,117个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。
第三行:cpu状态
0.7% us — 用户空间占用CPU的百分比。
2.8% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
96.5% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si — 软中断(Software Interrupts)占用CPU的百分比
第四行:内存状态
total — 物理内存总量
used — 使用中的内存总量
free — 空闲内存总量
buffers — 缓存的内存量
第五行:swap交换分区
total — 交换区总量
used — 使用的交换区总量
free — 空闲交换区总量
cached — 缓冲的交换区总量
第五行以下:
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行