Linux

视频教程:https://www.bilibili.com/video/BV1kq4y1Z7Df?p=16&spm_id_from=pageDriver

[TCP/IP] : https://blog.csdn.net/qq_38410730/article/details/80980749

ssh命令

ssh user@host
-p : 端口号

网络的连接模式:

桥接模式: 为虚拟机分配一个IP地址,等同于局域网中的一台主机,与原主机地位相同,可相互访问。(缺点:容易出现IP冲突)
网络地址转化(NAT): 通过宿主机器所在网络进行访问,(无法与局域网中的其它主机交流。)

配置网络虚拟信息

error: vi /etc/sysconfig/network-scripts/ifcfg-ens33 no such file or directory(vi后存在空格)
vi为Linux中的内置文本编辑器,用法为 "vi filename" ,此时键盘上的按键并非作为字符输入,而是作为命令。
键盘方向键移动光标,“i”切换到编辑模式,“ESC”返回到命令行模式,直接输入“:wq”保存并退出。
vi命令详解: https://www.cnblogs.com/mahang/archive/2011/09/01/2161672.html

网络配置结果
IPADDR = 192.168.174.100
NETMASK = 255.255.255.0
GATEWAY = 192.168.174.2
DNS1 = 114.114.114.114

systemctl restrat network.service 重启网络服务以刷新。
systemctl stop firewalld 本次服务内关闭防火墙功能
systemctl disable firewalld 禁用防火墙
systemctl status firewalld 查看防火墙状态

解除软件安装限制

vi etc/selinux/config将其中的SELINUX的值改为disabled

关闭虚拟机

poweroff或者shutdown -h now
或者点击VMware的菜单界面选择挂起或关机(挂起会保存当前状态)

拍摄虚拟机快照以及克隆虚拟机

快照:对当前虚拟机的状态进行保存备份,可以选择转到快照从而将虚拟机回复到快照拍摄时的状态。(只能在虚拟机关闭的状态下使用)
再VMware菜单界面右键选择虚拟机,选在快照中的快照管理器拍摄快照或者转到原有的快照。

克隆分为链接克隆和完整克隆,链接克隆只克隆更改的部分。

Linux命令

命令与参数中间需要空格隔开,且命令需要区分大小写。
type 'command' : 查看命令的类型
help 'command' : 查看内置命令的帮助文档
man 'command' : 查看外部命令的帮助文档

系统指令

whereis : 查询命令文件所在位置
file : 查询文件类型
who : 查询当前在线用户
whoami : 查看当前登录的账户(我是谁)
pwd : 查看当前所在文件位置(我在哪)
uname -a : 查看Linux内核信息
echo : 打印语句(类似print)
clear : 清屏
history : 显示历史命令清单(键盘上下键显示的内容)
-c : 清空历史命令

特殊符号

. : 用于文件名表示该文件为隐藏文件;也可指向当前目录
.. :指向上一层目录
$ : 变量符号($name 表明name为变量,实际使用时为name变量所指的真实值)

  • :通配符
    ~ :当前用户的家目录(root用户的家目录为系统根目录,其余用户为/home/用户名)
    / :整个Linux系统的根目录
  • :作用于命令的参数前,当参数是缩写时为'-',当参数是英文单词时为'--'

Linux中的二级目录

bin : 一般用于存放可执行文件
sbin : 管理人员可用的执行文件或命令
boot : 引导分区
dev : 设备信息
etc : 配置文件
home : 普通用户的家目录
lib : 执行文件所需的类的库 lib64
mnt : 挂载时常用目录
opt : 默认软件安装目录
proc : 进程信息
root : root用户的家目录
run : 存放系统运行时的常用变量
srv : 系统启动时所需要提取的数据
sys : 系统的内核信息
tmp : 存放临时文件(关机重启后可能被删除)
var : 存放临时文件(与tmp类似,但重启后仍然存在),通常存放各种日志文件
usr : 用户共享区域

文件操作命令

