一、Linux背景
从这节中了解了Linux创始人:linus Torvalds。
1991年,Linus Torwalds发布了Linux0.02版,能够运行gcc和bash
1994年,Linux1.0版本发布
Linux文件目录含义:
/boot 系统启动过程中使用的文件 /usr 系统存放软件的地方 /home 用户家目录 /var/log 日志 /tmp 临时文件 /dev 设备文件
/opt 可选软件 /sbin 标准系统管理文件 /bin 标准系统实用程序 /etc 配置文件 /lib 程序库
不同颜色代表不同目录:蓝色: 目录 绿色: 可执行文件 红色: 压缩文件 浅蓝色: 链接文件 灰色: 其他文件
二、Linux一切皆文件
Linux一切皆文件,在输入命令时未提示其他错误消息那就是好消息。
三、基本命令学习
输入命令式一般为输入的命令加上选项或者文件等等,命令如:cd,pwd,ls这些都是命令。当对有什么命令不懂时也可以使用手册。man打开手册,比如想要更加了解ls命令时可以采用man ls。
pwd 显示当前工作路径。 cd切换工作路径 工作路径分为两种:路径如果从 /开始算,就为绝对路径。路径如果为 .就是为相对路径 (..为上一级)
ls options:分为 -a -l -i -d -h,分别为查看隐藏文件,查看文件属性,查看文件inode,显示自身文件,确切显示文件大小(单位)
cat 查看文件内容 less查看文件内容,按屏显示。/key搜索、q退出。 headfilepath -行数 filepath显示文件前几行,tail filepath -行数 显示filepath后几行
复制:cp 目录/文件 目标文件 剪切: mv 目录/原文件 目标文件 rm -r -f 文件:删除文件/目录 -f是强制删除 同时mv也可以重命名
touchu file 创建一个文件 mkdir dirname 创建一个目录 关机:shutdown -h now,poweroff,init 0 halt重启:shutdown -r now reboot ini6
history-->查看历史命令
四、
文件管理:文件信息(元信息)
<1>stat filepath 显示文件属性和三个时间以及各种权限 <2>ls-l filepath 显示文件权限大小
文件类型d linux环境下不易后缀区分类型:七种文件类型
- 普通文件 d目标文件 c 字符设备文件 b 块设备文件 l 符号链接文件 p 管道文件 s 套接字文件
文件权限:
rwxr--r--
前三项为拥有者,中间三项为拥有组,最后三组为其他用户
修改权限文件:chmod u/g/o/a (+ -)r/w/x filepath 或者chmod +八进制数字
修改文件拥有者和所属组
chown user:group filepath 前面加用户名后面加组名
文件:文件的rwx权限为r:可读,w:可以进行改写,x:可以运行。
目录:r:为可以查看目录内文件 w:可以增加和删除目录里内容 x:能够被查询和搜索
防止产生权限过大的文件:
umask
mode & ~umask === 文件真正的权限
mode 和 umask 取反再取与(不是很明白)
特殊权限:u + s -->所有有此权限的执行文件,可以使普通用户在执行此命令期间将身份切换为文件拥有者
sudo命令和用户在更改密码时都是将自己身份提高,有个别是降低。
文件的硬链接个数 2
硬链接;同一个文件,多一个名字
innode 是同一个分区文件的唯一标识,所以硬链接文件不能跨分区,命令是ln,ln加原文件加上你要起的硬链接的名字。
符号链接(软连接)
ln-s,创建的就是一个快捷方式,可以跨区。innode不同,保存的是一个路径。
文件拥有者和所属组:创建用户:useradd +用户名 删除用户命令:userdel +用户名 切换用户:su - username 登出用户:exit
给定密码:passwd username
用户信息:/etc/passwd 组信息:/etc/group 密码:/etc/shadow
组创建:groupadd+组名 删除组:groupdel+组名 用户添加到组:gpasswd -a 用户名:组名 用户从组中删除:gapsswd -d 用户名:组名
文件大小:文件大小!=空间磁盘大小
stat filepath:block ==512byte
du -sh filepath 查看filepath对应的文件所占用的磁盘空间大小
df -h 查看磁盘分区占用情况
文件时间
access time 最后一次访问文件的时间
modify time 最后一次改变内容的时间
changge time 最后一次改变属性的时间
文件的查找
分为可执行文件和不可执行文件
可执行文件:which cmd whereis cmd
非可执行文件:遍历数据库 loucate filepath 更新数据库 updatedb
find(遍历磁盘空间)
find path options -name -type -size -mtime
-exec -ok 对于查找到的结果可以进行执行额外的命令,-ok可以询问一下 print 对查找的结果进行打印 -a链接多个查找选项的
文件的打包压缩,压缩
.gz .bz2,zip主要是讲解tar
tar options xx.tar.xx file(dir):中间是压缩后的压缩包名,最后是将要压缩的文件
options:-c 创建 -v 可视化 -x 解压缩 -f 在最后,跟包名 -j 生成bz2格式 -z 生成gz格式 J 生成xz格式 -C指定 解压缩路径 -r 可以在包中加入新的文件 -t 在不解压缩包中的情况查看压缩中内容
文件重定向
当用户登陆成功后,三个文件依次打开:
标准输入(stdin 0) 标准输出(stdout 1) 标准错误输出(stderr 2)
0< 标准输入重定向
1> 标准输出重定向
2> 标准错误输出重定向
>> 追加(不是很明白)
| 管道 管道前加输入源 | 管道后加函数
wc[-lwc]filepath(wc+选项 l为查看多少行 w 查看单词个数 c为字符个数)
grep [-iwn] key filepath ---->筛选文件内容 (-i为忽略大小写,-w为精确查找,-n为查看关键字行数)
vim编辑器的使用:
vim filepath---->打开--->一般模式 --->进入编辑模式进行编辑(iIaAoOsS) --->从编辑模式进入一般模式(Esc / Ctrl+c)
--->从一般模式进入命令行模式(:w保存 :q退出)
一般模式下:
2yy 复制2行 p 粘贴 2dd 剪切2行 u 撤销 Ctrl+r 还原 x/X 删除光标字符 r 替换 R 一直替换到Esc为止
块选择:
ctrl+v 方向键选择 :I / A 插入相应内容--->Esc Esc
gg 首行
G 末行
5G 第5行
命令行模式下:
w 保存
q 退出
q! 强制退出
w filepath 另存为
saveas filepath 另存为
%s/oldstring/newstring/g 将所有的oldstring替换为newstring
2,5s/oldstring/newstring/g 将第2行到第5行oldstring替换为newstring
set nu 显示行号
set ts=4 将Tab设置为4个字符宽度
五.软件包管理
源码包
.tar.gz .tar.bz2 .tar.xz <1>下载并解压解包 <2>编译make <3>make install
二进制包(.rpm)
yum 安装:
/etc/yum.repos.d/xxx.repo-->yum源
yum install xxxx
例如有如下软件包:
coreutils-8.22-21.el7.x86_64.rpm
coreutils包名 yum install coreutils 安装 yum remove coreutils 卸载 yum repolist 查看仓库中有多少软件包 yum list 列出所有的软件包
yum provides /usr/bin/ls 查看文件对应的软件包 yum update coreutils 更新 yum clean all 清除缓存
本地yum源配置:
1.将镜像文件挂载到文件系统 2.创建镜像的挂载点 mkdir /mnt/centos7 3.光盘镜像在/dev/cdrom目录
4.挂载光盘镜像 mount -t iso9660 -o loop /dev/cdrom /mnt/centos7
挂载成功后去centos7里面会有这些文件
5.配置镜像的yum源 vim /etc/yum.repos.d/my.repo
[local_centos7]
name=centos7
baseurl=file:///mnt/centos7
enabled=1
gpgcheck=0
my。repo是自己加的配置文件
已下载的rpm软件包,安装:
xxxx.rpm
rpm -ivh xxxx 安装已下载的rpm包 rpm -e xxxx 卸载 rpm -U xxxx 更新 rpm -qa 查询系统中所有已安装的rpm包 rpm -qf /usr/bin/ls 查询ls对应的软件包
<5>vsftpd服务 ---> 文件共享
安装:yum install vsftpd
启动:systemctl start vsftpd
开机自启动:systemctl enable vsftpd
配置文件:/etc/vsftpd/vsftpd.conf
访问共享目录:
下载安装:yum install lftp
lftp 192.168.5.129
lcd --->切换下载路径
get filepath 下载非目录文件
mirror filepath 下载目录文件
bye 退出
<6>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
需要读取别人所做的步骤
六.网络管理
<1>查看ip, mac, netmask....
ip addr
ifconfig
<2>查看/启动/重启/关闭/自启动/禁用服务
systemctl status/start/restart/stop/enable/disable 服务名字
<3>手动配置静态ip地址
关闭NetworkManager
systemctl stop NetworkManager
配置/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
重启网络服务
systemctl restart network
<4>防火墙
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
7.进程管理
查看进程信息
ps aux
其中一部分,上面有两个终端,我可以选择kill -9 加序列号杀死第一个终端
终止进程通过kill 发送信号
kill -l查看所有的信号
kill -9 3333 发送9号信号给进程号为3333的进程
top 实时查看系统中进程的运行状态
会随时间改变
git的基本使用
1.创建仓库
登陆github帐号,创建远程仓库
同步到本地
生成key:
ssh-keygen
cat ~/.ssh/id_rsa.pub 将密钥复制到帐号的key
git clone git@github.com:zhangzongyan/python20181119.git
python20181119---》本地仓库
workspace:工作区 index:暂存区 Reposttory:仓库区(或本地仓库) Remoote:远程仓库
基本使用命令
git add .---->追踪
git commit -m "备注" ---->提交到仓库
git push ---->提交到远程仓库
git pull ---->下载到本地仓库
git status ---->查看仓库状态
git log ----->查看仓库日志(id)
git reset --hard id ----->切换到指定版本
git reflog ----->查看最新版本日志
git rm ----->删除