linux

Posted 躺云飘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux相关的知识,希望对你有一定的参考价值。

1.简介

1.没有exe文件
2.区分大小写
3.一切皆文件
4.文件后缀没那么重要,只是好识别而已
补充:管道符的作用:命令格式:命令A|命令B,即命令1的正确输出作为命令B的操作对象

2.配置centos网络

1.配置网络

vi /etc/sysconfig/network-scripts/ifcfg-encfg03    配置最后一行配置自动启动  onboot = yes

service  network  restart    重启网络服务

ping  www.baidu.com    验证网络是否配置成功

2.配置ifconfig命令

yum  install  net-tools   
ifconfig 验证命令

3.连接xshell

1.上面的步骤centos已经可以ping出来,但是ping不进去的
2.  systemctl  status  firewalld  #查看防火墙 
systemctl stop firewalld #临时关闭防火墙
systemctl disable firewalld #永久关闭防火墙
systemctl restart network #重启网卡
3.关闭防火墙,重启网卡,ping linux的ip验证
4.xshell连接
windows使用xshell客户端
linux ssh 客户端 yum install openssh-clients
ssh root@10.0.0.254 # 命令连接 端口号默认22 有的服务器没有远程连接服务sshd 需要自己安装

4.ssh:  config命令/ 免密登录 (后补)

 

4.配置yum源

1) 安装wget
yum install -y wget
2)配置阿里云源
wget  http://mirrors.aliyun.com/repo/Centos-7.repo
3) 重新加载yum
yum clean all    #清除yum安装包的header缓存
yum makecache # 安装yum缓存


测试:安装vim : yum install vim

5.yum命令(安装软件)    先查search后装 install      查看已安装的软件版本  httpd -v

1.常用命令

查找
yum search java 列出所有java的版本,
yum list 列出所有可安装的安装包
yum list installed 列出
安装   yum install
#全部安装   yum install package1 #安装指定的安装包package1   yum groupinsall group1 #安装程序组group1 更新和升级   yum update #全部更新   yum update package1 #更新指定程序包package1   yum check-update #检查可更新的程序   yum upgrade package1 #升级指定程序包package1   yum groupupdate group1 #升级程序组group1 删除程序   yum remove httpd #删除程序包package1   yum groupremove group1 #删除程序组group1   yum deplist package1 #查看程序package1依赖情况 清除缓存 yum clean all #清除所有缓存包   yum clean packages #清除缓存目录下的软件包   yum clean headers #清除缓存目录下的 headers   yum clean oldheaders #清除缓存目录下旧的 headers

补充:/home家目录概念    cd ~  进入当前用户的家目录  有可能是root目录或home目录

 

 

 

6.linux 常用命令

1.软件操作命令
2.服务器硬件资源和磁盘操作
3.文件和文件夹操作命令 
4.包的命令
4.系统用户操作命令 5.防火墙相关设置 6.提权操作sudo和文件操作

1.软件安装命令   yum

2.服务器硬件资源和磁盘操作(内存 磁盘  cpu)

内存: free -m     
硬盘: df -h        
cpu: w/top     w  可以查看最近5分钟,10分钟,15分钟 cpu的使用率
cpu个数和核数   cat /proc/cpuinfo

3.进程/服务   

ps:top可以动态显示服务器资源动态 ,相当任务管理器, ps是一次性的

# ps查看进程
ps aux  # 擦好看进程详细情况      ps aux | grep httpd
a:显示终端上所有进程,包括其他用户的进程
u:显示进程的纤细情况
x:显示没有控制终端的进程

pa au # 常用


top # 动态显示运行中的进程并且排序,类似于windows的任务管理器

kill PID号 # 终止PID号的进程
kill -9 PID号  # 强制终止
pkill 服务名  # 杀死指定服务

掌握pgrep命令的功能:通过名称或其他属性查找进程
例如:查找名为firefox的进程的命令为:pgrep firefox


# 服务
netstat -natup   # 查看所有服务
top  # 动态显示服务状况
wget www.baidu.com   vim index.html  # 爬取资源

systemctl stop 服务名 : 关闭某一个服务 
systemctl start 服务名  : 启动一个服务 
    eg:service sshd start: 启动ssh的服务 
systemctl restart 服务名 : 重新启动一个服务 
    eg:service sshd restart: 重新启动ssh的服务 

3.文件操作命令(一切皆文件)

  文件目录结构

 

 

目录作用

bin  ---- 命令,二进制文件的存放目录
boot ----- 系统引导程序+系统的内核 
dev   ---- 设备 硬盘,光驱
etc   ---- 存储系统或者服务的配置文件
home  ---- 普通用的家目录,贫民窟
lib  ----- 库文件存放目录
lib64 ---- 库文件的存放目录(64位系统)
media ---- linux识别的设备,比如u盘等,挂这个目录
mnt  ----- 临时的挂载点目录
opt  ----- 第三方的软件安装在整理
proc ----- 虚拟目录,显示内存中的信息(进场,内核的信息)
root -----  root的家目录 相当于皇宫
run  -----  放的启动的东西
sbin  ---  超级命令,只用root用户才能用的命令
srv   ----- service的缩写,存放的是一些启动后需要的数据
sys  ------ 虚拟目录,内存信息
tmp  ----- 临时文件的存放位置
usr ---- 存放用户的程序
var ----- 存放经常变化的文件,比如日志等

 文件基础操作

