Linux目录说明
bin -> usr/bin 这个目录存放最经常使用的命令
boot 这个目录存放启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
dev 设备Device的缩写, 该目录下存放Linux的外部设备,Linux中的设备也是以文件的形式存在
etc 这个目录存放所有的系统管理所需要的配置文件
home 用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名以用户的账号命名
lib -> usr/lib 该目录存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库。
lib64 -> usr/lib64 64位的系统动态连接共享库
media Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下
mnt 系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容
opt 该目录是给linux额外安装软件所存放的目录,比如安装一个Oracle数据库则就可以放到这个目录下,默认为空。(装软件:/usr/local、/opt、/srv)
proc 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
root 该目录为系统管理员目录,root是具有超级权限的用户,是linux默认自带的用户
run 程序或服务启动后,运行的PID存放在该目录下
sbin -> usr/sbin s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
srv 该目录存放一些服务启动之后需要提取的数据。
sys 内核中的文件系统 sysfs 。
tmp 这个目录是用来存放一些临时文件的。
usr 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的Program Files目录。
var 这个目录存放着在不断扩充着的东西,我们习惯将那些经常被修改的文件存放在该目录下,比如运行的各种日志文件;
磁盘管理
cd 切换目录
ll、ls、ll -a、ls -a 列出当前目录下目录及文件
dir 列出当前目录下的目录及文件
mkdir:创建目录/文件夹
df、df -h 查看系统磁盘空间使用情况
du、du -sh 查看文件和目录的磁盘空间使用情况
pwd 显示当前目录
文件管理
mv 文件(夹)重命名或者将文件(夹)移动到指定目录
rm、rm -rf 删除文件或目录
touch 创建空文件或将文件的最后修改时间改为当前时间
cat 将整个文件内容输出到控制台
more 逐屏输出(按空白键space就往下一页)
less 逐屏输出(按PgUp、PgDn上下翻页),到结束的时候退出按 q
head 显示头10行
tail 显示末尾10行
cp、cp -rf 文件复制或目录
find 查找文件,比如:find ./ -name ,find ./ -mtime +5 查找5天前修改过的文件
whereis 查找文件,主要用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s),如果省略参数,则返回所有信息。
which 在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果,比如which mkdir
系统设置
date 显示或设置系统日期和时间, date -s string
shutdown –h now 关机
reboot 重启
echo $LANG 显示当前语言环境
locale 查看是否有中文语言包,如有zh cn表示已经安装了中文语言包
ps -ef、ps -aux 查看系统进程
kill pid 杀掉进程
kill -9 pid 强制杀掉进程
su 切换用户
top 系统运行负载情况,结果解读:https://dwz.cn/DFYqnOGo
uptime 系统运行负载情况
free、free -m、free -h显示内存的使用情况
uname 查看系统信息
/etc/centos-release 查看当前centos版本是几
who 显示当前已登录的用户信息
whoami 当前登录的是谁
clear 清除屏幕,实际上内容并没有清除,是移到最上面;
crontab
Linux下的定时任务
crontab使用
*/1 * * * * echo "hello world" >> /opt/crontab.log
*/10 * * * * sh /etc/update.sh
时间字段说明:
minute hour day month week command
编辑创建crontab: crontab -e
查看crontab:crontab -l
删除crontab:crontab -r
> 重定向覆盖输出,比如 > abc.txt
>> 重定向输出追加,比如 >>abc.txt
| 这个竖线表示管道符号,用于把管道左边的输出作为右边的输入
用户管理
useradd 添加用户
userdel 删除用户,userdel -r jackson
passwd 修改用户密码,修改当前登录用户密码passwd
passwd jackson 修改指定用户jackson密码
文件权限
文件类型和权限
-rw-rw-rw -表示文件
drw-rw-rw d表示目录文件夹
srw-rw-rw s表示socket套接字文件
brw-rw-rw Block device块设备
crw-rw-rw Character Device字符设备
r--read 读权限 4
w--write 写权限 2
x--execute 执行权限 1
rwx=7
常见644、755、777三种权限
修改文件的读写执行权限
chmod 640 aa.log
修改文件所属用户
chown centos aa.log
修改文件所属组
chgrp centos aa.log
查看用户所在组
groups
文档处理
grep 文本搜索
sort
排序,cat aa.log | sort
uniq
去除相邻重复的行,cat aa.log | sort | uniq
wc
cat aa.log | wc 依次输出 行数、单词数、字符数
网络通讯
ifconfig (min版没有,需要安装,后续我们会安装)
查看系统IP
netstat (min版没有,需要安装,后续我们会安装)
查看网络端口,netstat -nlp
ping
测试某个地址是否可以连通
备份压缩
tar
解压:
tar -zxvf xxx.tar.gz
tar -xvf xxx.tar
压缩:
tar -zcvf xxx.tar.gz ./aa/*
tar -zcvf xxx.tar ./aa/*
zip
压缩为zip格式,zip aa.zip aa.log
unzip
解压zip格式的压缩包,unzip aa.zip
curl
抓取网络文件内容,比如网页
wget (min版没有,需要安装,后续我们会安装)
网络下载
yes、y
对linux命令执行后的接受、肯定、是、确认
如果不接受、不确认、否定 就输入 no 或者 n
常用快捷键
Tab 命令自动补齐 或 显示可选项
Ctrl+c 终止当前进程
Ctrl+d 关闭终端
Ctrl + z
日志打印输出、日志内容查找
grep -A 100 'Exception' catalina.out 匹配关键词的后面100行 after
grep -B 100 'Exception' catalina.out 匹配关键词的前面100行 befer
grep -C 100 'Exception' catalina.out 匹配关键词的上下100行 center
cat catalina.out | grep -C 100 'Exception'
cat catalina.out | grep -A 100 'Exception'
cat catalina.out | grep -B 100 'Exception'
tail -f catalina.out实时查看日志文件
tail -100f catalina.out实时查看日志文件末尾一百行
tail -f -n 100 catalina.out 实时查看日志末尾100行
文件权限
文件类型和权限
-rw-rw-rw -表示文件
drw-rw-rw d表示目录文件夹
srw-rw-rw s表示socket套接字文件
brw-rw-rw Block device块设备
crw-rw-rw Character Device字符设备
r--read 读权限 4
w--write 写权限 2
x--execute 执行权限 1
rwx=7
常见644、755、777三种权限
前三个为属主位:创建该文件者或被指定的文件所属者;
中间三个为属组位:文件的所属组,在该组内的非属主用户对该文件拥有该属组权限;
最后三个Other位:other用户,既不属于属主又不在属组的用户;
文件中rwx的具体含义:
r:可以使用类似cat等命令查看文件内容
w:可以编辑或删除此文件
x:可以在命令提示符下当做命令提交给内核运行
目录中rwx的具体含义:
r:可以对此目录执行ls以列出内部的所有文件;
w:可以在此目录创建文件;
x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息;
修改文件的读写执行权限
chmod 640 aa.log
-R 递归,将设置的权限应用到下面的所有文件,如:chmod -R 755 /opt/app
修改文件所属用户
chown centos aa.log
-R 递归修改文件及其下的子文件的所属用户
chown -R centos /opt/webapp
修改文件所属组
chgrp centos aa.log
-R 递归修改文件及其下的子文件的所属组
chgrp -R centos /opt/webapp
一次性修改属主和属组
chown [OWNER]:[GROUP]] FILE
chown centos:centos aa.log
chown -R centos:centos /opt/app
查看用户所在组
groups
rpm常用命令
安装rpm包的软件:rpm -ivh jdk1.8.201.rpm
查看是否安装了某个rpm包:rpm -qa | grep xxx
删除某个rpm安装包:rpm -e python-libs-2.7.5-86.el7.x86_64
-i:安装应用程序(install)
-e:卸载应用程序(erase)
-vh:显示安装进度;(verbose hash)
-U:升级软件包;(update)
-qa: 显示所有已安装软件包(query all)Rpm安装软件,安装后的文件到处都有,散落一地,不好归档;
yum常用命令
有些软件没有rpm包
查找软件包命令:yum search <keyword>
安装指定的软件命令:yum install <package_name>
比如
telnet
需要安装 yum install telnet -y
telnet 119.75.216.20 80
删除软件包命令:yum remove <package_name>
列出所有已安装的软件包命令:yum list installed、
yum list installed | grep python清理yum安装已下载的包命令:
yum clean all (yum install 后的rpm包存放在/var/cache/yum/下)
网络通讯
ip addr 查看ip(不需要安装rpm包,本身linux默认就有)
ifconfig (min版没有,安装 yum install net-tools)
查看系统IP
netstat (min版没有,安装yum install net-tools)
查看网络端口:netstat -nlp
备份压缩
tar
解压: (可以通过-C执行把文件解压到哪里去)
tar -zxvf xxx.tar.gz
tar -zxvf xxx.tar.gz -C /usr/local
tar -xvf xxx.tar
压缩:
tar -zcvf xxx.tar.gz ./aa/*
tar -cvf xxx.tar ./aa/*
Windows里面:rar zip
压缩文件,tar tar.gz tar.bz2 tar.xz他们依次压缩得越厉害,压缩速度当然就越来越慢;
解压都可以使用:tar -xvf
压缩:
-zcvf file.tar.gz filenameOrDir 这个压缩成tar.gz格式
-jcvf 压缩成tar.bz2格式 (min版需要安装:yum install bzip2 -y)
-Jcvf 压缩成tar.xz格式
记住他们是z j J
设置字符集
export LANG="zh_CN.UTF-8" # 设置为中文
export LANG="en_US.UTF-8" # 设置为英文
临时修改:export LANG="zh_CN.UTF-8"
永久修改是写入/etc/profile配置文件:
vim /etc/profile
source /etc/profile --让修改配置生效
查看当前的字符集:
echo $LANG
Locale
文件同步、复制
rsync: command not found
Min版没有,需要安装,执行命令 yum install rsync -y
本地同步:rsync abc.txt /root/soft/
Usage: rsync [OPTION]... SRC [SRC]... DEST
or rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
or rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
or rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST
or rsync [OPTION]... [USER@]HOST:SRC [DEST]
or rsync [OPTION]... [USER@]HOST::SRC [DEST]
or rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
把本地文件同步到远程:
rsync abc.txt root@192.168.153.129:/root/soft
同步中途需要输入远程机器密码
scp传输文件
Linux scp 命令用于 Linux 之间复制文件和目录;
从本地复制到远程
scp abc.txt root@192.168.153.129:/root/soft
scp -r /root/app root@192.168.153.129:/root/soft
从远程复制到本地
scp root@192.168.153.129:/root/cat.txt /root/
scp -r root@192.168.153.129:/root/soft/ /root/soft/
-r 递归迭代复制
wget 文件下载(min版没有,需安装 yum install wget -y)
zip (min版没有,需安装yum install zip -y)
unzip (min版没有,需安装yum install unzip -y)
文件上传下载
需要安装lrzsz, yum install lrzsz -y
history命令,用户的操作命令历史
vi & vim编辑器
vi是linux下标配的一个纯字符界面的文本编辑器,由于不是图形界面,相关的操作都要通过键盘输入命令来完成,需要记住一些常用的操作命令
vim是vi的升级版本,完全兼容vi,vim也可以完全当成vi使用,vim是在vi的基础上增加一些功能,比如语法着色等
启动 vi
Min版没有vim, yum install vim -y
vi filename
vim filename
如果参数中的filename文件存在,则打开该文件,如果参数中的文件不存在,则会新建该文件(不是立即创建,而是在保存的时候创建)
vi / vim操作模式
命令模式
按Esc键,进入命令模式,命令模式下无法编辑
编辑模式
按 a 或者 i 字母键,进入编辑模式(此时,底部会出现insert)
在命令模式下,按 :wq 保存退出,按 :q! 不保存退出
vi常用快捷键 (在命令模式下执行)
dd:删除光标所在行
yy:复制光标所在行到缓冲区
p:粘贴缓冲区中的内容
gg:光标回到文件第一行
GG:光标回到文件最后一行
^ :光标移动至当前行的行首
$ :光标移动至当前行的行尾
/关键字:按斜杠/键,可以输入想搜索的字符,然后确定进行搜索,如果第一次查找的关键字不是想要的,可以一直按n键往后查找到想要的关键字为止;
防火墙操作命令(centos7)
查看防火墙状态:systemctl status firewalld
让防火墙可用:systemctl anable firewalld
让防火墙不可用:systemctl disable firewalld
启动防火墙:systemctl start firewalld
关闭防火墙:systemctl stop firewalld
在实际公司里面不要这么做,我们自己测试为了方便可以直接关闭;
防火墙开放端口命令:
firewall-cmd --zone=public --add-port=3306/tcp --permanent# 添加多个端口
firewall-cmd --zone=public --add-port=8080-8088/tcp --permanent查看已被激活的 Zone 信息
firewall-cmd --get-active-zones
重新加载防火墙配置:firewall-cmd --reload
重启防火墙:systemctl restart firewalld
命令含义:
--zone #作用域:查看当前的区域:firewall-cmd --get-default-zone
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
取消删除端口开放:
firewall-cmd --permanent --zone=public --remove-port=3306/tcp
查询端口号8080 是否开启:
firewall-cmd --query-port=8080/tcp
查询有哪些端口是开启的:
firewall-cmd --list-port