cd : 改变当前工作目录(cd filename 相对路径 cd/filename 绝对路径)
ls : 显示出指定文件夹下的所有文件
ll : 相当于 ls -l ,显示文件详细信息。
-rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc
'-'开头为文件,'d'开头为文件夹,'l'开头为链接(即快捷方式)
r表示可读,w表示可写,x表示可执行,没3个字符为一组。
rw-表示可读可写不可执行,代表所有者u的权限
r--表示只可读,代表所属组g(组为具有相同权限的用户分类)的权限;
r--表示其余分组的权限。
第一个root表示该文件的所有者u,第二个root表示该文件的所属组g(这里表示跟root同属一个组的用户)
176单位为byte,表示文件大小。 Dec 29 2013 为文件最后修改日期。 .bashrc表示文件名,且该文件为隐藏文件
mkdir : 创建文件夹。
-p 同时创建多级文件(mkdir -p aaa/bbb/ccc 同时创建三个文件夹)
rm : 删除文件,默认情况下不删除文件夹。
(-d 删除空的文件夹, -r 删除文件夹以及文件夹中的所有文件,-f 无视询问同时强行删除)
rmdir : 删除空的文件夹
cp filename target_file : 复制文件到目标目录里。
-r 逐级复制文件夹中的文件
mv : 移动文件,用法与cp类似;对文件重命名 mv old_name new_name
touch filename : 如果filename不存在则创建一个文件
stat : 查看文件属性
ln : 创建文件链接,与源文件属于同一个文件(硬链接,可用于防止误删) ln source_file link_name
-s : 软链接,与源文件不是同一个文件
cat : 将文件内容从头到尾完整的展示
tac : 将文件内容从尾到头展示
more : 将文件内容一页一页的展示
输入键盘上的'h' 即help,显示翻页操作; 'q'推出; 'b'上一页; 回车键下一行;空格键下一页
head -numb : 显示文件前几行内容,numb为所需要显示的行数
tail -numb : 与head作用相反
tail -f filename : 监听文件的数据变化,得到文件末尾新增加的数据。(监听文件的inode,当文件被删除后停止)
tail -F filename : 功能同上。(监听文件名,文件被删除后若重新创建一个相同文件名的文件,监听仍然继续)
head -numb1 | tail -numb2 : 文件中前numb1行的倒数numb2行
find dir -name target : 在dir中查找target

vi

vi filename : 打开文件
vi +numb filename : 打开文件并定位到numb行。若numb为空(vi + filename)定位到最后一行
vi +/str filename : 打开文件并定位到第一个str处,按'n'跳转到下一个str(str为所要查找的字符串)
总共有三种模式:
编辑模式:键盘上的每个按键都属于一个命令。
(':'切换到命令行模式;切换到输入模式:'i'光标前方插入;'a'光标后方插入;'I'行首插入;'A'行未插入;'o'下一行插入;'O'上一行插入)
输入模式:可以在文件中进行输入或修改。
命令行(末行)模式:直接对文件输入特定命令

常用编辑模式指令:

'numb' + gg : 跳转到第numb行
G : 跳转到最后一样
'numb' + dd : 从光标开始删除numb行
w : 跳转到下一个单词
'numb' + dw : 删除光标后的单词
'numb' + yy : 从光标处开始复制numb行
'numb' + yw : 复制numb个单词
p : 粘贴
'numb' + x :剪切
'numb' + r : 替代
u : 撤销(类似于ctrl + z)
. : 回退(类似于ctrl + y)
hjkl : 上下左右移动光标
ZZ : 保存并推出

常用命令行模式命令

:q : 退出
:q! 强制退出且不保存
:w : 保存
:wq : 保存并推出
:set nu : 显示行号
:set nonu : 关闭行号
😕 + 'str' : 查找str所在位置
😒/str1/str2(/g) : 将光标当前行的str1替换成str2(末尾有/g则整行全部的str1替换,没有则只替换第一个)
:g/str1/s//str2/g : 将全部的str1替换成str2(s后存在两个/)

系统间的数据传输

Linux与Windows

rz : 选择将windows上的文件上传到linux
sz + filename : 将Linux的文件传输到windows

Linux与Linux

