Linux目录
- /
- 根目录
- 一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。
- 根目录
- /bin、/usr/bin
- 可执行二进制文件的目录,如ls
- /boot
- 放置Linux系统启动时用到的一些文件,如Linux的内核文件/boot/vmlinuz
- /dev
- 存放Linux系统下的设备文件
- 访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt
- 存放Linux系统下的设备文件
- /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
- 安装vim
- ctrl + c
- 中止命令
- echo
- 查看内容,尤其用来查看变量,注意与cat的区别,cat查看文件
常用操作
- Tab
- 自动补全
- ↑↓
- 查看之前输入的命令
- history
- 查看历史所有命令
- ip a
- 查看ip地址
- 配置网卡
- vi /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network
- vi /etc/sysconfig/network-scripts/ifcfg-ens33
访问用户及访问权限
- 访问用户
- 用户
- 文件所有者
- 用户组
- 一个用户能够授予所在用户组的其他成员以文件访问权限
- 其他用户
- 允许系统中的任何用户访问
- 用户
- 访问权限
- r
- 读权限
- 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限
- 读权限
- w
- 写权限
- 对文件而言,具有新增、修改,删除文件内容的权限;对目录来说,具有删除、移动目录内文件的权限
- 写权限
- x
- 可执行权限
- 对文件而言,具有执行文件的权限;对目录来说该用户具有进入目录的权限,如果目录无可执行权限,则也没有读写权限
- 可执行权限
- r
- 示例
- drwxrwxr-x2pythonpython
-rwxrwxrwx1pythonpython
(-类型)(---拥有者的权限)(---用户组的权限)(---其他用户的权限)-(------拥有者)(------用户组) - “d” 代表文件夹
“-” 代表普通文件
“l” 代表软链接文件
“c” 代表硬件字符设备
“b” 代表硬件块设备
“s” 表示管道文件
- drwxrwxr-x2pythonpython
命令格式
- 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中的任意一个字符
- 如果要使通配符作为普通字符使用,可以在其前面加上转义字符。“?”和“*”处于方括号内时不用使用转义字符就失去通配符的作用
-
- -a -l -h
- 输出重定向
- >
- 输出重定向会覆盖原来的内容
- 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
- 存真实文件内容
- inode节点号
- grep
- 文本搜索
- grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行
- 在grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grep ‘a ’ 1.txt。
- -v
- 显示不包含匹配文本的所有行
- -n
- 显示匹配行及行号
- -i
- 忽略大小写
- -o
- 只显示匹配内容
- -B n 把匹配行之前的n行也输出
- -A n 把匹配行之后的n行也输出
- -v
- 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显示拷贝进度
- -a
- 当目标文件存在并且是目录的时候,会将其复制到该目录下,若存在,但是不是目录则报错,若不存在,不报错,复制并且重命名
- 拷贝文件
- mv
- 移动文件
- 可以使用mv命令来移动文件或目录,也可以给文件或目录重命名
- mv 源文件 目标文件
- -f -i -v
- 若目标文件存在并且是目录的情况下,则将源文件移动到指定目录下,若目标文件存在但是不是目录,则源文件覆盖目标文件,若目标文件不存在,则将源文件进行重命名
- 移动文件
- ping
- ping ip地址
- 查看当前是否连接网络
- 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
- 解压文件到指定路径
- zip -r myzip *
- 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
- 查看指定进程:ps -ef | grep ‘firefox‘
- wc
- 统计文件的字节数、字数、行数
- -w
- wc -w test.txt
- 显示单词计数
- wc -w test.txt
- -c
- 字节数
- -l
- -m
- 字符数
- vi
- 进入vi末行模式:
- set nu set nonu set list set nolist
用户、权限管理
- whoami
- 查看当前用户
- who
- 查看登陆用户
- -m/-q/-H
- 只显示运行who命令的用户名、登录终端和登录时间
- 只显示用户的登录账号和登录用户的数量
- 显示列标题
- -m/-q/-H
- 查看登陆用户
- exit
- 退出登陆用户
- useradd
- 添加用户账号
- -g
- 指定组名称
- 如果创建用户名的时候不指定组名,那么系统会自动创建一个和用户名一样的组名
- -r
- 新建系统用户,但是仍能登陆
- useradd -r lotuslaw2 -s /sbin/nologin
- 不能登陆
- 新建用户,ls-a显示家目录的隐藏文件
- 改.bash_logout 登出后显示
- 改.bashrc name=hello,登陆后调用 echo $name
- 指定组名称
- passwd
- 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 用户名
- 查看用户在哪个组
- groups 用户名
- chmod
- 修改文件权限
- --- (000): 0
-wx (011): 3
- --- (000): 0
- 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
- 立即关机
- shutdown -r now
- init
- init 0
- 关机
- init 6
- 重启
- init 0
- df
- 检测磁盘空间
- df -h
- 适合人查看的方式显示
- du
- 检测目录所占磁盘空间
- du更侧重磁盘使用情况
- -s
- 显示指定文件或目录占用的数据块,(相当于ls里的-d)
- du -sk
- 以k展示
- 检测目录所占磁盘空间
- ifconfig
- 查看或配置网卡信息
- ifconfig ens33 192.168.1.108
- 修改ens33的ip
- 如果已被占用会出问题
- 修改ens33的ip
- ping
- 测试远程主机连通性
- ping www.baidu.com
- ping 192.168.1.1
编辑器之神vim
- vi
- vi是“Visual interface”的简称
- 命令模式
- 文本输入模式
- i
- 末行模式
- :
- vi是“Visual interface”的简称
- 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
- :%s/abc/123/g
- 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
- yum install epel-release
-
使用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
- pip3 install --upgrade setuptools
- 配置环境变量
- 进入家目录~
- 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
- mkvirtualenv py37 ‐p /usr/bin/python3 (指定python路径)