扁担学习Linux
Linux的目录结构
/ : linux的根目录
/bin : 存放系统命令的目录,所有用户均可执行
/sbin : 保存和系统环境设置相关的命令,只有超级用户可以使用,普通用户可以查看
/opt : 空文件,第三方安装目录
/etc : 存放
/home : 用户缺省宿主目录 即 普通用户家目录
/root : 存放root用户的相关文件,root用户的家目录,宿主目录,烧鸡用户
/tmp : 存放临时文件
/lib : 存放系统程序运行所需的共享库
/usr : 系统软件共享资源目录 存放所有命令、库、手册页
/var : 动态数据保存位置 包含经常发生变动的文件、如邮件、日志文件、计划任务等
/sys : 虚拟文件系统,数据保存在内存中,主要保存与内存相关信息
/lost :数据备份目录
/srv : 服务数据目录
/mnt : 挂载目录 零食文件系统的安装点,默认挂载光驱和软驱的目录
/misc : 挂载目录 挂载NFS服务
常用的基本命令
cd
cd 文件路径
./ 当前文件
.. / 当前文件的上级目录
- 上一次操作的目录
~ 家目录
/ 根目录
pwd
pwd
ls
ls -[ ] 文件或目录
-a 显示所有的文明,包括隐藏文件 特殊目录 . 和 .. . 代表 当前目录 .. 代表上级目录
-l 显示目录或文件的详细信息 简写 ll
-R 递归显示 目录下的所有目录或文件
-r 逆序排序
-t 按修改时间降序排序
mkdir
mkdir [ -p] 文件路径
-p 代表可以创建多级目录
mkdir 文件夹1 文件夹2 创建多个平级目录 文件目录名之间 用 空格 分开
touch
touch 文件名1 ( 文件名2) 可同时创建多个文件
echo
echo 'hello' 打印在控制台上
echo 'hello' > 文件名 覆盖写
echo 'hello' >> 文件名 追加写
> 或 >> 重定向 将左边命令的标准( 错误) 输出,重定向到右边的指定的文件
ln
ln -s 源文件 目标地 --> 软连接
ln 源文件 目标地 --> 硬连接
源文件 需要写成绝对路径
ln -s
当源文件被删除时,软连接会报错
当源文件修改时,软连接也会被修改
ln
当源文件删除的时候,不会影响到硬链接
当源文件修改时,硬链接也会被修改
rm
rm [ -rf] 文件路径
-r 删除目录 同时删除该目录下的所有文件
-f 强制删除文件或目录 即使被删除属性设置为 只读 也会被删除 无需确认
cp
cp [ -rp] 源路径 目标路径
-r 递归处理
-p 保留文件属性
在cp 目标路径有重名的 会提示是否覆盖
可以在目标路径后更改文件名
mv
mv 源文件路径 目标文件路径
可重命名
cat
cat [ ] 文件名
-A 显示所有内容 包括隐藏字符
-n 显示行号
more
more 文件名
空格或f 显示下一页
enter 显示下一行
q或Q退出
less
less [ ] 文件
q 退出
[ ] :
-N 显示行号 写在参数中
d 后翻半页
b 后翻一页
u 向前翻半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行
gg 文件首页
G 文件尾
/关键字 ( n查找下一个)
[ pageup] 向上一页
[ pagedown] 向下一页
head
head -n ( 行数) 文件名
eg: head -12 文件名
head -n 12 文件名
tail
tail -n ( 行数) 文件名
eg:有一份 1000 行的文件,只要 500 ~ 600 行的数据
tail -n 500 文件名 | head -n 100
find
find 搜索路径 匹配条件
eg: find /etc -name 'java'
* 匹配所有 0 或多
? 匹配单个字符
模糊匹配的条件,建议使用单引号或双引号括起来。如果*被转义,可使用 单双引号括住查询条件
以block为单位 一个block = 512b 1k = 2block
+大于 -小于 不写等于
eg: find /etc -size -2048
f二进制文件 l软连接文件 d目录 c字符文件
eg: find /etc -type f
grep
grep [ ] 'str' 文件名
-c 输出匹配的行的次数,不是出现的次数,是以行为单位
-i 忽略大小写
-n 显示匹配的行级行号
-v 显示不包含str的所有行
gzip
gzip 文件 -d 将压缩文件解压
解压使用 gzip -d 或者 gunzip
tar
tar -zcvf 压缩后的文件路径/文件名.tar/gz 源文件
tar -zxvf 压缩包 解压后的文件路径/文件名
-z 以gzip命令压缩/解压缩
-c 建立一个压缩文件的参数指令( create) 后缀是.tar
-x 解开一个压缩文件的参数指令( extract)
-j 以bzip2命令压缩/解压缩
-f 指定文件名
chmod
chmod 777 文件名
文件的权限有
r 可读 4
w 可写 2
x 可执行 1
rwx
eg:111 可读可写可执行 777
vi编辑
对文本进行编辑
vi 文件路径/文件名
/ str 查找str 按n往下查找
:%s/old/new/g %s 全文查找 将old 替换为 new
:n1,n2s/old/new/g 在 n1行到n2行之间查找 old 替换为 new
yy 复制光标当前行
dd 剪切光标当前行
nyy 复制光表当前行+向下n-1 行
ndd 剪切光标当前行+向下n-1 行
p 在光标所在行的下一行粘贴
:q! 强制退出
:wq! 保存并强制退出
:set nu 显示行号
:set nonu 不显示行号
n G 使光标跳转到 第n行
G 使光标跳转到最后一行
u 撤销操作
gg 跳转到首行
i 光标所在前插入
I 行首插入
a 光标的后面
A 光标所在行末
o 下一行
O 上一行
pstree
pstree
-p 显示进程pid
-u 显示进程的所属用户
yum -y install psmisc
netstat
netstat -nltp | grep 端口号/进程名
查看所有的tcp进程 | 过滤出想要的 进程
kill
kill -9 进程号
-9 强制杀死
修改主机名
vi /etc/hostname
系统命令
systemctl start mysqld
systemctl restart mysqld
systemctl enable mysqld
systemctl stop mysqld
systemctl disable mysql
定时任务命令
# crontab -e
文件格式
minute hour day_of_month month_of_year day_of_week commands
分 时 天 月 周几 要执行的命令
0-59 0-23 1-31 1-12 0-6
* * * * *
必须全部都写,不知道具体的需要用 * 表示
每个时间段都可以用多个值 ,多个值 不连续要用 , 连续需要用 -连接
命令应该给出绝对路径
用户必须具备运行所对应的命令或程序的权限
crontab -e -r (移除定时任务)
进程类命令
ps
ps -
a:显示所有用户进程
u:显示用户名和启动时间
x:显示没有终端控制的进程
e:显示所有进程,包括没有终端控制的进程
l:长格式显示
eg:
ps aux
ps -le
nohup 表示不要挂起
1 > /dve/null 2 >&1 &
1 > /dev/null 表示程序的标准输出重定向到 /dev/null 文件
2 >&1 表示将程序的标准错误输出 重定向到 标准输出通道
& 表示将程序放在后台执行
jobs
jobs 查看当前挂在后台的程序
fg job_id 将指定的job 放回前台继续运行
远程操控命令
scp
scp -r 本地文件 要复制到那个机器/目录
ssh 主机名
ssh note01
配置网络
网络配置:
查看vmnet8 的net设置(管理员权限)
虚拟机配置
1.打开虚拟机网卡
cd /etc/sysconfig/network-scripts
vi ifcfg-ens33
2.修改配置
BOOTPROTO=dhcp 修改为 BOOTPROTO=static
ONBOOT=NO 修改为 ONBOOT=yes
再去在文件的下方另起一行 添加以下内容
IPADDR=192.168.71.101
NETMASK=255.255.255.0
GATEWAY=192.168.71.2
DNS1=192.168.71.2
强制保存并退出
:wq!
3. 重启虚拟机
reboot 或者
systemctl restart network
4. 测试是否可以连接外网
ping www.baidu.com
5.测试本机和虚拟机是否可以相互ping 通
查看虚拟交换机的net设置
配置本机的vmnet8的Ipv4
配置jdk
1 、创建 /opt/apps 用来存放安装的第三方软件
2 、将 jdk 压缩包加载到 /opt/apps目录下
3 、将 jdk 压缩包解压到当前文件夹下
tar -zxvf jdk-8u212-linux-x64.tar.gz jdk1.8
4 、配置jdk的环境变量
4.1 vi /ect/profile
添加如下内容:
export JAVA_HOME = /opt/apps/jdk1.8
export PATH = $PATH : $JAVA_HOME /bin
4.2 :wq! 强制保存并退出
4.3 重新加载 /etc/profile
source /etc/profile
5 、 测试jdk是否配置成功
查看jdk版本( 未安装成功则不会显示)
java -version
yum
yum -y install wget
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y update
yum clean all
yum makecache
yum -y update
reboot
yum -y install 下载的名
国内的yum源
阿里yum源:http://mirrors.aliyun.com/repo/
网易yum源: http://mirrors.163.com/.help/
搜狐yum源:http://mirrors.sohu.com/
基本使用
yum list
yum search 关键字
yum info 关键字
yum -y install 包名
yum -y update yum
yum check-update
yum -y remove 包名
yum --help 、 man yum
yum clean all
yum repolist
yum deplist httpd
安装mysql8.0
csdn
设置免密登录
1 . 在第一台机器上生成密钥对
ssh-keygen
2 . 将生成好的公钥注册给目标机器
ssh-copy-id note01
ssh-copy-id note02
ssh-copy-id note03
3 .在其他机器上重复执行以上操作
设置域名和主机映射
将虚拟机的 ip 和 机名 添加
eg:
192.168 .71.101 note01
192.168 .71.102 note02
192.168 .71.103 note03
添加集群中所有机器的( 包括自己本身)
ip 机名
eg:
192.168 .71.101 note01
192.168 .71.102 note02
192.168 .71.103 note03
yum repolist
列出一个包所有依赖的包
yum deplist httpd
### 安装mysql8.0
```shell
csdn
设置免密登录
1 . 在第一台机器上生成密钥对
ssh-keygen
2 . 将生成好的公钥注册给目标机器
ssh-copy-id note01
ssh-copy-id note02
ssh-copy-id note03
3 .在其他机器上重复执行以上操作
设置域名和主机映射
将虚拟机的 ip 和 机名 添加
eg:
192.168 .71.101 note01
192.168 .71.102 note02
192.168 .71.103 note03
添加集群中所有机器的( 包括自己本身)
ip 机名
eg:
192.168 .71.101 note01
192.168 .71.102 note02
192.168 .71.103 note03