zoukankan      html  css  js  c++  java
  • 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 '33[31m哈哈 33[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

    通过开启和关闭hyper-v功能,切换使用Docker或VMware

    • powershell中使用管理员权限运行下面的命令
    # 关闭
    bcdedit /set hypervisorlaunchtype off
    # 开启
    bcdedit /set hypervisorlaunchtype auto
    
  • 相关阅读:
    HZNU1015: 矩阵排序
    The 6th Zhejiang Provincial Collegiate Programming Contest->ProblemK:K-Nice
    The 6th Zhejiang Provincial Collegiate Programming Contest->Problem I:A Stack or A Queue?
    The 6th Zhejiang Provincial Collegiate Programming Contest->ProblemF:80ers' Memory
    The 6th Zhejiang Provincial Collegiate Programming Contest->ProblemB:Light Bulb
    The 6th Zhejiang Provincial Collegiate Programming Contest->ProblemA:Second-price Auction
    The 5th Zhejiang Provincial Collegiate Programming Contest------ProblemK:Kinds of Fuwas
    The 5th Zhejiang Provincial Collegiate Programming Contest---ProblemG:Give Me the Number
    The 5th Zhejiang Provincial Collegiate Programming Contest---ProblemF:Faster, Higher, Stronger
    The 5th Zhejiang Provincial Collegiate Programming Contest---ProblemE:Easy Task
  • 原文地址:https://www.cnblogs.com/lotuslaw/p/14801292.html
Copyright © 2011-2022 走看看