1-Linux

Linux目录

  • /
    • 根目录
      • 一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。
  • /bin、/usr/bin
    • 可执行二进制文件的目录,如ls
  • /boot
    • 放置Linux系统启动时用到的一些文件,如Linux的内核文件/boot/vmlinuz
  • /dev
    • 存放Linux系统下的设备文件
      • 访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt
  • /etc
    • 系统配置文件存放的目录
      • 不建议在此目录下存放可执行文件,重要的配置文件有 /etc/inittab等
  • /home
    • 系统默认的用户家目录
      • 新增用户账号时,用户的家目录都存放在此目录下,~ 表示当前用户的家目录,~ edu 表示用户 edu 的家目录
  • /lib、/usr/lib、/usr/local/lib
    • 系统使用的函数库的目录
      • 程序在执行过程中,需要调用一些额外的参数时需要函数库的协助
  • /lost+fount
    • 系统异常产生错误时,会将一些遗失的片段放置在此目录下
  • /mnt: /media
    • 光盘默认挂载点
      • 通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载
  • /opt
    • 给主机额外安装软件所摆放的目录
  • /proc
    • 如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等
  • /root
    • 系统管理员root的家目录
  • /sbin、/usr/sbin、/usr/local/sbin
    • 放置系统管理员使用的可执行命令,如fdisk、shutdown、mount 等
  • /tmp
    • 一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
  • /srv
    • 系统启动之后需要访问的数据目录
      • 如 www 服务需要访问的网页数据存放在 /srv/www 内
  • /usr
    • 应用程序存放的目录
      • /usr/bin 存放应用程序,/usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local: 存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录
  • /var
    • 放置系统执行过程中经常变化的一些文件
      • 如随时更改的日志文件 /var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下

绝对路径与相对路径

  • 绝对路径
    • 从/目录开始描述的路径为绝对路径
  • 相对路径
    • 从当前位置开始描述的路径为相对路径
  • .与..
    • .当前目录
    • ..上级目录

常用命令

  • ls
    • 列出当前目录下的文件和文件夹
    • ls -a
      • 显示所有文件和文件夹,包括隐藏文件或隐藏文件夹(.开头的都是隐藏文件或文件夹)
    • ls -l
      • 列表显示
        • 会显示详细的如权限/属主/属组等信息
    • ls -lh
      • 有利于人查看的方式显示,文件大小
    • pwd
      • 显示当前目录的绝对路径
    • cd
      • 进入到指定目录
      • cd
        • 进入当前家目录(~)
      • cd ~
        • 进入当前家目录(~)
      • cd /root
        • 进入root(超级管理源)用户的家目录
      • cd ..
        • 进入上一层目录
      • cd -
        • 返回上一次的目录
    • touch
      • 创建空文件,如果已有相同名称的文件,则更新时间
    • vi 文件名
      • 编辑文件
      • 按下i,进入编辑模式,开始编辑文件
      • 按下esc,推出编辑模式,进入命令模式
      • :wq
        • 最后输入:wq 再按回车键: 保存并退出(w:表示保存文件内容,q:表示退出)
      • 命令模式下
        • yy表示复制,8yy表示从光标当前所在位置开始复制8行
        • p表示粘贴,8p表示从光标当前所在位置开始粘贴8行
        • dd表示删除,8dd表示从光标当前所在位置开始删除8行
    • cat
      • 查看文件内容
    • mkdir
      • 创建文件夹
      • -p
        • 递归创建空目录
    • rm
      • 删除文件
      • -r
        • 删除文件夹
      • -f
        • 强制删除,不做任何提示
    • yum
      • 安装vim
        yum install vim
    • ctrl + c
      • 中止命令
    • echo
      • 查看内容,尤其用来查看变量,注意与cat的区别,cat查看文件

常用操作

  • Tab
    • 自动补全
  • ↑↓
    • 查看之前输入的命令
  • history
    • 查看历史所有命令
  • ip a
    • 查看ip地址
  • 配置网卡
    • vi /etc/sysconfig/network-scripts/ifcfg-ens33
      systemctl restart network

