linux基础篇
1.删除虚拟机:
右键虚拟机的标签,选择管理,选择从磁盘中删除
2.内存、硬盘
机硬硬盘—容量大—读写慢—价格便宜
固态硬盘—容量小—读写快—价格昂贵
电源:在生产环境中,服务器都是使用AB双电源线路
3.服务器
服务器就是一台计算机,通常是指在计算机网络中,一个管理资源且能够为用户提供服务的计算机。
通常分为这几类服务器:
文件服务器:图片网页文件,视频文件的展示
数据服务器:提供数据读写的机器
应用程序服务器:开发应用程序的运行机器
云服务器:云服务器操作更方便,更安全,阿里云,腾讯云,性价比高
4.什么是操作系统?
操作系统是人与计算机硬件交互的中介
用户输入linux指令---发送给翻译官(shell壳,bash解释器--shell壳把用户的ls指令翻译成了机器码(列出文件夹中的内容)--计算机硬件识别机器码,执行动作—输出结果到屏幕。
操作系统的作用是管理和控制计算机中的硬件和各种软件资源,比如cpu的使用率,检测内存的使用情况,系统磁盘剩余空间。
4.什么是linux?
它是一套开放源代码,(在互联网上可找到源代码)可以自由传播。
5.linux远程连接
1.确保linux配置了正确的IP地址
命令:ip addr show 查看ip信息
2.安装好xshell软件,在物理机下载好最新版的xshell软件,新建连接,双击连接—接受协议--输入用户名和密码
3.使用ssh命令远程连接
命令:ssh? root@192.168.1.180
创建一个文件:你好.txt
whoami:显示当前主机名
linux的根目录是? ‘/’
win和linux区别如下:
查看根目录下的文件:
mkdir:创建文件夹
创建多个文件夹:mkdir {1,2,3}
创建多级文件夹:mkdir -p ./a/b/c
创建连续的多个文件夹:mkdir a{1..10}
删除非空文件(夹):rm -rf 文件名
删除多个文件:rm 文件名1 ?文件名2...
删除空文件夹 rmdir文件名
创建普通文件:touch 文件名
修改文件的创建时间:touch -t 10220203 文件名
修改a1的创建时间为10月22号2点3分
查看详细时间:ls -l --full-time
复制文件(不改变文件名):cp 源文件 ?目标文件地址
复制文件(改变文件名)cp 原文件
复制多个文件:
复制整个文件夹内容 :要加上 -r
加上-p,复制且保持文件属性不变:cp ?-p ?a1.txt ?aa.txt
加上? -i 提示是覆盖已存在的文件:cp ?-i ?a.txt ?a1.txt
加上 ?-f 强制覆盖
mv 移动文件:mv ?./a/a*? ./b
将所有以a开头命名的文件都移动b里面
启命令:reboot shutdown -r init
注销命令:logout
关机命令:halt shutdown -h init
显示当前操作系统和机器的信息: uname
ctrl +c? 取消当前操作
ctrl +l? 清屏
ctrl +d? 退出当前账户
ctrl +a? 光标移到行首
ctrl +e? 光标移到行尾
ctrl +u? 删除光标到行首的内容
在root权限下安装vim记事本:yum? install? vim? -y
vim? 文件名 : 打开文件
输入 ?i 进入编辑模式
按下esc 推出编辑
此时输入冒号,进入底线命令模式,然后输入 :wq! 强制写入文件内容且退出vim
:q!? 不保存直接退出
cat? 文件名 :查看文件内容
- 光标移到末尾 G
- 光标移到开头gg
- 粘贴复制:
- 复制一行 yy 复制 n行 nyy
- 粘贴 p
- 撤销:
- 撤销操作 u 向上一步 . 重复上一次操作
- 查找:
- 查找/string define \ 转义字符 查找“/bin/bash” /\/bin\/bash
- 在vim 中一般认为输入与编辑是两个概念。
- 编辑是在命令模式下进行的,先利用命令移动光标来定位到要进行编辑的地方,然后再使用相应的命令进行编辑;而输入是在插入模式下进行的。
- 在命令模式下常用的编辑命令:
- dd 删除光标所在的行。
- r 修改光标所在字符,r 后是要修正的字符。
- R 进入替换状态,输入的文本会覆盖原先的资料。
- s 删除光标所在字符,并进入输入模式。
- S 删除光标所在的行,并进入输入模式。
- cc 修改整行文字。
- u 撤消上一次操作。
- . 重复上一次操作。
将1.txt 文件中的内容写入到2.txt 文件里面
>? 是覆盖写入
cat 1.txt? >2.txt
>>? 是追加写入
cat? 1.txt? >>2.txt
显示行号输出:-n
cat -n 2.txt
格式化输出:xargs? -n? 4? <? 1.txt
一行输出4个字符,输出多行(源文件中每个字符需要用空格隔开)
重定向写入文件:cat? >>文件名 ?<<EOF
对所有行显示行号:-n?
对非空行显示行号:-b
同时显示多个文件:
将两个文件合并:cat? 1.txt? 2.txt? >./3.txt
清空文件:>2.txt
过滤输出的内容:cat? 1.txt ?|? grep “无”
?
分屏显示文件内容:more 文件名 ?
按下回车键下一行
空格 滚动一个屏大小
=显示当前行号
q 退出
查看前面5行 :head -5 文件名
head 默认显示10行
tail -3 文件名 :显示后3行
echo 追加
head ?-c ?5 文件名 :输出文件中5个字符
查找命令路径:which? 命令
语法:
tar(选项)(参数)
-A 或 --catenate:新增文件到以存在的备份文件;
-B:设置区块大小;
-c 或--create: 建立新的备份文件;
-C<目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-d:记录文件的差别;
-x 或 --extract或 --get: 从备份文件中还原文件;
-t 或 --list: 列出备份文件的内容;
-z或 --gzip或--ungzip:通过gzip指令处理备份文件;
-Z 或 --compress或--uncompress: 通过(compress指令处理备份文件),
-f<备份文件>或 --file=<备份文件>:指定备份文件;
-v或 --verbose:显示指令执行过程;
-r:添加文件到已经压缩的文件;
-u:? 添加改变了和现有的文件到已经存在的压缩文件;
-j:支持bz土p2解压文件,
-v? :显示操作过程,
-l: 文件系统边界设置;
-k:? 保留原有文件不覆盖;
-m:保留文件不被盖;
-w? :确认压缩文件的正确性;
将 3.txt 创建压缩:tar? -czvf ?e.tar.gz? ./3.txt
Create zip verbose(详细)file
将1.txt 和2.txt 压缩成12.tar.gz: ?tar ?-czvf? 12.tar.gz? ./*
或者:tar ?-czvf ?12.tar.gz ?1.txt ?2.txt
查看12.tar.gz里面的文件:tar? -ztvf ?12.tar.gz
从压缩文件中单独找出1.txt 并解压缩: ?tar? -zxvf? 12.tar.gz? 1.txt
将解压获得文件放在a文件夹里面:tar? -zxvf? 12.tar.gz? -C? ./a
为 1.txt 建立一个软链接 11.txt
ln -s 1.txt 11.txt
压缩源文件而不是它的软链接:tar? -zchf? k.tar.gz? ./11.txt
gzip 压缩命令:
查看a.txt.gz 文件中包含什么:
zip 压缩 r.txt 为 ra.zip
unzip 解压缩:
passwd 更改用户密码:
id? 用户名:查看用户id
切换用户:su? -? 用户名
创建新的组:groupadd? myhome
查看新的组:tail etc/group
usermod? 命令:
批量更改账户密码:chpasswd
用户名1:密码
用户名2:密码
ctrl+d: 结束更改
显示当前登录的用户:w|cat
?cat ?/etc/passwd查看所有的用户信息
- 要求创建用户puyy uid 为1500
- [root@centos ~]# useradd -u 1500 puyy
- 创建用户 alex 默认属于 puyy组 同时属于lcy组
- [root@centos ~]# useradd alex -g puyy -G lcy[lc1]?
- 创建用户jery 无法登录 ,家目录为/var/jery
- [root@centos ~]# useradd jery -s /sbin/nologin -d /var/jery
- 创建用户e1 注释信息是 “e1e1” 默认shell是/bin/bash
- [root@centos ~]# useradd -c "e1e1" e1
将一个已有用户 cnzhx 增加到一个已有用户组 apache 中,使此用户组成为该用户的附加用户组,可以使用带 -a 参数的?usermod? 指令。-a 代表 append, 也就是将用户添加到新用户组中而不必离开原有的其他用户组。不过需要与 -G 选项配合使用:
# usermod -a -G apache cnzhx
如果要同时将 cnzhx 的主要用户组改为 apache,则直接使用 -g 选项:
# usermod -g apache cnzhx
如果要将一个用户从某个组中删除,则
gpasswd -d username groupname
但是这个时候需要保证 group 不是 user 的主组。
以上命令在root用户下执行
方法一、groups命令法
groups命令可以查看用户所属的用户组,查看系统当前登录用户的用户组。
查询lcy用户所在的用户组。
方法二、查看/etc/group法
/etc/group是用户组配置文件,可以查看此文件通过grep命令查询某个用户所在的用户组。如下图所示,查询到air用户属于air和sudo用户组。
方法三、id命令法
id命令也可以查看某个用户所属的用户组,只执行id命令,可以查看当前登录用户所在的用户组。
要查询特定的用户所属用户组,可以在后面接用户。如下图所示 ,查询lcy用户所在的用户组。
查案用户主目录的位置:pwd
将 lcy 添加到root 的sudo组里面:
sudo? ls? /root:? 以root身份执行命令:
在 1.sh 文件里面写入:echo “我是1.sh”
更改文件权限让其可执行:chmod? u+x? 文件名
chown 修改文件或文件夹所有者命令
chown 需要超级用户?root?的权限才能执行此命令。
语法
chown [-cfhvR] [--help] [--version] user[:group] file...
参数?:
- user : 新的文件拥有者的使用者 ID
- group : 新的文件拥有者的使用者组(group)
- -c : 显示更改的部分的信息
- -f : 忽略错误信息
- -h :修复符号链接
- -v : 显示详细的处理信息
- -R : 处理指定目录以及其子目录下的所有文件
- --help : 显示辅助说明
- --version : 显示版本
把r文件夹里面的文件都给lcy: ????chown? -R ?lcy:lcy? r/*
- chattr [+-=][ASacdistu] 文件或文件名
- 命令选项:
- + : 增加某个特殊参数,其他原本存在的参数不动。
- - : 删除某个特殊参数,其他原本存在的参数不动。
- = : 设置一定,且仅有后面接的参数
- A : 当设置了A属性时,这个文件(或目录)的存取时间atime(access)将不可被修改,可避免例如手提电脑有磁盘I/O错误的情况发生。
- S : 这个功能有点类似sync。就是将数据同步写入磁盘中。可以有效地避免数据流失。
- a : 设置a之后,这个文件将只能增加数据,而不能删除,只有root才能设置这个属性。
- c : 这个属性设置之后,将会自动将此文件“压缩”,在读取的时候将会自动解压缩,但在存储的时候,将会先进行压缩后再存储(对于大文件有用)。
- d : 当执行dump(备份)程序的时候,设置d属性将可使该文件(或目录)具有转储功效。
- i : i的作用很大。它可以让一个文件“不能被删除、改名、设置连接,也无法写入或新增数据”。对于系统安全性有相当大的帮助。
- j : 当使用ext3文件系统格式时,设置j属性将会使文件在写入时先记录在journal中。但是,当文件系统设置参数为data=journalled时,由于已经设置日志了,所以这个属性无效。
- s : 当文件设置了s参数时,它将会从这个硬盘空间完全删除。
- u : 与s相反,当使用u来设置文件时,则数据内容其实还存在磁盘中,可以用来还原删除.
- 注意:这个属性设置上,比较常见的是a与i的设置值,而且很多设置值必须要root才能设置。
; 一行执行多条命令使用;分隔符或者结束符,注释符
| 管道符
‘’ 单引号 定义字符串
“” 双引号 定义字符串
`` 反引号 命令中执行命令
& 后台执行 加在一条完整命令后面
\ 转义字符
+-* / 加减乘除运算符号
?匹配单个字符
* 匹配所有
~ 匹配家目录
() 分组
[ ] 匹配中括号中的一个字符
{} 匹配一个范围
[ ^ ]??? 表示否定括号中出现字符类中的字符,取反。
\? 转义字符
反引号命令解析
双引号:当输出双引号所有内容时,内容中有命令需要反引号标记
特殊符号
1.管道符,筛选作用
ORS可以改变每一行的结尾符(默认是换行符)
RS 改变换行符
2.$ 符
取出变量的值:n=”无力面对”?? echo $n
\? 将特殊含义的字符转化成普通字符
{} 创建多个文件,备份文件到同一路径下
{,.a11.txt} 表示备份文件a1.txt 为a11.txt 并放在a1.txt的路径下
&& 前一个命令正确,后面的才执行
?||? 前一个失败了才执行下一个命令
[!a-z]不要a到z的字符
history 列出你敲过的命令
!行号 ?执行第几行的命令
alias 设置别名
ctrl+k? 删除光标之后的字符
正则表达式
linux三剑客:grep sed awk
文本处理工具,均支持正则表达式引擎
·grep: 文本过滤工具,(模式:pattern)工具
·sed:stream editor,流编辑器;文本编辑工具
·awk: linux的文本报告生成器(格式化文本),Linux上是gawk
sed "2,3p" hh.txt -n ?输出2,3行
sed "2,3s/b/e/p" hh.txt -n? 将2,3行的b替换为e并打印
sed “2,+3p” hh.txt -n 输出2行再向下加三行
sed '2,$d' 1.txt?? ???删除第2行到结尾(没有改文件)
sed '2,$d' 1.txt -i? ??删除第2行到结尾(把文件也改了)
sed? “s/e/o/g”? 1.txt ???将文件中的e全部替换为o
sed -e "s/e/o/g" -e "s/5/6/g" 1.txt? ?将e替换为o 并将5替换为6 (多次替换加 -e)
sed "2a 你好" 1.txt? ??在第2行后插入内容 2a
sed "2i 你好啊" 1.txt?? 在第2行前插入内容
sed "1a 无力面对\n借口天性凉薄" 1.txt -I? 插入两行用\n
awk '{print NR "第一列:" $1}' 1.txt 2.txt? 输出两个文件并显示行号
awk '{print? FNR "第一列:" $1}' 1.txt 2.txt? 输出两个文件并显示各自的行号
awk? '{print "第一列" $1,"第二列"$2}' 1.txt 第一列和第二列默认是以空格隔开的
awk 'NR==3,NR==4{print "1:"$1,"2:"$2}' 1.txt?? 输出第三行和第二行,
NR 是指定的行号
awk 'NR==3,NR==4{print NR, $1,$2}' 1.txt?? 显示文件3,4行且显示行号
awk '{print $(NF-1)}' 1.txt?? 倒数第二列
awk? -F? ","? '{print $1}'? 1.txt?? 指定分隔符
awk -v FS="," '{print $2}' 1.txt? 更改默认的列分隔符
grep -E "^([^:]+\>).*\1$" 2.txt? 以非冒号开头,以什么结尾就以什么开头的行(\1 表示引用前面的条件)
grep -E “^([^:]).*\1$” 2.txt
print 默认空格换行符
printf 没有换行符
begin 打印之前的动作
end 打印之后的动作
awk ‘/^2/{print $0}’ 2.txt?
多个条件加上多个双斜杠和逗号
awk ‘/^2/,/^3/{print $0}’ 2.txt
awk? '{print $0}'? 2.txt | sort -n |uniq? 先排序再过滤
awk '{print $0}' 2.txt |sort -n|uniq -c|sort -nr|head -3
排序 | 统计重复次数 | 逆序排序 |打印前3 条数据
grep -c “^3” 2.txt ???????统计2.txt以3开头的行出现的次数
grep -m 3 "3$" 2.txt????? 统计以3结尾的行,只匹配3次
grep -l 3 "3$" 1.txt? 2.txt? 3.txt?? 看那个文件包含了以3结尾的行
grep -v “^2” 2.txt? 不以2开头的行
grep -E “\<[5-9]{2,4}\>” 2.txt? 匹配5到9之间的数字,匹配2到4个,将前后东西都去掉,只要匹配的
grep -E "^[[:space:]]+[^[:space:]]" 2.txt 空格开头,后面非空的行
grep -E "(^5|^2)" 2.txt? ??以5或2开头的
grep -E "^(5|2)\>" 2.txt? 单以5或2开头的行(默认空格为分割符)
crond服务
rpm? -qa|grep cron
开启ssh: service?sshd?start?
sudo service ssh star
关闭: service?sshd?stop
查看crond服务状态(ctos7):systemctl status crond
查看进程情况:ps aux |grep atd
创建一个一分钟后的任务 at now+1min
ctrl+d :提交任务
查看邮件:mail
检查邮件服务是否打开:ss -tnl | grep 25
?
rpm
yum(自动解决依赖关系)
编译安装三部曲:
yum groupinstall “Development Tools”
yum groupinstall "Server Platform Development"
yum grouplist :查看已经安装的软件包
开发工具安装成功
下载好的压缩包
cd到当前目录 :
解压文件 tar -zxvf ngix-1.9.9.txr.gz
看一下源码包:
第一曲:执行脚本configure文件
安装:[lcy@centos nginx-1.9.9]$ ./configure --prefix=/data/nginx199/
生成Makefile
第二曲:执行make命令
执行:make install 开始安装
看到data1里面的文件
进入nginx配置文件夹
编辑 ngixn.conf
将user 改为root
./sbin/nginx -s reload #重新读取nginx配置文件
骇客帝国:
shell脚本规则:
history
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!