linux

作者: 我叫罗大大 | 来源:发表于2019-10-14 23:09 被阅读0次

查询Linux ip :ip addr

命令篇

文件处理

1.查询目录的内容
 <#--查看所有-->
ls -alh
<#--展示列表-->
ls [选项] [文件或目录]
选项:
    -a  显示所有文件,包括隐藏文件
    -l  显示详细信息
    -h  人性化显示文件大小
2.切换目录
cd [目录]
    命令英文原意: change directory

简化操作:
cd ~   :切换到用户目录(家目录)
cd     :切换到用户目录
cd -   :切换到上一个访问目录
cd ..  :切换到上一级目录
cd .   :切换到当前目录
3.当前所在的工作空间
pwd
命令英文原意:print working directory
4.创建文件
touch 文件名   :创建文件
5.创建目录
mkdir -p [目录名]
    -p 递归创建
    命令英文原意: make directories
mkdir  目录名  :创建目录
mkdir -p xx/yyy/zz  :创建多级目录
6.删除<font color=red>空目录</font>
rmdir [目录名]
命令英文原意:remove empty directory

rmdir 目录 :删除目录(目录为空时执行)
7.删除文件或者目录
rm -rf [文件或目录]
命令英文原意:remove
选项:
    -r      递归删除目录
    -f      强制
rm -r 目录    :递归文件夹 带提示
rm -f 文件    :删除文件
rm -rf 文件/文件夹   :递归删除,无提示

禁止: rm -rf /  删除所有文件
8.复制文件或文件夹
cp [选项] [原文件或目录] [目标目录]
命令英文原意:copy
选项:
    -r      复制目录
cp 源文件 备份文件 :备份文件[复制文件]
cp -r 源目录 目标目录  [复制目录]
9.剪切和改名命令
mv [原文件或目录] [目标目录]
命令英文原意:move

mv 文源文件件 目标文件目录 :剪切
mv 源文件 不存在的文件   :重命名
mv 源文件 文件夹/不存在的文件   :剪切重命名

剪切并重命名

 mv a.txt /root/test_bak/bb.txt

文件搜索

1.环境变量
PATH环境变量:定义的是系统搜索命令的路径
相当于window下的path
//之间有空格
echo $PATH  : 查看环境变量
2.文件搜索
find [搜索范围] [搜索条件]
示例:
find / -name install.log
#避免大范围搜索,会非常耗费系统资源
#find是在系统当中搜索符合条件的文件名.如果需要匹配,使用通配符匹配,通配符是完全匹配
find /root -name install.log   #按名字查询: 不区分大小写
find /root -user root   #按照所有者搜索
find /root -nouser  #查找没有所有者的文件

https://www.xuebuyuan.com/683276.html

假如匹配到多个就会报错,错误提示如下:

Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exe

find /root -name 'test*'

加了单引号之后解决

3.按文件的大小查询
find  / -size 25k
#查找文件大小是25KB的文件,注意k是小写的.

-25k        小于25KB的文件
25k     等于25KB的文件
+25k        大于25KB的文件

find / -size 25M
#查找文件大小是25MB的文件,注意M是大写的.
4.复合条件查询
find /etc -size +20k -a -size -50k
#查找/etc/目录下,大于20KB并且小于50KB的文件

-a      and     逻辑与,两个条件都满足
-o      or          逻辑或,两个条件满足一个即可

find /etc -size +20k -a -size -50k -exec ls -lh {} \;
#查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息
#-exec {} \;这是固定格式
5.字符串的搜索命令
grep [选项] 字符串 文件名
#在文件当中匹配符合条件的字符串
选项:
    -i  忽略大小写
    -v  排除指定字符串


cat anaconda-ks.cfg  查看内容

grep timezone anaconda-ks.cfg 

经典使用:
ps -ef |grep java

ps


ps -ef 显示出的结果:
    1.UID       用户ID
    2.PID        进程ID
    3.PPID      父进程ID
    4.C           CPU占用率
    5.STIME     开始时间
    6.TTY         开始此进程的TTY----终端设备
    7.TIME       此进程运行的总时间
    8.CMD       命令名

[图片上传失败...(image-f69f87-1571065750332)]

TIP

find命令:在系统中搜索符合条件的文件名.

