目录

Bash Shell 简单了解

Bash Shell基础语法

文件管理

用户管理

权限管理

软件管理

什么是Bash Shell

  命令的解释,用来翻译用户输入的命令

Bash Shell 能做什么?

文件管理  软件管理  用户管理  权限管理   网络管理

Bash Shell

  单行命令   脚本命令

4 linux 的登录提示符

  [root@liuun2 /]#

root  当前登录的用户

liuun2  当前主机名称

/  当前用户所在的路径

#   表示超级管理员

$  表示普通用户

Bash Shell基础语法

命令 选项 参数
ls 命令 查看当前目录下的所有文件
ls -l 命令+ 选项 以列表的形式显示所有文件
ls -l /tmp 命令=选项+参数 查看某路路径下的所有文件

文件管理

对文件可以进行的操作

  创建  删除  压缩  移动  复制  编辑  查看  查找

1. 文件的基础命令

bin 普通用户可以操作的命令
sbin 管理员可以操作的命令
home 普通用户的家目录
root 管理员用户的家目录
boot

存放启动系统时需要的文件

grub 引导菜单.内核文件

dev

设备(硬盘.光盘.终端)

/dev/rendom  (摇钱树)

/dev/null  黑洞

etc

配置  (网卡,系统配置,服务配置)

/etc/hostname  主机名称

/etc/sysconfig/network-script/  (网卡配置信息)

proc 实时反馈当前系统的状态
tmp 临时文件,那个用户上传的,那个用户删除
usr 用户文件
var

可变的目录

log

pid 存放服务器进程的id -->Python  ->30119 -->/var/pid/python.pid  ( 30119 )

常用命令表单

which

命令 查找命令的绝对路径
touch /路径/要创建的文件 创建文件
cp /原路径/复制的文件/复制到的路径 复制(拷贝)
rm ( -f | -fr ) /路径/文件名 删除文件

cat

(-A | -n)  /路径/文件名 查看文件中的内容
head (- n)  /路径/文件名 n选着查看的行数
tail (- f ) /路径/

(符实时追踪文件末尾的变化)

仅查看文件末尾的10行

more

less

/路径/文件名 分页查看文件内容
mkdir ( -p | -v)  

创建文件夹

(递归创建)

(显示创建的过程)

mv  /要移动的路径/文件名  /移动到的路径 文件移动

上传和下载

下载:

互联网到服务器

服务器到本地

上传:

本地到服务器

rz:  从本地上传到文件到 server

sz:  从server 下载文件到本地电脑

wget 获取互联网上的资源到本地

yum install wget -y

wget http://nginx.org/download/nginx-1.16.1.tar.gz

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

linux 编辑工具 vim

vim的基本介绍

1. 什么是vim?

文本文件对的编辑工具.

2. 为什么要使用vim?

linux中一切皆文件,需要修改配置文件,让软件按照我们的期望运行,所以使用编辑工具.

3.VI\VIM 的区别:

vim  有高亮显示

vi   没有高亮显示

VIM 的命令模式

复制:  yy

粘贴:  p

撤销:  u

删除:  dd  |  D 删除本行光标之后的所有内容

剪贴:  (删除+粘贴)

光标操作

  文件首行:  gg

  文件尾行:  G

  翻页操作::  ctrl+f向上翻页  Ctrl+b向下翻页

  行首:  ^  |  0

  行尾:  $

进入编辑模式

  i:  直接进入编辑模式

  o:  插入新的行,并且进入编辑模式

  A:  光标移动到行尾,并且进入编辑模式

  a:  光标向后移动一位,并且进入编辑模式

快速切换到你想要的行

  vim file.py +Number

  200gg  快速跳转到200行

  :200  快速跳到200行

VIM 的编辑模式 (输入自己想写的代码)

VIM 的末行模式

保存:  :w

退出:  :q

保存并退出::  :wq

搜索:  /search  N 向上查  n向下查

替换:  

  :%s#要替换对的#替换成的#g

  :1,5s#要替换的#替换成的#g

视图模式

shift+v 行模式:

  复制  y

  删除  d

Ctrl+v 块模式

  加注释  shift+i -->输入#号注释符 -> 按ESC

  删注释:  选中后,按 x 删除 一个字符

其他的操作

1. 开启行号:  :set number

2. 搜索忽略大小写  :set ic

3. 取消高亮:  :noh