scp (-r) 源文件名 目标ip地址:存放路径 : 将文件从一个Linux传到另一个Linux上(-r 为传输文件夹)

查看存储空间信息

df -h : 查看系统存储空间使用情况
du -h --max-depth=1 + filename : 查看文件内存大小(max-depth为深度,即该文件的子文件深度)

文件压缩与解压缩

tar格式

tar -zxvf filename : 解压(通常文件名结尾为tar.gz)
zx:解压 v:过程 f:文件
tar -zcf 新文件名 源文件名 :压缩,

zip格式

zip -r 新文件名 源文件 : 压缩
unzip 文件名 : 解压

网络相关命令

ifconfig : 查看当前网卡配置信息
netstat : 查看当前网络状态信息
-anp : 端口信息 -r 核心路由表
ping + 'ipaddr' : 查看与ipaddr是否联通
telnet + 'ipaddr' + 端口号 : 查看与端口是否联通

时间同步

date -s + 'time' : 设置Linxue系统时间
ntpdate + 'IPaddr' : 将该Linux系统的时间与'IPaddr'的时间同步。'IPaddr'服务器需要打开ntp服务: service ntpd start
ntpdate cn.ntp.org.cn : 自动同步国内常用服务器时间

用户管理

useradd + 'username' : 添加新用户(只能由管理员操作)
passwd + 'username' : 为username用户设置密码
userdel -r + 'username' : 删除用户
su + 'username' : 切换账户(exit退出并返回)
创建的用户根目录均在 /home/用户名
可以查看 /home 文件夹下的文件数目查看已注册的用户

groupadd + 'group_name' : 创建组
groupdel + 'group_name' : 删除组
groups + 'username': 查看用户所在组

用户权限管理

chown + 'user' + 'file' : 将file的拥有者更改为user
chmod + 'mode' + 'file' : 更改文件权限
'mode' : [ugoa][+ - =][rwxXst]

管道

| : 将前方获得的数据交给后方操作
cat file | grep 'str' : 将file文件中的内容传输给管道后方,并筛选处出其中含有str的数据项

重定向

: 将输出的数据重定向(覆盖)

: (追加)
1 : 正确输出,可省略。无视错误输出。 位于 > 前方
2 : 错误输出。无视正确输出。
ll /opt/asd 2 >> test
2>&1 : 无论正确或错误输出。位于最后方。

数据黑洞 /dev/null

进程信息

ps -ef : 显示进程信息(UID为用户ID,PID为进程ID,PPID为父进程ID)
ps -ef | grep 'str'
ps -aux : 显示进程所有信息
top : 显示服务器内存使用情况
kill -9 'PID' : 结束进程

后台进程

& : 在命令的最后加上 & 即可将该进程改编成后台进程。
nohup : 在命令开头添加nohup,将后台进程设置为无法被挂起。
jobs : 查看当前正在运行的后台进程。
ctrl z :将一个正在前台运行的进程转换为后台进程。
fg %'jobnum' : 将后台进程转化为前台进程
bg %'jobnum' :将挂起的后台进程继续运行
kill %'jobnum' : 杀死后台进程
ctrl c : 关闭前台进程

jobnum为jobs输出的后台进程序号

安装指令

yum install 'software' -y : 安装软件(部分情况需要更换yum源)
yum search 'software' : 查询软件或指令所需安装包
yum info 'software' : 查询软件信息

文件分割

cut -d'char' -f1,2,3 'filename' : 对filename中的数据以'char'进行分割(''不可省略),取第1,2,3列
sort -t 'char' -k1 'filename' : 对filename中的数据以'char'进行分割,并按照第一列进行排序
-r : 逆序 -n : 按照数字大小排序(默认为字符串排序)
wc 'filename' : 对文件中的字符进行统计(返回行数、单词数、字符数 即line word char)word以空格最为区分

文件内容查找

grep + 'str' + 'filename' : 查找文件中包含str的项(filename可以不止一个)
| grep 'str' : 在管道中的运用

shell语言