补充:pwd  显示当前路径  ,文件可以不用后缀,一般d开头的表示文件夹 , .表示当前目录

ls -

-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 若目录下有文件,则以下之文件亦皆依序列出
View Code
cp 拷贝
    eg:将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中
    cp -r /usr/men /usr/zh
    /cp -r /usr/men /user/zh  # 前面加/ 不会重复提问你
    
mv 移动 
    eg:将文件 aaa 更名为 bbb :   mv aaa bbb
       将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs。
        mv info/ logs

touch test  # 创建test文件
touch test{1,2,3}  # 创建test1,test2,test3文件
mkdir index  # 创建index目录   直接创建文件夹:mkdir -p /etc/test    进入目录后创建mkdir test  
mkdir index{1,2,3}  # 创建index1,index2,index3目录
rm test  # 删除文件(需要确认)
rm -r index  # 删除文件夹(需要确认)
rm -rf index  # 删除文件或目录(不需要确认,直接删除)

yum install tree
tree # 树状显示目录结构

  vim编辑器(有GUI页面的都无法使用)将文件读取到内存中

  常用命令 i/esc

 vim  文件   新建或打开文件
gg 移到行首 G 移动到行尾
dd删除本行 u撤回

 

  文件权限

  

4+2+1   7  rwx    读写执行
4+2+0   6  rw-    读写
4+0+1   5  r-x    读执行
4+0+0   4  r--    读
0+2+1   3  -wx    写执行
0+2+0   2  -w-    写
0+0+1   1  --x    执行
0+0+0   0  ---    无任何权限


# 修改权限方式一
chmod -R 777  文件名   #所有权限
    -R 标识递归设置所有文件
# 修改权限方式二
chmod +rwx 文件名  (不好用,不推荐)

chmod  # 修改权限
chgrp  # 修改组
chown  # 修改拥有者

  文件搜索/查找/读取

# 文件搜索  find搜索
find 大致路径 -name *.txt  # 搜索路径下的所有以txt结尾的文件
    eg:find -name *a*  # 模糊搜索,配合通配符使用
       find python/ -name *.py  # 搜索python文件夹下的所有.py结尾的文件
# cat  test.log  读取整个文件
# head 从头部读取  
# tail 从尾部读取显示后几行,  
  eg:  tail -f  test.log 实时监控(默认显示10行),tail -n 100  显示日志后100行,  
       tail -f -n 100  test.log    
#grep  
tail -f -n 100 test.log | grep xxx | grep yyy

管道符使用:
find python/ -name *.log | grep error

#more 分页读取   more test.log
#less 可控分页
# wc 统计个数    eg:统计日志的行数: cat test.log | wc l

  文件的压缩(tar)与解压

tar基本使用:
打包:
-c # 打包,产生新的包
-x # 解包
-v # 列出归档解档过程,显示进度
-f # 指定包名
-r # 添加文件
-u # 更新
-t # 列出文件
压缩:
-z # gzip格式
-j # bzip2格式
-C(大写) # 解压到指定目录