vim 编辑故障:

  打开文件,做了修改,关闭会话.

    E: 直接编辑,会忽略关闭之前写的内容

    R: 将之前编写没有及时保存的内容显示出来.确认没有错误保存退出

        再次确认文件可以选择 D 删除或者是交换的swp文件,则不会再有提示

linux 文件类型

一切皆文件

  -  文件

  d  目录

  s  socket

  c  字符设备

  b  块设备 (磁盘)

 file  查看文件的具体属性

linux 文件属性

  -rw-r--r--. 1 root root      32 9月  27 11:46 test.py

-  文件;类型

rw-r--r--  文件权限

1  硬链接次数

root  文件所属用户

root  文件所属组

32  文件大小

9月  27  11:46  最后修改时间  stat 详细时间记录

tas.py  文件名称

文件的压缩和打包

  1.什么是打包?

    压缩包是一种特殊的格式.将多个文件或者目录整理在一个文件中

  2. 为什么要使用压缩包?

    便于传输  压缩后体积会变小

  3. 实现打包与压缩有哪些工具:

    windows:   zip tar

    linux  zip tar.gz

  4. 压缩包如何实现:

    gzip:(仅针对文件)

      压缩:  gzip /etc/yum.repos,d/CentOS-Bsae.repo

      查看:  zcat /etc/yum.repos.d/centOS-Base.repo.gz

      解压:  gzip -d /ect/yum.repos.d/CentOS-Base.repo.gz

    zip:(针对文件和目录)

      压缩:  yum install zip unzip -y  (原文件消失)

      查看:  zip -r yum_local.zip /etc/yum,repos.d/ /tmp/

      解压:  unzip yum_local.zip -d /pot/

    tar.gz

      c: 创建  z:压缩类型  f:指定文件名称  x:自动识别文件类型

      创建  tar czf etc.tar.gz /ect/ /home/

      压缩  tar xf etc.tar.gz

      指定解压路径  tar xf etc.tar,gz -C /home/

用户管理

什么是用户

  值能够正常登录操作系统

为什么要有用户

  进程要依赖一个特定的用户身份,才可以正常的运行

  服务器可能有多个用户,root的权限最大

用户分类

  类型      名称    ID编号

  超级用户     root    0

  系统用户          1-999  为系统正常运转而使用的用户 系统用户 虚拟用户

  普通用户          1000+  能够正常登陆系统的用户 普通用户

  进程能够以什么样的方式去访问文件或目录 . 取决于进程运行的'用户身份'对该目录或文件是否拥有对应的权限.

如何查询用户

id root  (id+ 用户名)

得到  uid=0(root) gid=0(root) 组=0(root)

如何创建用户

useradd liuun  (useradd  用户名)

id liuun   查看是否创建成功

uid=1001(liuun) gid=1001(liuun) 组= 1001(liuun)

创建的用户信息都放在那里 (存储用户信息以冒号为分割符,有7列)

cat /ect/passwd  查看用户信息

root:x:0:0:root:/root:/bin/bash

liuun:x:1001:1001:/home/liuun:/bin/bash

第一列  用户名称

第二列  密码占位符.(密码存放在 /ect/shadow 文件中)

第三列  用户的uid

第四列  用户的gid

第五列  描述信息 commit

第六列  用户的家目录

第七列  用户登录的Bash类型

用户的密码放在那里

/ect/shadow 文件中

创建用户的参数

-u:  指定用户的uid

-g:  指定用户的基本组 (不指定,默认创建与用户同名的组)

-G:  指定附属组

-c:  指定 注释消息