https://www.runoob.com/linux/linux-shell.html
shell语言是Linux中的一种命令语言,也是程序设计语言,便于用户与内核交流。通常默认为sh
| #! /bin/bash 指定解释该脚本文件的shell程序,#!为shabang
脚本文件通常为.sh格式

shell语言中需要注意空格,多出空格或者缺少空格都会导致脚本无法运行。

转义字符 \

执行脚本

1、直接输入脚本文件的路径(绝对路径或相对路径)
2、sh + 'filename' (执行脚本文件时会新开一个进程,需要注意环境变量的使用范围)
3、source + 'filename' (并不会新开一个进程)
export 'var' : 变量var能够传递给子进程使用

变量

x = "abcd" ""可以省略
readonly x 将x设置为只读变量,无法对其进行更改
unset x 删除变量 x
echo \({x} 输出abcd,\)为调用变量本身的值
echo $x 等价于上式,将{}省略
变量 https://www.runoob.com/linux/linux-shell-variable.html

字符串

str1 = "hello word" 双引号或单引号都可以,包含空格的字符串必须用引号。
str2 = "hello $str1" 输出hello hello word (双引号能够将其中的变量、转义字符等进行替换)
str3 = 'hello $str1' 输出hello $str1,单引号内的所有字符都会原封不动的输出
echo ${#str1} 输出字符串长度

数组

仅支持一维数组,数组大小并无限制,超出后也没有错误提示
array={var1 var2 var3 ...} 括号来表示数组,数组元素之间用空格隔开(数组元素若为字符串,需要引号)
x=\({array[i]} 获取数组中的一个元素,i超过数组长度时返回空值。 \){array[@]} 获取数组中的所有元素
${#array[@]} 获取数组的长度
https://www.runoob.com/linux/linux-shell-array.html

注释

单行注释 : #
多行注释 : :<<str ... str (其中str为任意字符或字符串,通常为EOF,中间的内容均会被省略)

参数传递

./test.sh var1 var2 ... 直接在执行文件后输入需要传入文件的参数
在文件中使用 $0 $1 $2 $3 ...调用参数,其中 $0 为文件名

特殊参数(实际两个符号间并无空格):
$ # : 传递参数的长度
$ * : 以一个字符串的形式显示所有传入的参数
$ $ : 脚本运行时的进程ID
$ ? : 显示最后命令的退出状态,0表示没有错误。(即获取返回值)
$ 0 : 文件名

传递参数 https://www.runoob.com/linux/linux-shell-passing-arguments.html

运算符

https://www.runoob.com/linux/linux-shell-basic-operators.html

test命令

test 用于判断某个条件是否成立
https://www.runoob.com/linux/linux-shell-test.html

echo命令

https://www.runoob.com/linux/linux-shell-echo.html

printf命令

https://www.runoob.com/linux/linux-shell-printf.html

流程控制

https://www.runoob.com/linux/linux-shell-process-control.html

函数

https://www.runoob.com/linux/linux-shell-func.html

重定向

https://www.runoob.com/linux/linux-shell-io-redirections.html

Linux自启动服务

在系统启动时,需要运行一些引导程序,其存放在 /etc/rc.d中。
根据不同等级分为rc1.d rc2.d ... rc6.d(常用的多用户为rc3.d,图形界面为rc5.d)
rc.local为通用程序,如果需要使用需将其改为可执行文件,系统启动时将自动执行该文件。

在系统启动时需要执行的脚本文件路径写入rc.local中。
需要确保脚本文件存储的位置不会因为服务器的关机而被删除。

Linux定时任务

在Linux中可以通过crond设置定时执行任务。
systemctl status crond.service : 查看crond服务的状态

crontab -e : 添加任务,编辑当前用户的任务列表
直接在该窗口中输入时间以及所需要执行的任务。
格式: 分 时 日 月 周 命令
其中 * 代表任意时;- 代表时间段; , 代表并列时间; /num 表示每隔num的时间。

systemctl restart crond.service : 重启服务,使配置生效

crontab -l : 查看当前的定时任务
crontab -r : 清除任务

posted @ 2021-09-26 13:21  tjll  阅读(145)  评论(0编辑  收藏  举报