访问用户及访问权限

  • 访问用户
    • 用户
      • 文件所有者
    • 用户组
      • 一个用户能够授予所在用户组的其他成员以文件访问权限
    • 其他用户
      • 允许系统中的任何用户访问
  • 访问权限
    • r
      • 读权限
        • 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限
    • w
      • 写权限
        • 对文件而言,具有新增、修改,删除文件内容的权限;对目录来说,具有删除、移动目录内文件的权限
    • x
      • 可执行权限
        • 对文件而言,具有执行文件的权限;对目录来说该用户具有进入目录的权限,如果目录无可执行权限,则也没有读写权限
  • 示例
    • drwxrwxr-x2pythonpython
      -rwxrwxrwx1pythonpython
      (-类型)(---拥有者的权限)(---用户组的权限)(---其他用户的权限)-(------拥有者)(------用户组)
    • “d” 代表文件夹
      “-” 代表普通文件
      “l” 代表软链接文件
      “c” 代表硬件字符设备
      “b” 代表硬件块设备
      “s” 表示管道文件

命令格式

  • command [-options] [parameter1] …
    命令名 选项 参数

常用命令

  • --help
    • 查看帮助文档
      ls --help
  • man
    • man是linux提供的一个手册,包含了绝大部分的命令、函数使用说明
    • man ls
    • 功能键
      • 空格键 Enter键 b f q h
      • /word
        • 搜索word字符串
        • 按n或者N上下搜索
  • history
    • 查看历史命令
      • !加行号,快速执行历史命令
  • ps -ef
    • 查看当前进程
    • ps -ef | grep 进程号
  • kill -9 进程号
    • 杀死进程

which 命令

  • 查看命令位置

