-
常见的pc端操作系统:window Linux macOS
-
Linux的特点和优势
-
成本低
-
并非完全免费,服务收费
-
协议标准统一
-
技术标准层面、法律层面
-
高稳定和安全性
-
内核小,设计理念先进
-
网络应用丰富
-
-
常用的三种主流Linux版本
-
redhat
-
centOS
-
ubuntu
-
-
Linux的应用领域
-
因特网应用架构与网络服务(J2EE、.net等)
-
数据库服务器(mysql、oracle、DB2)
-
软件开发(java、c++、c)
-
-
Linux系统结构目录
-
/ 根目录
-
bin 系统可执行文件(多用于普通用户)
-
boot 引导目录
-
dev 设备管理目录
-
etc 配置文件目录
-
home 家目录
-
lib 库文件目录
-
mnt 光盘、优盘等外设挂载点目录
-
proc 存放虚幻文件目录
-
sbin 系统可执行文件目录(不多用于普通用户)
-
tmp 存放临时文件的目录
-
usr 用于存放所有命令、文档、程序的目录,一般正常操作过程中是不会被改变的.
-
var 可变文件目录
-
opt 用于存放可选的应用程序
-
-
Linux的常规安装步骤
-
先安装VMware Workstation(12的版本,用于搭建服务器)
-
其次安装centOS
-
-
Linux的常用命令
-
查看ip地址
-
命令 ip addr
-
命令 vi /etc/sysconfig/network-scripts/ifcfg-ens33(此以下修改虚拟机网络配置)
-
i进入insert模式修改onboot改为yes
-
退出insert模式
-
命令:wq!
-
重启网络服务 systemctl restart network
-
查看网络服务 systemctl status network
-
修改网络适配器 NAT改为桥接
-
重启网络服务 systemctl restart network
-
命令:ip addr
-
-
热热身的内容
-
上下键显示操作过的命令
-
tab键补全文件名以及目录名
-
cd 目录名: 表示进入目录
-
cd .. 表示会回到上一级目录
-
cd ../../ 表示会回到上两级目录
-
cd / 表示会回到根目录
-
cd ~ 表示家目录
-
cd - 表示上一次使用命令下的目录
-
pwd 显示当前目录路径
-
-
系统管理命令
-
logout 注销
-
reboot 重启
-
tty 查看终端
-
date 系统时间 date -s 01/13/2011 修改年月日 date -s 11:30:45 修改时间
-
shutdowm 关机
-
shutdown -h now 立即关机
-
shutdown -c 取消关机
-
shutdown +5 表示五分钟之后关机
-
shutdown 10:30 表示指定时间关机
-
shutdown -r now 表示l立刻关机并重启
-
shutdown -r 10:30 表示在指定时间时关机并重启
-
-
用户管理命令
-
用户
-
useradd+[-d]+[-u]+[-g]+[-s]+用户名→添加用户(必须要优先创建用户组名及组id),内部所拥有的参数如下:
-
-d 指定用户登录时的起始目录
-
-u 指定用户的用户id
-
-g 指定用户组名的id
-
-s 指定用户登录后的shell
-
-
passwd+用户名→为用户更换密码
-
usermod+[-d]+[-u]+[-g]+[-s]+用户名→修改用户参数
-
userdel+[-r]+用户名→删除用户 -r表示删除用户及其home目录(非脚本下无法一次性删除多个用户)
-
vi /etc/passwd 查看用户信息
-
t1(用户) : x(密码) : 1000(uid) : 1000(gid) ::/home(家目录) /t1:/bin/bash(shell类型)'
-
[t1 @ localhost ~ ] $(普通) 用户名 计算机名 家目录 用户类型 [root @ localhost ~ ] #(root)
-
-
vi /etc/shadow 查看密码信息
-
su username 切换到普通用户,su后面使用-,表示切换到新用户并且使用新用户的新环境
-
sudo root 切换到root用户
-
exit或logout或ctrl+d 可以退回到原来用户
-
-
用户组
-
groupadd+[-g]+用户组名→新建用户组 参数-g(指定组号) groupadd -g 1000 t1000
-
groupmod+[-g]+[-n]+新组名+原组名→ 同时修改组号和组名 groupmod -g 新组号 -n 新组名 原组名
-
groupdel+需要删除的组名→删除用户组 (如果用户组下有用户名跟其他文档,不可删除用户组)
-
vi /etc/group 查看用户组
-
-
-
目录管理命令
-
mkdir+/xx→ 创建绝对路径的目录 mkdir /test 表示在根目录下创建test目录
-
mkdir+xx/xx→ 创建相对路径的目录 mkdir test/test1 表示在test下创建test1目录
-
mkdir+-p+绝对路径(相对路径)→ 创建多级目录 mkdir -p test1/test2/test3 表示一次创建多级目录test1,test2,test3
-
rmdir+目录名→ 删除一个空目录 rmdir+-p 删除多级空目录 rmdir -p test1/test2/test3 表示删除多级目录
-
mv+源目录+新目录→ 修改目录 mv test test1 表示将test目录修改成test1
-
ls 显示当前目录下的文件和目录
-
-l 列表形式显示
-
-a 显示包括隐藏文件和目录
-
-A 不显示包括隐藏文件和目录
-
-R 显示目录的级联显示
-
-
touch 创建一个空白文本文件
-
touch a.txt表示创建一个a.txt的文件
-
touch -t 201903021610.30 myfile 更新文件时间
-
-
-
vi 命令
-
vi插入文本类命令
-
i 光标前插入 I光标的行首插入
-
a 光标后插入 A光标的行末插入
-
o 光标下一行插入 O光标上一行插入
-
r当前光标处替换(只能替换一次) R光标处替换,直到用户停止替换
-
-
vi光标位置类命令
-
:n n为1,就表示光标会出现在第一行的行首
-
n$ n为4时,表示从当前光标下移4行光标并位于行尾(包括当前光标)
-
0 表示当前光标的行首
-
$ 表示在当前光标的行尾
-
gg 表示在当前文档的第一行的行首
-
G 表示在当前文档的最后一行的行首
-
-
vi屏幕翻滚类命令
-
ctrl+u 文件首翻半屏
-
ctrl+d 文件尾翻半屏
-
ctrl+b 文件首翻一屏
-
ctrl+f 文件尾翻一屏
-
-
vi复制、删除、替换、查找、显示行号类命令
-
yy 表示复制一行 nyy表示复制n行(包括光标位置向下复制n行)
-
p 粘贴
-
dd 删除一行 ndd表示删除n行(包括光标位置向下删除n行)
-
x 表示删除当前光标下的字符.
-
:s/源文本/目标文本/g 全局替换 例 :s/User/user/g 注意:该替换表示的时光标所在行所有含有User的词都替换成user
-
:%s/源文本/目标文本/g 替换整个文档
-
:1,10 s/源文本/目标文本/g 表示1-10行内替换
-
/ 查找某个单词或字母 n表示下一个(小写)
-
:set nu 显示行号
-
:set nonu 不显示行号
-
-
vi 保存命令
-
q! 表示强制保存
-
wq!表示强制保存退出
-
-
-
关于文档编辑命令
-
sort+文件名 将文件内容排序,并显示在页面
-
wc+文件名 显示文件内容中的的行数、字数、字节数
-
wc -l 显示文件内容的行数
-
wc -w 显示文件内容的字数
-
wc -c 显示文件内容的字节数
-
-
cp+源文件+目的文件 进行目录与文件的拷贝 cp a.txt b.txt表示复制a.txt文件取名b.txt到同级目录下 cp a.txt test表示复制a.txt文件到test目录下
-
cp+-r 源目录+目的目录 进行目录的拷贝(包括目录内的文件)
-
cp -r test1 test2 如果test2目录不存在,那么使用该命令将会复制test1目录包括文件并取名为test2存放到同级目录下
-
cp -r test1 test3 如果test3目录存在,那么使用该命令将会复制test1到test3的目录下
-
-
rm+文件名或目录名(若删除的是级联目录,删的就是最后一个子目录) 删除文件或目录
-
rm -rf 强制删除目录或文件
-
rm -i 删除文件或目录给予确认提示
-
-
-
文件管理命令
-
cat+文件名 打开文件名,文件名可以是多个(一次显示完整文件,不可翻页)
-
more+文件名 打开文件名,同样文件名可以是多个(多个文件在使用-num与+num时,多个文件按照先后顺序进行显示),b向上翻,空格向下翻
-
-num 每页显示多少行内容 more -10 a.txt
-
+num 从多少行开始显示 more +10 a.txt
-
-
less +文件名 跟more类似
-
head+文件名 输出文件最前面几行数据(默认10行) 可以同时打开多个文件输出数据,多个文件按照先后顺序进行输出
-
head+-3+文件名 表示显示文件前面3行
-
tail+文件名 功能与head类似
-
tail+-2+文件名 表示显示文件最后两行
-
tac 1.txt 逆向输出文件内容
-
-
权限管理相关命令
-
chmod+[-R]+[u=rwx,g=rwx,o=rwx,a=rwx] 文件名或目录名→ 对文件或者目录设置权限 R表示递归设置权限
-
+添加权限 chmod u+w a.txt
-
-删除权限 chmod u-w a.txt
-
u(文件拥有者),g(组),o(其他用户),a(所有人)
-
-
chmod+[-R]+[u=7(4,2,1),g=(4,2,1),o=(4,2,1),a=(4,2,1)] 文件名或目录名 4表示读.2表示写,1表示执行,0表示没有权限
-
chown+[-R]+需要修改的用户+[:需要修改的组名]+当前用户所使用的文件名(或目录名) 可以修改文件所属的用户跟所属用户组,但是组合的时候用户跟组名没有空格,并且组名前需要加冒号 chown -R t1000:t1000 test表示对test目录本身以及以下所有目录及文件进行修改用户以及组名,如果不加R只能对文件进行修改所属组以及所属用户
-
chgrp+[-R]+需要修改的组名+当前用户所使用的文件名(或目录名) 只能修改文件(或目录)所属的用户组 chgrp -R t1000 test
-
-
文件的比较与文件类型命令
-
diff+文件1+文件2 3d2表示文件1比文件2多 3c3,4表示左边右边不同,具体在第3行跟第4行,以字符比较文件的不同
-
cmp+文件1+文件2 以字节方式比较不同
-
file+文件名 检测文件类型
-
-
操作命令的相关命令
-
whereis 查找命令所在路径和查找文档(man命令). whereis ls
-
which 查找命令所在路径及别名 which ls
-
alias 自定义别名命令 alias no='ls -l' 设置ls -l的别名no,使用命令no代替ls -l
-
unalias 取消自定义的别名命令 unalias no
-
-
系统设置命令
-
yum -y install net-tools 安装net-tools工具
-
yum -y remove net-tools 卸载net-tools工具
-
yum -y install zip unzip
-
-
网络通信命令
-
ifconfig 查看网卡地址(需要先安装net-tools工具)
-
hostname 查看主机名称
-
ping+ip地址 虚拟机与本机通信连接情况(虚拟机命令下+本机ip地址,本机命令下+虚拟机ip地址)
-
启动网卡 ifconfig eth0 up
-
禁用网卡 ifconfig eth0 down
-
-
文件进行匹配模式查找命令(grep)
-
grep+[-c]+[-n]+[-v]+[-i]+查找的操作符(包括字段,需要使用引号)+文件名 grep -c 'g' a.txt 表示从a.txt中查找字母g的数量
-
-c 表示显示匹配的计数
-
-n 表示显示匹配行及行号
-
-v 表示不包含匹配行的的所有行
-
-i 不区分大小写
-
参数组合
-
-
grep+"正则表达式"+文件名 grep -v "^$" 表示查找不包括空行
-
^[a-zA-Z0-9] 表示以任意字母数字开头 grep '^[g]' a.txt 在a.txt中查找以字母g开头的所有行
-
[a-zA-Z0-9]$ 表示以任意字母数字结尾 grep '[g]$' a.txt 在a.txt中查找以字母g结尾的所有行
-
[^a-zA-Z0-9] 表示不以任意字母数字 grep "[ ^ g ]" a.txt 在a.txt中查找不以g开头的所有行
-
-
grep+"正则表达式"+文件名+|+grep+"正则表达式" 使用管道|进行连接查找,可以结合-c或-n或-i或-v使用
-
grep+-r+test+/root/* 表示从root下查找单词为test的文件
-
grep+"o*"+文件名 表示会显示所有文件文本(着重会显示≥1个带有o的文本)
-
grep+"oo*"+文件名 表示会显示带有≥一个o的文件文本
-
grep+"..o"+文件名 表示会着重显示o前面有两个字符的文件文本
-
grep+"o\ {2 \ }"+文件名 表示出现2个o的文件文本
-
grep+"o\ {2,\ }"+文件名 表示出现≥2个o的文件文本
-
grep+"o\ {2,3\ }"+文件名 表示出现≥2个o≤3个o的文件文本
-
-
文件位置查找命令
-
find+路径+ -name+匹配模式 find / -name "*.txt"
-
find+路径+ -perm+权限参数 find / -perm 777 find / -perm u=rwx,o=rwx
-
find+路径+ -group+组名 find / -group t1000
-
find+路径+-user+用户主名 find / -user t1000
-
find+路径+ -mtime+ -n 表示查询更改文件n天以内的 find / -mtime -5
-
find+路径+ -mtime+ +n 表示查询更改文件n天以外的 find / -mtime +5
-
ln+-s+源文件(或目录)+链接到的文件(或目录) 创建链接文件(目录),不加-s表示硬链接 ln -s test test1表示将目录test链接到test1
-
find+路径+ -type+[b] [d] [c] [p] [l] [f]t 查找某一类型的文件 find / -type b
-
find+路径+ -type+[b] [d] [c] [p] [l] [f]+ -size(查找文件为n块的文件,如果n=1,表示小于1块,如果n=2,表示2块,带上c表示文件以字节计算,每块512字节) 查找某一类型具体大小的文件 find / -type d -size +10k
-
b 块设备文件
-
d 目录
-
c 字符设备文件
-
p 管道文件
-
l 符号链接文件
-
f 普通文件
-
-
find / -name *.txt -exec rm -rf {} \ 表示查找根目录下后缀名为.txt的文件,并删除
-
-
系统资源查看命令
-
top 查看系统CPU、内存使用情况等
-
top & 后台运行top
-
ps 查看系统进程
-
ps -ef | more 分页显示进程信息
-
ps -ef | grep 1190 显示进程信息并查看进程号为1190
-
kill -9 进程号 结束进程
-
free 查看内存情况
-
-
netstart an|grep 8080 查看端口号为8080
-
-
磁盘管理命令
-
df 查看磁盘使用情况
-
du 查看文件已有容量
-
-
备份压缩命令
-
zip+[-r]+自定义的zip文件名+需要打包目录或文件(保留原文件) zip file.zip test表示将test目录打包并取名file.zip -r表示递归压缩
-
unzip+zip文件名 解压 unzip file.zip 解压file文件
-
gzip+[-r]+文件名 压缩成gz文件(不保留源文件) gzip a.txt 将文件压缩成gz
-
gunzip+gz文件 解压 gunzip a.txt.gz 将a.txt.gz文件解压
-
tar+zcvf+自定义的.tar.gz文件+目录名 tar zcvf file.tar.gz test表示将test目录打包压缩并取名file.tar.gz
-
tar+zxvf+已经定义的.tar.gz文件+[-c]+[目录地址] tar zxvf file.tar.gz 表示将file.tar.gz文件解压 -c表示压缩的文件指定到需要的目录地址
-
-
试题额外命令
-
将文件a从一台linux机器拷贝到另外一台linux机器 scp+源文件+用户名@ip地址+:远程路径 scp a root@192.175.3.1:/root/
-
systemctl stop firewalld 关闭防火墙
-
systemctl disable firewalld 禁用防火墙
-
ps -ef | grep firewalld 查看防火墙进程
-
systemctl start firewalld 开启防火墙
-
systemctl status firewalld 查看防火墙状态
-
-
日期时间命令
-
cal 日历
-
cal 2011 查看2011年的日历
-
cal 03 2011 查看2011年3月的日历
-
-
date 日期
-
date 查看系统日期
-
date -s 01/13/2011 修改系统日期为2001年1月13日
-
date -s 10:00:04 修改系统时间为10点00分04秒
-
clock --systohc 将时间保存到硬盘
-
-
time sh myshell.sh 运行myshell.sh这个脚本所花的时间
-
wall hello 广播hello
-
-
系统信息查询
-
whoami 查看自己是谁
-
who am i 查看自己账户及登录信息
-
who 查看当前系统在线用户
-
last 查看这个月的用户登录信息
-
hostname 查看主机名
-
uname [-a] 列出系统信息,加上-a表示列出所有系统信息
-
id 查看自己以及所属组的信息
-
groups 查看自己属于哪些组
-
history 查看历史
-
history [数字n] 查看最后的n条数据
-
history | tail -10 显示最后10行历史
-
-
-
-
linux下安装zbox(在线编写用例)
-
使用fz文件上传ZenTaoPMS.9.7.stable.zbox_64.tar.gz至/opt目录下
-
linux/opt下解压文件 tar -zxvf ZenTaoPMS.9.7.stable.zbox_64.tar.gz
-
关闭防火墙 systemctl stop firewalld
-
禁用防火墙 systemctl disable firewalld
-
切换到zbox目录 cd zbox
-
执行zbox ./zbox start 关闭zbox可以使用./zbox stop
-
打开谷歌 输入linuxip地址,打开禅道系统(在线编写用例)
-
-
-
连接Linux服务器
-
PUTTY连接,(多用于操作命令),操作步骤如下:
-
在Host Name(or IP address)出输入连接虚拟机的ip地址.
-
设置字体change settings→windows→appearance→font
-
保存 change settings→选中default settings→save
-
-
fileZilla连接 (多用于window向Linux拖动文件)
-
选中文件下的机箱图标(站点管理器)
-
常规设置 主机(ip地址)、协议(SFTP-SSH...) 、输入用户名跟密码
-
-
虚拟机的网络适配器的网络间接模式
-
桥接模式 主机与虚拟机都可以访问外界
-
NAT模式 虚拟机需要借助主机访问外界
-
仅本机 虚拟机跟主机都不可以访问外界,两者相互联系.
-
-
linuxShell
-
Shell的输入输出
-
使用echo命令输出系统中SHELL echo $SHELL
-
echo命令输出系统中PATH变量的取值 echo $PATH
-
-
echo的常用功能: \c不换行 \f不进纸 \t跳格 \n换行
-
将转义字符生效 需要添加 -e
-
常用的特殊字符 双引号(" ") 反引号(``) 反斜线\
-
read命令从键盘或者文件的某一行文本中读入信息,并将其赋给一个变量.
-
如果只指定一个变量,read会把所有的输入赋给该变量
-
如果输入的是多个值的个数多个变量个数,多余的值会赋给最后一个变量
-
-
read读取的是一个变量,在输出变量的时候需要添加$符号
-
文件重定向
-
command>file 标准输出重定向到一个文件,错误仍然输出屏幕(如果文件中有内容直接替换)
-
command>>file 标准输出重定向到一个文件(如果文件中有内容直接追加)
-
command 1>file 标准输出重定向到一个文件
-
command 2>>file 标准错误重定向到一个文件(追加)
-
command>file 2>&1 标准输出和标准错误一起重定向到一个文件(替换)
-
command>>file 2>&1 标准输出和标准错误一起重定向到一个文件(追加)
-
command< file 1 >&file 2 以file1作为标准输入,file2作为标准输出
-
command<file 以file作为文件标准输入
-
-
Shell后台执行命令
-
crontab,
-
几个域如下:
-
第一列 分钟1~59
-
第二列 小时1~23
-
第三列 日1~31
-
第四列 月1~12
-
第五列 星期0~6(0表示星期天)
-
第六列 表示要运行的命令
-
-
说明一下任务的目的:
-
45 4 1,10,22 * * /apps/bin/backup.sh 表示在每月的1号10号22号的下午4点45分的执行
-
10 1 * * 6,0 /apps/bin/backup.sh 表示在周末和周六的1点10分的时候执行
-
-
创建一个crontab任务,要求每小时前五分钟每分钟输出一次 1,2,3,4,5 * * * * echo "hello"
-
-
at
-
首先没有at命令时,需要安装at yum -y install at
-
重启atd systemctl status atd(已经安装过后使用的无需重启)
-
设置at命令执行时间 at 11:30
-
设置at命令的内容,比如删除 rm -rf /root/log
-
显示设置at命令的信息 atq
-
查看当前单个任务 at -c id号
-
删除任务 at -r id号
-
-
&
-
-
系统变量
-
创建临时系统变量
-
创建变量 class="18"
-
输出临时变量值 echo $class
-
影响子shelll变量 export class
-
显示这个变量以及变量值 env | grep class
-
-
创建永久系统变量
-
打开profile vi /etc/profile
-
写入变量 class="20"
-
影响父shell变量 source /etc/profile
-
输出变量值 echo $class
-
影响子shell变量 export class
-
输出变量及变量值 env | grep class
-
-
-
用户变量
-
临时用户变量
-
创建变量 age=10
-
输出变量值 echo $age
-
输出变量及变量值 set | grep age
-
-
永久用户变量
-
打开.bash_profile vi .bash_profile
-
写入变量 age=11(可以写入只读变量 readonly age=20)
-
输出变量值 echo $age
-
影响父shell变量 source .bash_profile
-
输出变量及变量值 set | grep age
-
清除变量(系统变量同样) unset age
-
-
-
位置变量(属于只读变量)
-
打开文件并编辑(有就打开,没有就创建)
-
声明脚本 #!/bin/bash
-
声明脚本的名字 echo "The script name is:$0"
-
声明脚本的第1个参数 echo "The first parameter is:$1"
-
声明脚本的第2个参数 echo "The second parameter is:$2"
-
声明脚本的第3个参数 echo "The third parameter is:$3"
-
声明脚本的第4个参数 echo "The fourth parameter is:$4"
-
声明脚本的第5个参数 echo "The fifth parameter is:$5"
-
声明脚本的第6个参数 echo "The sixth parameter is:$6"
-
声明脚本的第7个参数 echo "The seventh parameter is:$7"
-
声明脚本的第8个参数 echo "The eighth parameter is:$8"
-
声明脚本的第9个参数 echo "The ninthparameter is:$9"
-
执行脚本,需要传入参数 sh would you like eat foot
-
-
向系统脚本传递参数
-
打开文件 vi testes/test
-
find / -name $1
-
./testes/test profile(参数profile,也就是$1)
-
-
特定变量(只读变量)
-
$# 传递到脚本的参数个数
-
$* 以一个单字符串的形式显示所有向脚本传递的参数,与位置变量不同,此项参数可超过9个
-
$$ 脚本运行的当前进程id号
-
$! 后台运行的最后一个进程的进程id号
-
$@ 与$*相同,但是使用时加引号,并在引导中返回每个参数
-
$- 显示shell使用的当前选项,与set命令功能相同
-
-
-
来源:https://www.cnblogs.com/wp950416/p/11907929.html