-s:  指定登录的bsah类型,(默认是 /斌/bash

-r:  指定系统用户

-M:  不创建用户的家目录

创建liuun用户,UID为5000.基本组为students.附属组为撒.注释信息为9211 new student.登录shell:/bin/bash

groupadd student

group sa

useradd liuun -u 5000 -g students -G sa -c '9211 new student' -s /bin/bash

创建mysql系统用户,-M不建立家目录 -s 指定Nologin使其用户无法登录系统

useradd mysql -人-M -s /sbin/nologin

如何删除用户

userdel -r username  删除用户,并删除用户的家目录  (不建议使用 -r )

如何为用户设置密码

  设定密码的方式

    交互式: passwd [username]

    非交互式: passwd --srdin root  固定密码

         echo $RANDOM | mdSsum | cut -c 2-10 | tee 1.txt | passwd --stdin root

批量创建用户

for user_name in old-{1..100}
  do
   pass=$(echo $RANDOM | md5sum  | cut -c 2-10)
   
   # 判断用户是否存在,如果存在则不创建
   id $user_name &>/dev/null
   if [ $? -eq 0 ];then
    continue
   else
    # 创建用户
    useradd $user_name
    # 设定密码
    echo "$pass" | passwd --stdin $user_name &>/dev/null  # 设定密码,将结尾打到空
    echo "Username: $user_name  Password: $pass ok.."   # 将用户名和密码输出到面板
    echo "Username: $user_name  Password: $pass ok.." >> user_password.txt  #将用户名和密码输出到文件中
   fi
  done

交互式创建用户和密码

  [root@oldboy-pythonedu ~]# cat useradd_2.sh
  #!/usr/bin/bash

  read -p "请输入你要创建的用户名称: " User
  read -p "请输入你要创建的用户数量: " Number

  #1.如何批量创建用户
  for i in $(seq $Number)
  do
   user_name=$User-$i
   pass=$(echo $RANDOM | md5sum  | cut -c 2-10)
   
   # 判断用户是否存在,如果存在则不创建
   id $user_name &>/dev/null
   if [ $? -eq 0 ];then
    continue
   else
    # 创建用户
    useradd $user_name
    # 设定密码
    echo "$pass" | passwd --stdin $user_name &>/dev/null
    echo "Username: $user_name  Password: $pass ok.."
    echo "Username: $user_name  Password: $pass ok.." >> user_password.txt
   fi
  done

用户组

组基本概念:  便于管理

组的分类:   所属组: 当创建一个用户时,如果不指定主组,会自动创建一个同名的组

       附加组:  创建用户时可以指定我们新加入的附属组.此时用户就可以具有附加的组的权限

  (主组只能有一个.附属组可以有多个)

创建组

  -g 指定gid (默认不指定.则从1000+开始)

  groupaddu -个5001 devops

删除组

  groupdel decops

  

  groupdel  devops

  groupdel:不能移动用户 'liuun' 的主组

  userdel -r liuun

  groupdel students

用户提权相关

  su  切换身份

  sudo  提权

权限管理

  1. 什么是权限?

    权限主要用来约束用户能对系统所做的操作

  2. 为什么要使用权限?

    因为系统中不可能只存在一个人root用户,一定还有其他的户, 为了保护每个登录的用户的隐私和工作环境,所以就有了权限

  3.权限和用户之间的关系?

    1) 系统给每个文件定义了三个身份   属性  属组  其它

    2) 每个身份分别对应了三种权限   r读4  w写2  x执行1

  4. 为什么要设置权限?

    进程运行需要一个用户,而进程在完成上传的操作时.需要条用对应的用户来执行,能否执行成功,取决于给用户对该文件是否拥有权限

  5. 怎么修改权限?  (chmod)

    chmod 640 文件名

  6. 变更一个文件属主和属组/

    chown  -R  www.www  文档-demo/

  7 通过一个文件 文件上传和下载的demo?

    1)安装PHP环境

      setenforce 0    #关闭selinux

      systenctl stopfirewalld    #关闭fireewalld防火请

      yum install httpd php -y

      systenctl start httpd

      wget http://fj.xuliangwei.com/public/kaoshi.zip

      unzip kaoshi.zip -d /var/www/html/

    2) 如果不调整权限,前台会提示成功,但实际是失败的

      tail -f /var/log/ httpd/error_log

    3) 变更写入目录的属主和属组(不要修改为777,权限太大不好)

       1检查进程运行的用户身份是什么: apache

        ps -ef | grep httpd | head -2

             root      24130      1  0 10:13 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND  #Master进程
             apache    24132  24130  0 10:13 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND  #Worker进程

       2 检查进程要写入的目录是什么权限:

          ll -d /var/www/html/

            drwxr-xr-x. 2 root root 77 9月  29 10:21 /var/www/html/

          总结: 写布景区的原因:   进程会调用apache用户往 /var/www/html目录写, 而apache用户对/var/www/html目录仅拥有 读和执行,所以会失败.

.       3 调整/var/www/html 属主和属组
             [root@oldboy-pythonedu ~]# chown apache.apache /var/www/html/
             [root@oldboy-pythonedu ~]# ll -d /var/www/html/
             drwxr-xr-x. 2 apache apache 77 9月  29 10:21 /var/www/html/
  
         3.4) 最后验证程序是否能正常上传文件至/var/www/html/中
            [root@oldboy-pythonedu ~]# ll /var/www/html/2020-09-29/ -d
            drwxr-xr-x. 2 apache apache 25 9月  29 10:27 /var/www/html/2020-09-29/
  
            [root@oldboy-pythonedu ~]# ll /var/www/html/2020-09-29/
            -rw-r--r--. 1 apache apache 438 9月  29 10:27 2_oldxu.txt