grep命令:在文件中搜索符合条件的字符串.

帮助命令

1.man命令[manual n.手册]
man ls
#查看ls的帮助
man 命令名 :
查看帮助命令f  b键翻页 q退出
2. 命令 --help[简洁版]
命令 --help
#获取命令选项的帮助
实例:
    ls --help
命令 --help   :简洁版帮助

但是不适用内部命令,如cd:
help cd
命令特殊时,使用
help 命令  比如: help cd

压缩命令

1.zip压缩
zip 压缩文件名 原文件
#压缩文件

zip -r 压缩文件名 原文件
先安装zip 软件
yum install zip  
yum install -y zip  : 不带确认的安装 
yum install -y unzip
卸载: yum remove 
zip 压缩文件名  原文件  :压缩文件
zip a.zip a.txt
zip -r 压缩文件名 原文件夹   :递归要是文件夹
zip -r a.zip a.txt
2.zip解压
unzip 压缩文件
#解压缩.zip文件
unzip 压缩文件名 ;解压
3.gz压缩
gzip 原文件
#压缩为.gz格式的压缩文件,原文件会消失
gzip -c 原文件 > 压缩文件
#压缩为.gz格式,原文件保留
#-c的意思不是说需要保留文件,而是要把压缩的结果输出到控制台.
#>的意思是把结果输出到什么地方去.
gzip -r 目录
#压缩目录下的所有子文件,但是不能压缩目录
gzip  原文件: 压缩文件, 源文件会消失
gzip  a.txt
gzip -r 原文件夹:遍历文件夹,压缩文件夹中文件,目录不压缩
gzip -r learn
4.gz解压
gzip -d 压缩文件
#解压缩文件
gunzip 压缩文件
#解压缩文件
gunzip -r 压缩文件目录;解压
5.打包命令
打包命令:
tar -cvf 打包文件名 源文件
选项:
    -c      打包
    -v      显示过程
    -f      指定打包后的文件名
tar -cvf learn.tar learn
解打包命令:
tar -xvf 打包文件名
选项:
    -x      解打包
6..tar.gz格式压缩
tar -zcvf 压缩包名.tar.gz 源文件
选项:
    -z      压缩为.tar.gz格式

tar -zcvf learn.tar.gz learn
7.tar.gz格式解压
tar -zxvf 压缩包名.tar.gz
选项:
    -x      解压缩.tar.gz格式
#加上-C表示解压到指定的目录
tar -zxvf 压缩包名.tar.gz -C 指定目录

tar -zxvf learn.tar.gz  -C  ./

重启命令

重启命令
init 0  :关机
init 6  :重启
init 3  :切换字符界面
inti 5  :切换可视化界面

reboot :重启
其他命令

[图片上传失败...(image-afacfc-1571065750332)]

cat:显示全部
tail默认在屏幕上显示指定文件的末尾10行
参数:
    -f  显示文件最新追加的内容。
    -行数   在屏幕上显示指定文件的末尾参数设置的行数

Vi编辑器

1.编辑器的三种模式
模式之间的相互转换: 
编辑-->输入
    i:在光标所在字符前开始插入
    a:在光标所在字符后开始插入
    o:在光标所在行的下面另起一新行插入
    s:删除光标所在的字符并开始插入
    ---------------------------------------
    I:在光标所在行的行首开始插入 如果行首有空格则在空格之后插入
    A:在光标所在你行的行尾开始插入
    O:在光标所在行的上面另起一行开始插入
    S:删除光标所在行并开始插入

输入模式-->编辑模式
    ESC(键盘左上方的按键)
编辑模式--->末行模式
: 
末行模式:-->编辑模式
    ESC(键盘左上方的按键)(一次或者多次)
2.保存文件
打开文件
vi  /path/to/file
关闭文件
在末行模式下
wq: 保存退出
q!: 退出不保存
3.编辑时移动光标
逐字符移动: 
    h:左移动
    l:右移动
    j:向下移动
    k:向上移动