# tar打包:
tar -cvf 包名.tar 文件路径
    eg:
    # 普通打包
    tar -cvf aa.tar /home/001.txt 002.txt 003.txt  # 3个文件打包为1个文件
    # 配合通配符打包
    tar -cf jpg.tar /home/*.jpg  # 将home下的所有.jpg结尾的文件打成jpg.tar包
    # 添加到已有的包
    tar -rf jpg.tar /home/*.gif  # 将home下的所有.gif文件添加到jpg.tar包中
    # 更新
    tar -uf jpg.tar *.gif  # 更新jpg.tar包中的所有gif文件
    # 列出文件
    tar -tf jpg.tar  # 列出jpg.tar包中所有文件
    
# tar解包:
tar -xvf 包名.tar
    eg:
        tar -xvf aa.tar

# 打包并压缩 -z 或者-j
tar -zcvf jpg.tar.gz /home/*.jpg  # 将home下的所有.jpg结尾的文件打成jpg.tar.gz的压缩包
tar -jcvf jpg.tar.bz2 /home/*.jpg  # 将home下的所有.jpg结尾的文件打成jpg.tar.bz2的压缩包

# 解压缩包 -x或者-j
eg:
    tar -zxvf jpg.tar.gz
    tar -jxvf jpg.tar.bz2


# 解压到指定目录 -C(大写)
tar -zxvf jpg.tar.gz -C /home/jeff

包操作  rpm 安装本地的安装包,yum在线安装

rpm -qa # 查询所有安装过的包信息   rpm -qa | grep httpd   yum liist installed | grep httpd
rpm -q 包名 # 查询指定软件包是否安装过
rpm -qf /etc/passwd  # 反向查询文件是由什么包安装
rpm -qi 包名 # 查询已安装的包的信息
rpm -ql 包名 # 查询包的所有文件安装路径
rpm -qr 包名 # 查询已安装包的依赖关系
rpm -qrp 包名 # 查询包的依赖关系
rpm -V 包名 # 查询已安装的包是否修改过  V是大写

rpm -e 包名 # 卸载包
yum -y remove 包名 # 卸载包

 

7.通配符

*  # 匹配0个或者多个字符
    eg: ls index*  # 结果:index1,index2abc,index3asdasd。。。
?  # 匹配任意单个字符 
    eg: ls index?  # 结果:index1,index2,index3
        ls index??  # 结果: indexaa,indexbb,indexcc
[0-9] # 匹配0-9范围内的数字
[abc] # 匹配列表中的任意字符
^  # 非,取反
    eg: [^abc]:匹配除abc的字符


>  # 追加到文件,覆盖原来的信息
    # 可以利用>做黑洞文件,垃圾桶
    eg: echo hello >test  # hello写入test中,并覆盖原来的所有内容
>> #  追加到文件,不覆盖原来的信息
    eg: echo hello >>test  # hello写入test中,从末尾追加,不覆盖
    
| # 管道符,对前面的命令结果,传给后面用
    eg: cat test2 |grep a
        cat test2 |grep -n a   
        cat test2 |grep -ni A

8.用户权限

1.创建用户

#添加用户  ueradd  bigbox 
# 设置密码: passwd bigbox
# 封锁解锁用户 usermod -L jeff 锁定jeff用户 usermode -U jeff 解锁jeff用户 # 删除用户 userdel -r 删除用户 # 将用户添加到组 chgrp -R 组名 用户名 # 将用户添加到组 eg:chgrp -R python jeff # 将jeff添加到python组 -R :递归修改用户中目录及文件权限 who # 查看当前用户目录 whoami # 查看当前用户名 /etc/password # 用于把偶才能用户信息的文件 /usr/bin/passwd # 用于修改用户密码的程序

2.用户组

groupadd 组名  # 创建组
groupdel 组名  # 删除组

# 将用户添加到组
chgrp -R 组名 用户名  # 将用户添加到组
    eg:chgrp -R python jeff   # 将jeff添加到python组
    -R :递归修改用户中目录及文件权限

eg:普通用户提权:  root  用户使用visudo 命令 将用户添加到文件中,普通用户使用sudo 即可获得和root一样的权限

9.开关机,重置密码

reboot 重启系统
shutdow # 一分钟后自动关机
shutdow -c # 取消本次关机操作
shutdow now # 立即关机
shutdow -r now # 立即重启
shutdow 20:00 # 20:00关机
shutdow 10 # 10分钟后关机


root 重置密码
第一步:开机4秒内按e
第二步:光标移动到Linux16开头处,按end(光标移到末尾)
第三步:在末尾输入 空格rd.break   ctrl+x 下一步
第四步:mount -O remount,rw /sysroot
第五步:chroot /sysroot
第六步:passwd root
第七步:输入两遍新的root密码
第八步:touch /.autorelabel
第九步:exit两遍

 

 

进阶:软件安装

1.防火墙

1.防火墙    (centos7 自带防火墙)   注意这里使用service 而不是 firewalld

安装: yum install  firewalld 
启动: servive firewalld  start
检查状态: servic firewalld  status 
关闭或禁用防火墙: service firewalld  stop/disable

2.常用命令

 

 

firewall-cmd --version  # 查看防火墙版本
firewall-cmd --help      # 查看帮助
firewall-cmd --get-zones   #查看防火墙所有区域         默认区域为public
firewall-cmd --list-all-zone # 查看所有区域的详情
firewall-cmd --query-service=ssh   # 查询ssh服务
firewall-cmd --remove-service=ssh   #删除服务
firewall-cmd --add-service=ssh       #增加服务

端口     端口和服务只需要添加一个即可
firewall-cmd --zone=public --list-ports firewall
-cmd --query-port=22/tcp #查询duankou firewall-cmd --add-port=22/tcp #增加端口 firewall-cmd --remove-port=22/tcp #删除端口

 

 2.appache 

centos  httpd      ubuntu  appache     

appache 与 tomcat  :  appache 只支持静态网页 动态js 交给tomcat处理   appache web服务器,tomcat(应用服务器)

1.安装appche服务

yum install httpd
systemctl  start httpd
system  status  httpd
ps -ef | grep httpd # 查看进程
netstat -natup | grep httpd #查看服务
service firewalld stop #关闭防火墙

 

 

 2.域名解析,伪静态  待补充

 

3.nginx   

Centos7中无Nginx的源
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install ngix
systemctl start nginx
systemctl stop nginx
systemctl reload nginx # reload 重新加载文件 重载不会关闭服务 对已连接的用户无影响 正在谁用的服务,一般使用reload

 

  

 

 

 

 反向代理,负载均衡 待补

 

以上是关于linux的主要内容,如果未能解决你的问题,请参考以下文章

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

linux中怎么查看mysql数据库版本

-bash: /usr/bin/ls: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory(代码片段

text Debian linux片段

markdown 我的linux片段为RHCSA