rpm软件包管理

  1.什么是rpm ?  redhat package mananger 红帽包管理工具, xxx.rpm  主要用来安装软件包.

  

 1.rpm包    可以通过rpm工具  yum工具管理
 2.二进制包 解压即用
 3.源码包  编译   ---> 二进制可执行文件
 rpm工具安装会牵扯到依赖关系:
  A包  -> B包  -> C包
     --> D包  --> E包
       ---> F包

安装

[root@oldboy-pythonedu ~]# rpm -ivh https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/vsftpd-3.0.2-27.el7.x86_64.rpm

卸载

[root@oldboy-pythonedu ~]# rpm -e vsftpd

升级:Uvh

[root@oldboy-pythonedu ~]# rpm -ivh https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/3.0/x86_64/RPMS/mongodb-org-shell-3.0.0-1.el7.x86_64.rpm

查询结果

[root@oldboy-pythonedu ~]# rpm -qa  | grep mongodb
 mongodb-org-shell-3.0.0-1.el7.x86_64

升级版本

[root@oldboy-pythonedu ~]# rpm -Uvh https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/3.2/x86_64/RPMS/mongodb-org-shell-3.2.0-1.el7.x86_64.rpm

再次检查

[root@oldboy-pythonedu ~]# rpm -qa | grep mongodb
 mongodb-org-shell-3.2.0-1.el7.x86_64

查询命令:
 [root@oldboy-pythonedu ~]# rpm -q httpd     #查询安装或者没有安装
 [root@oldboy-pythonedu ~]# rpm -qa      #显示系统中所有已安装的软件包
 [root@oldboy-pythonedu ~]# rpm -qa | grep httpd   #查询所有系统已安装的软件包,过滤指定的包名
 [root@oldboy-pythonedu ~]# rpm -qc httpd    #仅查看httpd这个包的配置在哪里
 [root@oldboy-pythonedu ~]# rpm -ql httpd    #查看httpd这个包所有的文件存储的路径
 
痛点:   rpm工具还是无法解决依赖间关系, 所有就有了  yum工具.

3.yum工具  ( 联网 ) 1) 什么是yum rpm包管理工具,主要用安装软件, 通过互联网安装软件.    并能解决依赖间关系.

2) 什么是源,什么是仓库
 源:  存储在服务器中的一个repo文件, 文件中存储的是仓库的地址
 仓库:   一推软件包的集合,源如果指向这个仓库,那么服务器就可以直接获取该仓库中的软件包
3) 如何配置源  | 仓库 ?
 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
4) 使用yum
 安装
  [root@oldboy-pythonedu ~]# yum install samba -y
  
 更新
  [root@oldboy-pythonedu ~]# yum update samba -y
  
 卸载
  [root@oldboy-pythonedu ~]# yum remove samba -y
 
 查询
  知道命令,但是不知道安装哪个软件包, 
  知道配置文件的路径,但是不知道是哪个软件包生成出来的.
  
  [root@oldboy-pythonedu ~]# yum provides ifconfig
  [root@oldboy-pythonedu ~]# yum provides /etc/my.cnf
 清理缓存:
  [root@oldboy-pythonedu ~]# yum clean all  #清理所有的缓存
  [root@oldboy-pythonedu ~]# yum makecache  #生成缓存
  [root@oldboy-pythonedu ~]# yum repolist   #查看仓库中的软件包