行内跳转:
0:跳转到行首
$: 跳转到行尾
行间跳转;(末行模式)
num: 跳转到某一行(末行模式)
G: 跳转行最后一行(编辑模式)
gg: 跳转到第一行(编辑模式)
4.翻屏操作
在编辑模式下:
ctrl+f 向下翻一页
ctrl+b 向上翻一页
5.删除操作
dd:删除光标所在行 (编辑模式)
3dd:从光标行开始删除3行(编辑模式)
: 1,4d 删除第一行到第四行(末行模式)

[图片上传失败...(image-d2d0a1-1571065750332)]

6.复制行操作
yy 复制光标所在行 (编辑模式)
2yy 从光标行开始复制2行(编辑模式)
p: 粘贴命令[paste]
7.查找和替换
文件的查找
/parttern 从前往后查找
?parttern 从后往前查找
n:  下一个匹配的字符串
N: 上一个匹配的字符串
文本的替换(末行模式)
startNum,endNums/partter/string/gi
g:全局替换
i:忽略大小写
%s/f/F/gi
:.,$s/F/f/gi
/关键字                 按n找下一个
set number        设置行号    
或者 
set nu
取消行号
set nu!

用户管理

1.添加用户
创建用户 :useradd [用户名]
创建用户并分配一个组:useradd -G [组名] [用户名] 

查看系统用户:cat /etc/passwd
1   用户名
2   用户的密码,用x替代
3   用户的uid,一般情况下root为0,1-499默认为系统账号,有的更大些到1000,500-65535为用户的可登录账号,有的系统从1000开始。
4   用户的gid,linux的用户都会有两个ID,一个是用户uid,一个是用户组id,在我们登录的时候,输入用户名和密码,其实会先到/etc/passwd查看是否有你输入的账号或者用户名,有的话将该账号与对应的UID和GID(在/etc/group中)读出来。然后读出主文件夹与shell的设置,然后再去检验密码是否正确,正确的话正常登录。
5   用户的账号说明解释
6   用户的家目录文件夹
7   用户使用的shell,如果换成/sbin/nologin/就是默认没有登录环境的。
2.查看系统用户组
查看系统用户组:cat /etc/group
3.usermod
修改用户组属性
usermod -G [组名] [用户名]
4.删除用户
userdel删除用户:
-f:强制删除用户,即使用户已登录 
-r:删除与用户相关的所有文件。
5.修改用户的密码
设置用户密码: passwd 用户名  

查看密码:
 cat /etc/shadow

WolfCode_2017
注销: logout
重新登录:

文件权限

1.chmod命令
chmod [选项] 模式 文件名
    选项
        -R      递归
    模式
        [guoa] [+-=] [rwx]
        [mode=421]
2.修改用户的权限
修改权限的方式:
chmod u+x 文件
#给当前用户添加指定文件的x执行权限
chmod g+w,o+w 文件
#给该文件用户组合其他人添加指定文件的w写的权限
chmod a=rwx 文件
#给该文件的当前用户,当前组,其他人 添加rwx可读可写可执行的权限
3.权限的数字表达式
权限的数字表示
r       4
w       2
x       1
    
111--->7  rwx
110--->6  rw-
100--->4  r--

示例:
rwxr-xr-x
  7   5   5

chmod 755 文件
4.sudo权限
root把本来只能超级用户执行的命令赋予普通用户执行.(可以理解为权限代理)

sudo的操作对象是系统命令
visudo
#实际修改的是/etc/sudoers文件

需求: 想让root 用户将 shutdown -h 10  定时关机命令赋予  dafei用户

#用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
   root       ALL               =        (ALL)          ALL



#%组名 被管理注解的地址=(可使用身份) 授权命令(绝对路径)
%wheel ALL=(ALL) ALL


sudo  shutdown -h 10

系统服务管理

1.进程查看
用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。


ps -ef 显示出的结果:
    1.UID       用户ID
    2.PID        进程ID
    3.PPID      父进程ID
    4.C           CPU占用率
    5.STIME     开始时间
    6.TTY         开始此进程的TTY----终端设备
    7.TIME       此进程运行的总时间
    8.CMD       命令名
2.杀死进程
kill 进程UID      

防火墙的配置

关闭防火墙
systemctl disable firewalld
systemctl stop firewalld

centos7的防火墙程序服务名为:firewalld

防火墙配置命令:firewall-cmd
防火墙帮助:
firewall-cmd --help

