一、Linux的背景
1991年5月,Linux发明出来的,被誉为“Linux之父”。
二、Linux一切皆文件
Linux系统中所有的都是文件,包括鼠标键盘等。
Linux中一切没有消息的消息就是最好的消息。
三、基本命令的学习
命令的组成:cmd【选项】【参数】
手册的查看:man---->打开首次;man man---->具体使用命令。
命令展示:
【pwd】显示当前路径。
【cd】切换工作路径
注:Linux文件系统结构从“根”开始,用“/”表示。
当路径从根开始算,表示绝对路径。
当路径从当前路径开始算,表示相对路径,其中 .---> 当前路径 ..---->上一级路径
【ls】列出目录内容
【-a】:显示所有文件(加点的表示为隐藏文件)
【- l】:单列输出
【-d】:将目录名像其他文件列出来,但不显示它内容(显示指定目录)
【-h】:大小带单位,不带单位的以字节形式表现
【- i】:显示ID,同一文件目录下,文件ID是唯一的
【cat】查看文件内容的全部
【more】查看文件的内容
【less】按屏显示文件内容,“/”+关键字: 搜索,按“Q”退出,较【more】命令更灵活。
【head】/【tail】显示文件的前/后几行
【cp】复制文件,文件夹加上【-r】表示目录文件
【mv】剪切文件,格式为:【mv】+源文件+目的目录
注:切勿切电脑的本身文件。
【mv】+文件名+当前文件夹 ---->重命名
【rm】删除文件,格式为:【rm】+源文件,【-r】--->目录【-f】--->强制删除
【touch】创建空文件
【mkdir】创建空目录
关机命令都有:(1)shutdown -h now (2)poweroff (3)init 0 (4)halt
重启命令都有:(1)shutdown -r now (2)reboot (3)init 6
【uname -r】内核版本
【history】查看历史命令
四、文件管理
包括文件属性(元信息)、文件查找、文件的打包压缩
文件属性
查看文件属性:(1)stat + 文件的路径 --->查看文件的全部属性 (2)ls -l --->查看文件的部分属性
文件类型
Linux不易后缀名区分文件类型,它只有7种文件类型:
- ---> regular 普通文件
d ---> directory 目录文件
c ---> charactor 字符设备文件
b ---> block 块设备文件
l ---> link 符号链接文件
p ---> pipe 管道文件
s ---> socket 套接字文件
文件权限
非目录文件权限:r--->读 w--->写 x--->执行
8进制表示法:1--->r、w、x 0---> — 8进制以“0”开头
eg:0635 6--->110——>rw- 3--->011——>-wx 5--->101——>r-x
目录文件权限:u--->拥有者 g--->所属组 o--->其他用户
权限对于root没有意义,但是对于普通用户意义很大。
修改文件权限:(1)chmod u/g/o a(+/-) r/w/x +文件名
(2)chmod + 8进制 + 文件名
修改文件的拥有者和所属组:chown + 拥有者:所属组 + 文件名
目录文件中的r/w/x:
-r 将当前目录显示到终端 eg:ls
-w 写目录 eg:touch/mkdir/rm
-x 可搜索,可进入 eg:cd
【umask】文件屏蔽字,为防止产生权限过大文件。
普通文件的权限都是0666,最终权限取决于屏蔽字的大小。
mode & ~umask ---> 文件真正的权限
【-s】特殊权限,当所有用户在执行passwd命令,【-s】权限会将用户变为拥有着的身份。
sudo cat /etc/shadow
gedit /etc/sudoers
文件的硬链接:一个文件,多了个名,用命令【cp -l】 / 【 ln】 创建
inode是同一分区文件的唯一标识,故不能跨分区。
文件的软链接:即符号链接,就是给文件创建一个快捷方式。
用【ln -s】创建,用于存放文件的路径,可跨区。
创建用户
useradd + 用户名 --->创建用户
passwd + 用户名 --->给定密码
su - + 用户名 --->切换用户
userdel -r + 用户名 ---> 删除用户
exit ---> 登出用户
用户信息: /etc/passwd
组信息: /etc/group
密码: /etc/shadow
创建组
groupadd + 组名 --->组创建
groupdel + 组名 ---> 组删除
gpasswd -a + 用户名 + 组名 --->用户添加到组内
gpasswd -d + 用户名 + 组名 --->用户从组中删除
文件大小
【ls -l】只是查看文件的所占字节,不属于占磁盘空间大小
磁盘空间大小 --->(block) 1 block = 512 bytes 可用命令【stat】查看
【du -sh + 文件名】 查看文件所占用磁盘空间的大小
【du -s】 访问磁盘大小
【du -f】 查看当前磁盘分区占用情况
文件时间
最后一次访问时间:access time
最后一次更改时间:modify time ---->内容改变 【ls -l】
最后一次改动时间:change time --->属性改变
文件的查找:分为可执行文件和非可执行文件
可执行文件:
环境变量:echo $PATH --->是个路径
which/whereis + 路径 --->内部命令,是当前解释器能实现的
非可执行:
locate filepath --->遍历数据库
updatedb ---> 更新数据库
find(遍历磁盘空间)
find + 路径 + 选项
选项有:
-name 按名字找 eg: find /etc/ -name "passwd"
-size 按文件大小查找 eg: find /etc/ -size n(b/c/k)
-mtime 修改时间 eg:find /etc/ -mtime n(天)
-type 类型 eg:find /etc/ -type f/d/c/b/p/l/s
-exec 对于查找到的结果执行 eg:find /etc/ -name "hello" -exec ls -l {} \; ---> 只对找到的文件执行ls -l结果,不打印路径
-ok 执行之前会询问 eg:find /etc/ -name "hello" -ok ls -l {} \; ---> 在执行ls -l之前会询问
-print 打印查找的结果 eg: find /etc/ -name "hello" -print -exec ls -l {} \; ---> 对找到的文件执行ls -l结果,打印路径
-a 连接多个查找选项 eg: find /etc/ -type d -a -size +10k
文件的打包与压缩
压缩格式都有:【.gz】、【.bz2】、【.zip】
文件压缩为【.gz】格式: gzip + 文件名 解压命令为:gunzip
文件压缩为【.bz2】格式:bzip2 + 文件名 解压命令为:bunzip
文件压缩为【.zip】格式: zip + 文件名.zip + 源文件名 解压命令为:unzip + 文件名
【.zip】是将多个文件放入一个压缩包中,其本身具有压缩打包的功能。
【tar】命令:打包并压缩
其格式为:【tar】+ 选项 + 文件名.tar.格式 + [*]--->表示当前目录下所有文件
常用选项有:
-c --->创建包
-v --->过程可视化
-f --->压缩包文件名(置于选项命令最后)
-z --->生成.gz格式的压缩文件
-j --->生成.bz2格式的压缩文件
-J --->生成.xz格式的压缩文件
-C --->指明压缩路径
-t ---> 不解压不解包的情况下,查看压缩包中的内容
-r ---> 向压缩包内追加文件,只允许向包中放入新文件
文件的重定向
当用户登陆登陆成功后,有三个文件依次打开:
标准输入(0)、标准输出(1)、标准错误输出(2)
0< 标准输入重定向
1> 标准输出重定向
2> 标准错误输出重定向
>> 追加
"|" ---> 管道
【wc -l】 (line) ---->统计行数 【wc -c】(charactor)---->统计单词个数 【wc -w】(word)---->统计单词个数
【grep】:筛选文件内容
-n ---> 确定内容在文件的第几行
-i ---> 忽略大小写
-w ---> 精确查找
【vim】--->编辑器
【vim】 + 文件名 ----> 打开vim,进入vim的一般模式
从一般模式进入编辑模式:按(“i” “I” “a” “A” “o” “O” “s” “S”)
从编辑模式进入一般模式:按(“Esc” 或 “ctrl + c”)
从一般模式进入命令行模式:按(“w” ---> 保存 “q” ---> 退出)
在一般模式下的命令:
yy--->复制,需要复制几行,在前面加行数。
p--->粘贴
dd--->剪切,需要剪切几行,在前面加行数。
u --->撤销
ctrl + r --->还原
x/X --->光标所在字符处开始删除 ==【delete】
r/R --->替换 【R】--->一直替换到Esc为止
gg --->首行,到第几行前面加数字
G --->末行
/ --->搜索
在命令行模式下的命令:(都需用 “ :” 开头)
w --->保存
q --->退出,加 !表示强制退出
w + 文件路径 ---> 另存为 == saveas
set number/nonumber --->显示/不显示行号
%s/oldstring/newstring/g --->将所有的oldstring替换为newstring
2,5s/oldstring/newstring/g --->将第2行到第5行oldstring替换为newstring
set nu --->显示行号
set ts=4 ---> 将Tab设置为4个字符宽度
x ---> 加密
五、软件包的管理
源码包:
.tar.gz .tar.bz2 .tar.xz
<1>下载并解压解包
<2>编译make
<3>make install
二进制包(.rpm)
【yum】 安装:(/etc/yum.repo.d/xxx.repo)
yum install 文件名 --->安装
yum remove 文件名 ---> 卸载
yum repolist ---> 查看仓库中有多少软件包
yum list --->列出所有的软件包
yum provides /usr/bin/ls --->查看文件对应的软件包
yum update --->更新
yum clean all --->清除缓存
yum源所在路径:/etc/yum.repos.d/xxx.repo
本地yum源配置:
1.将镜像文件挂载到文件系统
2.创建镜像的挂载点 mkdir /mnt/centos7
3.光盘镜像在/dev/cdrom目录
4.挂载光盘镜像
mount -t iso9660 -o loop /dev/cdrom /mnt/centos7
5.配置镜像的yum源
vim /etc/yum.repos.d/my.repo
文件的内容:
[local_centos7]
name=centos7
baseurl=file:///mnt/centos7
enabled=1
gpgcheck=0
已下载的【rpm】软件包,安装:
rpm -ivh +包名 ---> 安装已下载的rpm包
rpm -e +包名 ---> 卸载
rpm -U +包名 ---> 更新
rpm -qa ---> 查询系统中所有已安装的rpm包
rpm -qf + 路径 ---> 查询对应的软件包
六、网络管理
【ifconfig】 ---> 查看ip地址,将iP,mac,网关等都显示出来
【iP addr】 ---> 查看mac地址
【ip route】 ---> 查看路由表
【systemctl status + 服务名】 ---> 查看服务状态
【systemctl stop + 服务名】 ---> 关闭服务状态
手动配置静态ip:
1、关闭NetworkManager 命令:【systemctl stop NetworkManager】
2、配置/etc/sysconfig/network-scripts/ifcfg-xxx
DEVICE=eth0
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
IPADDR=172.16.60.1
PREFIX=24
GATEWAY=172.16.60.254
3、重启网络服务 命令:【systemctl restart network】
防火墙
【systemctl status firewalld】 ---> 打开防火墙
【systemctl stop firewalld】 ---> 关闭防火墙
【systemctl disable firewalld】 ---> 禁用防火墙
文件共享
安装: 【yum install vsftpd】
启动: 【systemctl status vsftpd】
开机自启动:【systemctl enable vsftpd】
配置文件: 【/etc/vsftpd/vsftpd.conf】
访问共享目录:
下载安装:【yum install lftp】
访问地址:【lftp 192.168.5.129】
get ---> 下载非目录文件
mirror ---> 下载目录文件
lcd ---> 切换下载路径
bye ---> 退出
nfs远程挂载
下载安装;:【yum install nfs-utils rpcbind】
启动服务:
【systemctl start nfs】
【systemctl enable nfs】
【systemctl start rpcbind】
【systemctl enable rpcbind】
编辑共享路径:
【vim /etc/exports】
【/var/ftp/pub *(ro,sync,no_root_squash)】
客户端挂载:
【mount 192.168.5.129:/var/ftp/pub /mnt】
七、进程管理
【ps aux】 ---> 查看当前系统信息
【kill -l】 ---> 列出当前系统中的所有信号
【kill -2 + 进程号】 ---> 终止 == ctrl + c
【kill -9 + 进程号】 ---> 干掉一个进程,只要是用户创建的均可以干掉
【man 7 signal】 ---> 查看信号和信号行为,默认为15
【top】 ---> 实时查看系统中进程的运行状态
运行状态有: R ---> 运行 S ---> 睡眠,可中断 ---> 终端 Z ---> 僵尸状态(zombie)
八、虚拟机内安装python的步骤:
1、根据 pyenv.txt 逐步安装。注意:将 my.repo 中用户自定义安装的包删除或重命名。
2、重启虚拟机后,依次用命令【which python】和【which pip3】查看两个文件是否在同一目录下。
3、打开网络,用命令【pip3 install ipython】,升级python
4、升级中用到的命令:【pip install --upgrade pip】
5、开机自启动 network :【systemctl enable network】
6、命令: 【/ sbin / chkconfig network on】
7、用命令【ipython】 打开 python,用【exit】退出
九、【git】命令
1、创建仓库:登陆github帐号,创建远程仓库
2、同步到本地:
ssh-keygen
cat ~/.ssh/id_rsa.pub ---> 将密钥复制到帐号的key
打开远程仓库,找到SSH,创建SSH密钥并且复制密钥的链接
返回终端:git clone git@github.com:zhangzongyan/python20181119.git
其中:git@github.com:zhangzongyan/python20181119.git 表示本地仓库
3、用命令【ls】查看github库是否链接到本地文件夹
4、进入文件夹,查看是否有文件REDM,存在表示链接成功
远程仓库与本地文件夹之间的上传与下载
cd git init
git add --->跟踪
git status --->查看仓库状态
git commit -m ---> 备注提交到仓库
git push ---> 推上服务器
git pull ---> 从服务器上把文件拉到本地
【git】的基本命令
git log ----->查看仓库日志(id)
git reset --hard id ----->切换到指定版本
git reflog ----->查看最新版本日志
git rm ----->删除
注:
(1)linux下主目录和根目录的区别
Linux系统的根目录是/,是树状形式目录的根,只有一个。而Linux系统的主目录是用户的HOME目录,添加用户的时候指定的。对于不同用户,主目录不同。对于用户名为user的用户,缺省的HOME目录是/home/user,root用户例外,它的缺省HOME目录是/root。在其他地方调用主目录使用~/