linux (简单了解)的更多相关文章

  1. [原创]linux简单之美(一)

    原文链接:linux简单之美(一) 话说windows也有syscall,这是必须的.但是win的syscall可以直接call吗?可以是可以但是破费周折,搞成SDT之类的复杂概念.下面看看linux ...

  2. [原创]linux简单之美(二)

    原文链接:linux简单之美(二) 我们在前一章中看到了如何仅仅用syscall做一些简单的事,现在我们看能不能直接调用C标准库中的函数快速做一些"复杂"的事: section . ...

  3. [原创]linux简单之美(三)

    原文链接:linux简单之美(三) 在linux简单之美(二)中我们尝试使用了C库的函数完成功能,那么能不能用syscall方式来搞呢?显然可以! section .data ft db sectio ...

  4. Linux学习之十七-配置Linux简单的脚本文件自启动

    配置Linux简单的脚本文件自启动 在Linux中使用shell脚本解决一些问题会比单独执行多条命令要有效率,脚本文件规定命名以.sh结尾,最基本的规则就是其内容是命令,想要脚本文件开机自启动,就需要 ...

  5. 五大Linux简单命令解决系统性能问题

    五大Linux简单命令解决系统性能问题 2010-12-17 10:07 James Turnbull TechTarget中国 字号:T | T 管理Linux主机的性能看起来经常象是在变魔术一样. ...

  6. Linux简单Shell脚本监控MySQL、Apache Web和磁盘空间

    Linux简单Shell脚本监控MySQL.Apache Web和磁盘空间 1. 目的或任务 当MySQL数据库.Apache Web服务器停止运行时,重新启动运行,并发送邮件通知: 当服务器磁盘的空 ...

  7. 一篇文章带你了解服务器操作系统——Linux简单入门

    一篇文章带你了解服务器操作系统--Linux简单入门 Linux作为服务器的常用操作系统,身为工作人员自然是要有所了解的 在本篇中我们会简单介绍Linux的特点,安装,相关指令使用以及内部程序的安装等 ...

  8. linux简单配置

    lsof -i lsof -i:211.判断apache查找httpd路径: ps aux | grep httpd 结果:  /usr/local/apache/bin/httpd /usr/loc ...

  9. Linux 简单字符设备驱动程序 (自顶向下)

    第零章:扯扯淡 特此总结一下写的一个简单字符设备驱动程序的过程,我要强调一下“自顶向下”这个介绍方法,因为我觉得这样更容易让没有接触过设备驱动程序的童鞋更容易理解,“自顶向下”最初从<计算机网络 ...

  10. Linux简单程序实例(GNU工具链,进程,线程,无名管道pipe,基于fd的文件操作,信号,scoket)

    一, GNU工具链简介: (1)编译代码步骤: 预处理 -> 编译 -> 汇编 -> 链接: 预处理:去掉注释,进行宏替换,头文件包含等工作: gcc -E test.c -o te ...

随机推荐

  1. hystrix文档翻译之配置

    Hystrix使用Archaius作为配置的默认实现,下面介绍的是HystrixPropertiesStrategy的默认实现,你也可以通过插件方式重新实现. 每一个配置有四个级别: 全局默认 当下面 ...

  2. CRM、用户管理权限

    CRM目录结构 from django.shortcuts import HttpResponse,render,redirect from django.conf.urls import url f ...

  3. 8.Kafka offset机制

  4. web框架推导

    django 引言 所有的web应用本质上就是一个socket服务端,而用户的浏览器. 软件开发架构 cs架构 bs架构 本质上,bs架构也是cs架构 http协议 网络协议 http协议 数据传输是 ...

  5. Java知识系统回顾整理01基础03变量06变量的作用域

    一.变量根据所处的位置对应不同的名称 变量处于不同的位置,有不同的名称 名称分别是  字段,属性 参数 局部变量 不同名称的变量,其作用域是不一样的 二.字段,属性,Field 当一个变量被声明在类下 ...

  6. Java知识系统回顾整理01基础06数组06二维数组

    一.一维数组和二维数组 这是一个一维数组, 里面的每一个元素,都是一个基本类型int int a[] =new int[]{1,2,3,4,5}; 这是一个二维数组,里面的每一个元素,都是一个一维数组 ...

  7. SPI应用 用SPI控制一个数字电位器

    Controlling a Digital Potentiometer Using SPI In this tutorial you will learn how to control the AD5 ...

  8. 【题解】[SDOI2010]捉迷藏

    题目链接:https://www.luogu.com.cn/problem/P2479 题目大意:求平面\(n\)个点中,到其它\(n-1\)个点的曼哈顿距离最大和最小距离之差最小的点,求出这个这个距 ...

  9. 关于freemodbus协议中eMBFuncReadHoldingRegister()函数的所谓错误

    摘要:网上看到有好心的网友提示,freemodbus协议中的mbfuncholding.c 文件中eMBFuncReadHoldingRegister()函数,有一处错误,即:第185行的" ...

  10. docker-创建容器常见选项

    1. docker run创建容器常见选项 1.1 创建容器 选项 描述 -i,-interactive 交互式 -t,-tty 分配一个伪终端 -d,-detach 运行容器到后台 -e,-env ...