操作文件命令

  • ls
    • -a -l -h
      • 看文件夹要加d,ls -ld
      • 否则,ls -l看的是文件夹的内部
    • 通配符
        • 代表0到多个任意字符
        • 代表文件名中任意一个字符
      • []
        • 将字符组括起来,表示可以匹配字符组中的任意一个。“-”用于表示字符范围
        • [a-f]表示a到f中的任意一个字符
        • 如果要使通配符作为普通字符使用,可以在其前面加上转义字符。“?”和“*”处于方括号内时不用使用转义字符就失去通配符的作用
  • 输出重定向
    • >
      • 输出重定向会覆盖原来的内容
        • ls > demo.txt
    • >>
      • 输出重定向则会追加到文件的尾部
        • ls >> demo.txt
  • cat
    • 显示文件内容
      • cat filename
    • 合并文件内容
      • cat file1 file2 > file3
  • touch
    • 创建文件
    • echo ‘do‘ > file
    • echo ‘do‘ > /dev/null # 黑洞
  • more
    • 分屏显示
      • 查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助
      • man ls |more
  • |
    • 管道
      • 一个命令的输出可以通过管道做为另一个命令的输入
    • ls -lh | more
    • ps -ef |grep 进程号
  • clear
    • 清屏
      • 快捷键Ctrl + L
  • rmdir
    • 一般不用,使用rm
    • 可使用rmdir命令删除一个目录。必须离开目录,并且目录必须为空目录,不然提示删除失败
  • ln
    • 建立链接文件
    • ln 源文件 链接文件
      • 硬链接
        • 硬链接只能链接普通文件,不能链接目录。inode不变,block增加
    • ln -s 源文件 链接文件
      • 软链接
        • 软链接不占用磁盘空间,源文件删除则软链接失效。多了inode号,block存的是源文件的inode节点
    • 存文件分为两部分
      • inode节点号
        • 存权限/容量等
      • block
        • 存真实文件内容
  • grep
    • 文本搜索
      • grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行
    • 在grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grep ‘a ’ 1.txt。
      • -v
        • 显示不包含匹配文本的所有行
      • -n
        • 显示匹配行及行号
      • -i
        • 忽略大小写
      • -o
        • 只显示匹配内容
      • -B n 把匹配行之前的n行也输出
      • -A n 把匹配行之后的n行也输出
    • grep搜索内容串可以是正则表达式
  • find
    • 查找文件
      • 通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件
    • find 目录 -name ‘*.sh‘
      • 后缀为sh
    • find ./ -name "[A-Z]*"
      • 查找当前目录下所有以大写字母开头的文件
    • find ./ -size +4k -size -5M
      • 查找当前目录下大于4k,小于5M的文件(1M=512k)
    • find ./ -perm 0777(0为权限掩码,不用管)
      • 查找当前目录下权限为 777 的文件或目录
      • rwxr--r-- 744
      • r4w2x1
  • du
    • 查看文件大小,与ls的统计方式不一样
  • cp
    • 拷贝文件
      • 将给出的文件或目录复制到另一个文件或目录中
    • cp 源文件 目标文件
    • 选项
      • -a
        • 该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性
      • -f
        • 已经存在的目标文件而不提示
      • -i
        • 交互式复制,在覆盖目标文件之前将给出提示要求用户确认
      • -r
        • 若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名。源文件尽量写成绝对路径
      • -v
        • -v显示拷贝进度
    • 当目标文件存在并且是目录的时候,会将其复制到该目录下,若存在,但是不是目录则报错,若不存在,不报错,复制并且重命名
  • mv
    • 移动文件
      • 可以使用mv命令来移动文件或目录,也可以给文件或目录重命名
    • mv 源文件 目标文件
    • -f -i -v
    • 若目标文件存在并且是目录的情况下,则将源文件移动到指定目录下,若目标文件存在但是不是目录,则源文件覆盖目标文件,若目标文件不存在,则将源文件进行重命名
  • ping
    • ping ip地址
      • 查看当前是否连接网络
  • tar
    • 归档管理
      • tar [选项] 打包文件名 文件
    • tar -cvf test.tar *
    • tar -xvf test.tar 目标文件
    • gzip
      • tar -zcvf test.tar.gz *
      • tar -zxvf test.tar.gz -C 目标文件
    • bzip2
      • tar -jcvf test.tar.bz2 *
      • tar -jxvf test.tar.bz2 目标文件
    • tar -tvf
      • 显示被压缩文件列表
    • tar -xvf 被压缩文件 指定文件名
      • 解压指定文件
    • tar -zcvf 被压缩文件名 * --exclude=pattern
      • 排除指定文件进行压缩
  • zip/unzip
    • zip -r myzip *
      • 压缩文件
    • unzip -d ./test myzip.zip
      • 解压文件到指定路径
  • which
    • 查看命令位置
      • which ls
  • tree
    • 查看目录结构
  • tail
    • 查看文件尾部内容
    • tail用于显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行
    • tail -n 20 file
      • 20行
    • tail -c 10 file
      • 10个字符
  • echo
    • 输出字符串或提取shell变量的值
    • echo "LinuxCool.com"
    • echo $PATH
      • /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    • echo -e ‘\033[31m哈哈 \033[0m‘
      • 红字
  • less
    • 分页显示工具
    • 浏览文字档案的内容,用less命令显示文件时,PageUp键向上翻页,PageDown键向下翻页,要退出less程序,应按Q键。
  • kill
    • 查看指定进程:ps -ef | grep ‘firefox‘
      杀死进程: kill -9 pid
  • wc
    • 统计文件的字节数、字数、行数
    • -w
      • wc -w test.txt
        • 显示单词计数
    • -c
      • 字节数
    • -l
    • -m
      • 字符数
  • vi
    • 进入vi末行模式:
    • set nu set nonu set list set nolist

用户、权限管理

  • whoami
    • 查看当前用户
  • who
    • 查看登陆用户
      • -m/-q/-H
        • 只显示运行who命令的用户名、登录终端和登录时间
        • 只显示用户的登录账号和登录用户的数量
        • 显示列标题
  • exit
    • 退出登陆用户
  • useradd
    • 添加用户账号
    • -g
      • 指定组名称
        • 如果创建用户名的时候不指定组名,那么系统会自动创建一个和用户名一样的组名
      • -r
        • 新建系统用户,但是仍能登陆
      • useradd -r lotuslaw2 -s /sbin/nologin
        • 不能登陆
      • 新建用户,ls-a显示家目录的隐藏文件
        • 改.bash_logout 登出后显示
        • 改.bashrc name=hello,登陆后调用 echo $name
  • passwd
    • passwd 用户名
      • 改密码
  • userdel
    • 删除用户
    • userdel 用户名
    • userdel -r 用户名
      • 删除用户同时删除用户的主目录
  • su
    • 切换用户
    • su/su root
      • 切换到root用户
    • su -/su - root
      • 切换到root用户同时目录切换到/root
    • su 普通用户
    • su - 普通用户
  • sudo
    • 其他用户暂时获得root用户的权限
    • sudo 命令
    • visudo
      root ALL=(ALL) ALL
      lotuslaw1 ALL=(ALL) ALL
    • 用户添加至wheel组
  • groupadd
    • 添加组账号
      • groupadd 组名
    • cat /etc/group
      • 查看用户组
  • groupdel
    • 删除组账号
      • groupdel 组名
  • usermod
    • 修改用户所在组
    • usermod -g 用户组 用户名
      • 修改用户组名
    • usermod -G 用户组 用户名
      • 额外添加到一个组
  • groups
    • groups 用户名
      • 查看用户在哪个组
  • chmod
    • 修改文件权限
      • --- (000): 0
        -wx (011): 3
    • chmod u/g/o/a +/-/= rwx 文件
    • chmod u=rw,g=x,o=r test.txt
    • chmod 777 test.txt
    • chmod 777 test/ -R 递归 test 目录下所有文件加 777 权限
  • chown
    • 修改文件所有者
    • chown 拥有者名.组名 文件名
    • chown .组名 文件名
  • chgrp
    • 修改文件所属组
      • 用chown代替

系统管理

  • cal
    • 查看当前日历
    • cal -y 2020
  • date
    • 显示或设置时间
    • date
      • 2020年 07月 22日 星期三 05:43:53 EDT
    • date +%F
      • 2020-07-22
    • date +‘%F %T‘
      • 2020-07-22 05:43:30
    • date +‘%y_%m_%d %H:%M:%S‘
      • 20_07_22 05:46:32
    • touch file_$(date +‘%y_%m_%d %H:%M:%S‘)
      • 创建文件接当前时间
      • $(命令)
      • 命令
  • ps
    • 查看进程信息
    • ps -ef
    • ps -aux
      • ps aux |head -n 2
      • head
        • 头10行
  • top
    • 动态显示进程
  • kill
    • 杀死进程
    • -9
      • 强制杀死
    • -15
      • 正常中止
        • 子进程结束后关闭父进程
  • reboot
    • 重启操作系统
  • shutdown
    • shutdown -r now
      • 立即重启操作系统
    • shutdown -h now
      • 立即关机
  • init
    • init 0
      • 关机
    • init 6
      • 重启
  • df
    • 检测磁盘空间
    • df -h
      • 适合人查看的方式显示
  • du
    • 检测目录所占磁盘空间
      • du更侧重磁盘使用情况
    • -s
      • 显示指定文件或目录占用的数据块,(相当于ls里的-d)
    • du -sk
      • 以k展示
  • ifconfig
    • 查看或配置网卡信息
    • ifconfig ens33 192.168.1.108
      • 修改ens33的ip
        • 如果已被占用会出问题
  • ping
    • 测试远程主机连通性
    • ping www.baidu.com
    • ping 192.168.1.1

编辑器之神vim

  • vi
    • vi是“Visual interface”的简称
      • 命令模式
      • 文本输入模式
        • i
      • 末行模式
        • :
  • vim
    • vim是从 vi 发展出来的一个文本编辑器 。代码补完、编译及错误跳转等方便编程的功能特别丰富
    • 命令模式下:i/o(向下新开一行插入行首)进入输入模式
    • 命令模式:gg(光标移动到文件开头)G(光标移动到文件末尾)
    • 命令模式:x删除一个字符
    • yy/p/dd
    • 命令模式:u撤销
    • 命令模式:r替换字符
    • 末行模式
      • :%s/abc/123/g
        • 末行模式下,将文件中全部的abc替换成123
      • :1, 10s/abc/123/g
        • v
    • wq/q!/wq!

CentOS软件安装与卸载

  • yum update

    • 更新源(所有)
      • 运维的界面
  • yum install package

    • 安装包
    • yum install package -y
      • 无需确认
  • yum remove package

    • 删除包
  • yum search package

    • 搜索软件包
  • yum info package

    • 获取包的相关信息
  • yum reinstall package

    • 重新安装包
  • yum provides keyword

    • 查找提供指定内容 keyword 的软件包
  • 在 Centos系统安装 Redis

    • yum install epel-release
      yum install redis
      # 启动
      systemctl start redis
  • 使用rpm管理软件包

    • rpm -qa

      • 查询系统中已经安装的软件包
    • rpm -ql package

      • 查询软件包 package 在系统中安装了哪些文件
    • rpm -qc package

      • 查询软件包 package 在系统中安装了哪些配置文件
    • rpm -qf /path/file

      • 查询文件/path/file 由那个软件安装的
    • yum仓库

      • rpm包的管理分为 rpm命令管理和yum在线管理,rpm命令管理由于可能需要解决各种依赖问题,在安装软件的时候可能显得比较麻烦,然而,yum在线管理正好和它相反。Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。SO,SO,SO它用起来是相当的方便,特别适合初学者使用。 不过yum的安装源可以是网上的,也可以是光盘上的呢,要是我们使用网络上的yum源,那么,这些yum源来自于哪里呢?在我们的/etc/yum.repo.d/目录下,我们可以看到我们可以使用的yum源,如果/etc/yum.repos.d/里的所有文件不改动,默认启用网络yum源,如果把除CentOS-Media.repo以外的yum源暂时修改,并将CentOS-Media.repo里面的内容做下修改,就能启用本地光盘yum源
        一般,只要我们的网络连通, 上面的yum源都是合法的yum源。一般在有网络的情况下,默认会从“Base”yum源中下载我们需要的rpm包以及各种依赖包进行自动安装,在没有网络的情况下,则会选择“Media”yum源——本地光盘yum源.
         
        /etc/yum.repos.d/
        CentOS-Base.repo
        CentOS-Debuginfo.repo
        CentOS-Media.repo
        CentOS-Vault.repo
         
        其中CentOS-Base.repo用于网络yum源的配置
        CentOS-Media.repo 用于光盘yum源的配置
        

python3虚拟环境安装

  • virtualenv概述
    • virtualenv是用来创建Python的虚拟环境的库,虚拟环境能够独立于真实环境存在,并且可以同时有多个互相独 立的Python虚拟环境,每个虚拟环境都可以营造一个干净的开发环境,对于项目的依赖、版本的控制有着非常重要的作 用。
  • 安装虚拟环境
    • pip3 install --upgrade setuptools
      pip3 install virtualenvwrapper
  • 配置环境变量
    • 进入家目录~
    • vim打开.bashrc
      • # 设置所有虚拟环境的主目录,声明全局环境变量
        export VIRTUALENVWRAPPER_PYTHON=$(which python3)
        export WORKON_HOME=/root/.virtualenvs
        source /usr/local/bin/virtualenvwrapper.sh
    • 在家目录创建.virtualenvs目录
      • mkdir .virtualenvs
    • 加载修改后的设置,使之生效
      • source .bashrc
  • 基本操作
    • mkvirtualenv py37 ‐p /usr/bin/python3 (指定python路径)
      退出虚拟环境 deactivate
      进入虚拟环境: workon 虚拟环境名称
      删除虚拟环境 rmvirtualenv env

1-Linux

上一篇:如何通过Mac或PC重置HomePod mini呢?


下一篇:基于USB网卡适配器劫持DHCP Server嗅探Windows NTLM Hash密码