/bin(指向/usr/bin):
存放最经常使用的程序和命令,bin 是 Binaries (二进制文件) 的缩写
/boot:
存放启动 Linux 时使用的核心文件
/dev :
存放设备文件,如声卡,磁盘,在 Linux 中访问设备的方式和访问文件的方式是相同的
/etc:非常重要!!
存放所有的配置文件,etc 是 Etcetera(附加物) 的缩写
/home:
普通用户的家目录,类似于C:\Users\xxx.在 Linux 中,每个普通用户都有一个自己的家目录,一般该目录名是以用户的账号命名的,如 alice、bob
/lib(指向/usr/lib) /lib64(指向/usr/lib64):
存放.so之类的库文件,类似于 Windows 里的 dll文件。几乎所有的应用程序都需要用到这些共享库
/lost+found:
存放系统非法关机后的文件,一般是空的
/media:
存放设备挂载的文件,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了
/opt:
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的
/proc:
proc 是 Processes(进程) 的缩写,/proc 是一种虚拟文件系统,存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:超级用户的家目录
/sbin(指向/usr/sbin):
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序
/selinux:
这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的
/srv:
该目录存放一些服务启动之后需要提取的数据
/tmp:
存放一些临时文件/usr:非常重要!!类似于C:/Windows
, usr是 unix system resources的缩写
/usr/bin:非常重要!!类似于C:/Windows/System32,存放众多应用程序和命令.该目录默认被添加到环境变量.一般通过yum安装的软件如mysql就在这个目录下,可使用which mysql查看;通过yum安装的redis也在这个目录下
/usr/sbin:非常重要!!
存放超级用户专用的应用程序和命令,该目录默认被添加到环境变量
/usr/local/bin:非常重要!!
存放用户自己的软件,只是一种规范,该目录默认被添加到环境变量
/usr/local/sbin:非常重要!!
存放超级用户专用的软件,只是一种规范,该目录默认被添加到环境变量
/usr/src:存放内核源代码
/var:存放日志等文件,var 是 variable(变量) 的缩写
环境变量优先级:
/usr/local/sbin > /usr/local/bin > /usr/sbin > /usr/bin安装清华大学的yum源
yum install epel-release
查看当前yum源
yum repolist
查找yum源中的可安装的软件
yum list|grep jdk
安装软件(yum与rpm的区别:rpm适用于所有环境,而yum要搭建本地yum源才可以使用!yum能自动解决安装依赖,rpm不能自动解决安装依赖)
例1:yum -y install java-1.8.0-openjdk-src.x86_64(一键安装)
例2:yum -y install mysql-community-server.x86_64(一键安装)
例3:yum -y install xxx.rpm
例4:rpm -ivh xxx.rpm
例5:rpm -ivh --nodeps --force(跳过依赖,强制安装)
具体例子:
安装mysql5.7,因为yum源中没有mysql5.7的rpm包,所以需要
1.先下载rpm文件:wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
2.再安装该rpm:yum -y install mysql57-community-release-el7-10.noarch.rpm
3.最后安装mysql57:yum -y install mysql-community-server
查看安装的软件
例1:yum list installed|grep jdk
例2:rpm -qa|grep jdk
查看安装的软件在什么位置
which mysql,可输出mysql可执行程序的路径
或者
rpm -qa|grep mysql 得到安装包名
然后
rpm -ql mysql-server-5.1.73-8.el6_8.x86_64(安装包名) 即可知道
which与whereis的区别:
which:获得环境变量下的可执行文件路径
whereis:获得更详细的信息,且不限于环境变量
卸载软件
例1:yum -y remove nginx(有依赖会自动删除依赖,若只想删除nginx,应rpm -e --nodeps nginx)
例2:yum -y remove mysql57-community-release.noarch(有依赖会删除依赖)
例3:rpm -e mysql57-community-release.noarch(有依赖不会删除依赖,还会报错,可加--nodeps强制删除)
下载软件
例1:wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
例2:wget -i -c https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz
新建目录
mkdir 目录名
新建文件
touch 文件名
显示当前工作目录的绝对路径
pwd
复制
cp 源文件 目标文件
例1:单个文件->目录
将/a目录下的file1复制到/b目录下
cp /a/file1 /b
例2:单个文件->目录(含改名)
将/a目录下的file1复制到/b目录下,并将文件名改为file2
cp /a/file1 /b/file2
例3:所有文件->目录(不拷贝原目录本身)
将 /a目录下的所有文件拷到/b目录下,但不拷贝a目录本身
cp -rf /a/* /b
例4:目录->目录
将 /a目录拷到/b目录下
cp -rf /a /b
例5:目录->目录(含改名)
将 /a目录拷到/b目录下,并重命名为temp目录
cp -rf /a /b/temp
移动(剪切)
mv 源文件 目标文件
命令类似cp
重命名文件
mv 源文件 目标文件
解压
对于tar.gz文件
tar -xvf nginx-1.12.0.tar.gz
cd nginx-1.12.0
对于zip文件
yum -y install unzip
unzip nginx-1.12.0.zip
总结:
tar -xvf file.tar //解压 tar包(不能加-z参数)
tar -xvf file.tar.gz 或 tar -zxvf file.tar.gz //解压tar.gz
unzip file.zip //解压zip
unrar e file.rar //解压rar
删除
rm -rf
删除空目录
rmdir
全局查找文件
find / -name 文件名
全局搜索内容--显示匹配到的文件名称和内容
find / | xargs grep -ri 'tomcat'
全局搜索内容--只显示匹配到的内容
find / | xargs grep -ril 'tomcat'
查看文件的内容
cat或vim或nano(推荐)
查看文件中匹配的对应关键字的内容
cat /etc/my.cnf|grep validate
cat /etc/redis.conf|grep requirepass
查看文件中标不匹配的对应关键字的内容
cat /etc/redis.conf|grep -v requirepass
同时匹配多个关键字–与关系
|grep 关键字1 |grep 关键字2 |grep 关键字3
必须同时满足三个关键字才匹配。
同时匹配多个关键字–或关系
|grep -E "关键字1|关键字2|关键字3"
清空文件中的内容
> 文件名
vim中查找关键字
向上查找 ?关键字 向下查找 /关键字
nano中查找关键字
ctrl+w 关键字 继续查找 ctrl+w 关键字
检测某项服务是否启动
显示监听中的程序的网络信息(推荐)
netstat -lnp|grep 443 netstat -lnp|grep java
显示进程名为java的进程信息
ps -ef|grep java 或 pgrep nginx(会把父进程的id和本进程id从上往下显示出来)
强制杀死某个进程
kill -9 进程名
killall 进程名
springboot的jar包后台挂起启动
nohup java -jar xxx.jar & tail -f nohup.out
循环查看日志
tail -f xxx.log
查看日志末尾后10行
tail -n 10 xxx.log
后台运行
加&
查看当前有多少在后台运行的服务
jobs
linux中,&,&&, |,|| ,>,>>的含义
& 任务在后台执行
&& 前一条命令执行成功后,才执行后一条命令
|| 前一条命令执行失败后,才执行后一条命令,与&&相反
| 前一条命令的输出,作为后一条命令参数(输入)
> 覆盖原文件内容(文件的日期也会自动更新)
>> 追加内容(会另起一行,文件的日期也会自动更新)
系统状态:
uptime:显示系统运行时间及负载
lscpu: 查看cpu信息
free:查看内存
df:查看磁盘信息
top:实时显示系统资源使用情况
uname:显示操作系统相关信息的命令
hostname:显示或者设置当前系统的主机名
dmesg:显示开机信息,用于诊断系统故障
stat:显示文件或文件系统的状态
du:计算磁盘空间使用情况
linux修改root密码:passwd root
查看LINUX发行版:cat /proc/version
时间
date:显示与设置系统时间
显示时间:直接date
设置时间:
方法一:
设置月日年:date -s 11/25/2020
设置时分:date -s 16:17
设置时区:timedatectl set-timezone Asia/Shanghai
将硬件时钟设置为与本地时钟一致, 0 为设置为 UTC 时间:timedatectl set-local-rtc 1
写入Bios:clock -w
方法二:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
yum install ntp
)ntpdate asia.pool.ntp.org
/sbin/hwclock --systohc
cal:查看日历等时间信息
用户
useradd:添加用户
userdel:删除用户
passwd:修改用户密码
id:查看用户的uid,gid及归属的用户组
su:切换用户身份
网络
wget:命令行下载文件
ping:测试主机之间网络的连通性
ifconfig:查看、配置、启用或禁用网络接口的命令
ifup:启动网卡
ifdown:关闭网卡
telnet:使用TELNET协议远程登录
ssh:使用SSH加密协议远程登录
scp:全拼secure copy,用于不同主机之间复制文件
netstat:查看网络状态
ss:查看网络状态
route:显示和设置linux系统的路由表
其它
history: 显示历史命令
clear:清屏
chmod:改变文件或目录权限(chmod 777 文件名 表示给予该文件rwxrwxrwx权限)
last:显示登入系统的用户
lastlog:显示系统中所有用户最近一次登录信息
users:显示所有用户列表
shutdown:关机,关闭电源
poweroff:关机,关闭电源
halt:关机,不关闭电源
reboot:重启
ctrl+d:退出当前登录的Shell
logout:退出当前登录的Shell
exit:退出当前登录的Shell
pstree:树形显示进程
关于服务:
启动,停止,重启,查看状态
systemctl start(stop,restart,status) 服务名(如mysqld,redis,nginx)
systemctl命令兼容了service,centos7以下使用
service 服务名 start(stop,restart,status)
添加服务开机启动:
systemctl enable 服务名
添加服务开机启动:
systemctl disable 服务名
查看开机项:
systemctl list-unit-files |grep enable