查看防火墙状态:
firewall-cmd --state

查看所有打开的端口:
firewall-cmd --zone=public --list-ports

开启端口:
firewall-cmd --zone=public --add-port=端口号/tcp --permanent(--permanent参数为永久生效,不加则重启后失效)

更新防火墙规则:
firewall-cmd --reload

删除端口:
firewall-cmd --zone=public --remove-port=端口号/tcp --permanent

快速查找命令

netstat -ano| grep 80

静态IP的修改

文件 /etc/sysconfig/network-scripts/ifcfg-eth0在/etc/sysconfig/network-script在这个目录下面,存放的是网络接口(网卡)的脚本文件(控制文件),ifcfg-eth0是默认的第一个网络接口,如果机器中有多网络接口,那么名字就将依此类推ifcfg-eth1,ifcfg-eth2,ifcfg-eth3......(这里面的文件是相当重要的,涉及到网络能否正常工作)。

TYPE=Ethernet #网卡类型
DEVICE=eth0 #网卡接口名称
ONBOOT=yes #系统启动时是否自动加载
BOOTPROTO=static #启用地址协议 --static:静态协议 --bootp协议 --dhcp协议
IPADDR=192.168.1.11 #网卡IP地址
NETMASK=255.255.255.0 #网卡网络地址
GATEWAY=192.168.1.1 #网卡网关地址
DNS1=8.8.8.8 #网卡DNS地址
BROADCAST=192.168.1.255 #网卡广播地址 

查看ip:
ip addr

重启网络

[图片上传失败...(image-8d0521-1571065750332)]

JDK 安装

1:将jdk拉入linux路径: /usr/local/software

2:将jdk解压到指定的路径
cd  /usr/local/software
tar -zxvf jdk-8u161-linux-x64.tar.gz  -C /usr/local

3:给解压后的文件目录改过好操作的名字, 可以不改
 mv jdk1.8.0_161 jdk1.8

4:备份配置环境变量文件
 注意,设置前先备份,养成习惯
cp /etc/profile /etc/profile_bak

5:修改配置环境变量文件
vi  /etc/profile 

在随便空白地方输入:
export JAVA_HOME=/usr/local/jdk1.8    #设置java_home
export PATH=$JAVA_HOME/bin:$PATH   #设置环境变量, 跟window区别,是  :  分隔的

看清楚,大小写必须一致

6:重写加载环境变量
source /etc/profile

7:测试
java -version

看到这个结果表示安装成功

java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

部署项目篇

1.rpm
rpm 常用命令
安装一个包 
# rpm -ivh <包名>
rpm -ivh  --nodeps  <包名>  : 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。 
--force 即使覆盖属于其它包的文件也强迫安装 

查询一个包是否被安装 
# rpm -q <软件名>

得到被安装的包的信息 
# rpm -qi < 软件名> 

列出该包中有哪些文件 
# rpm -ql < 软件名> 

列出服务器上的一个文件或目录属于哪一个RPM包 
#rpm -qf <文件或目录名>

列出所有被安装的rpm package 
# rpm -qa 

卸载一个包 
# rpm -e <软件名>


有安装包,知道依赖关系使用rpm
2.yum
1 配置一个自定义的仓库地址
    /etc/yum.repos.d
    local.repo
2 安装命令
    yum install 
3 查看软件包
    yum list |grep mysql
    yum list installed
4 卸载软件包
    yum remove  

没安装包, 不知道依赖关系,使用yum
3.修改yum源

从国内镜像下载

yum install wget -y

mv /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 makecache

#更新系统软件,不执行
yum -y update

修改为静态IP,安装MQ

vi /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens32"
UUID="ca125296-65cb-4308-8b83-8a56794fbf34"
DEVICE="ens32"
ONBOOT="yes"
ZONE=public
IPADDR=192.168.91.129
NETMASK=255.255.255.0
GATEWAY=192.168.91.2
DNS1=8.8.8.8
BROADCAST=192.168.91.255
4.加文件执行权限
chmod +x 文件名
5.重启nginx
./nginx -s reload
6.查看端口
netstat -ano| grep 80

相关文章

网友评论

      本文标题:linux

      本文链接:https://www.haomeiwen.com/subject/zwadmctx.html