Linux 基础总结
一、Linux背景
Linux一切皆文件 Linux一切没有消息的消息就是最好的消息
二、基础命令学习
命令组成:
命令+选项+参数
手册查看:
man 命令 (打开关于该命令的手册),具体使用man man
命令展示:
1.pwd 显示当前文件夹的路径
2.cd 切换至目标路径 cd空格/cd ~(返回该用户的家目录)
根目录:/ 用户家目录:/root(root用户) /home(普通用户)
绝对路径:从/(根目录)开始至当前目录
相对路径:从当前路径开始算到目标路径 . (当前文件夹) ..(当前文件夹的上一个文件夹)
3. ls 选项 参数(列出该参数的信息)
选项:-a(隐藏) -l(详细信息) -i(编号) -d(使文件夹像文件一样被列出,而不是列出其内容) -h(配合“-l”使用将其大小以KB显示)
4.查看文件内容
cat 文件(显示文件的全部内容)
less 文件(显示文件可用,可以使用滚轮翻看)
more 文件(显示文件内容,回车下一行,空格下一页)
5.复制 cp 【-r(目录)】 源文件路径 目标文件路径
6.剪切 mv 源文件路径 目标文件路径(路径相同,文件名不相同//重命名)
7.删除 rm 【-r(目录)-f(强制)】 文件路径
8.创建文件 touch 文件名 (空文件)
9.创建文件夹 mkdir 文件夹名
10.关机与重启
关机:(shutdow -h now)(poweroff)(init 0)(halt)
重启:(shutdow -r now)(reboot)(init 6)
11. history 查看历史命令
三、文件管理
文件属性(元信息)
1.stat 文件或文件夹名(查看文件的所有详细信息)
ls -l(都是查看信息,但是没有stat详细)
文件类型
文件的类型不以文件名的后缀区分
共有其中文件类型:
- 普通文件
d 目录文件
c 字符设备文件
b 块设备文件
p 管道文件
s 套接字文件
l 符号链接文件
文件的权限
查看文件的权限 ls -l 文件名
(文件类型)(拥有者权限【u】//所属组权限【g】//其他用户权限【o】)(硬链接数量)(拥有者)(所属组)(文件大小)(创建时间)(文件名)
文件:r(读)w(写)x(可以当做命令执行) 文件夹:r(读取文件夹信息)w(在文件夹内创建删除)x(打开)
防止产生权限过大的文件:
umask
初始权限(文件初始666,文件夹初始777)- umask===文件真正的权限
文件的硬链接和软链接
硬链接:同一个文件,名字不同
iNode是同一个分区文件的唯一标识
硬链接文件不能跨区
创建文件的硬链接
ln 源文件名 新的文件名
cp -l 源文件名 新文件名
软连接(符号链接):就是一个“快捷方式”,存储的是源文件的路径
可以跨分区,可以作用于文件夹
ln -s 源文件名 新的文件名
cp -s 源文件名 新的文件名
文件的拥有者和所属组:
创建用户:useradd 用户名
设置密码:passwd 用户名
切换用户:su - 用户名(不加-,不切换至 家目录)
删除用户:userdel 用户名
登出用户:exit
用户信息:/etc/passwd
组信息:/etc/group
密码信息:/etc/shadow
创建组:groupadd 组名
删除组:groupdel 组名
添加用户到一个组:gpasswd -a 用户名 组名
从一个组删除用户:gpasswd -d 用户名 组名
文件大小
文件大小(size)不等于所占磁盘空间大小(基础单位块(block))
stat 文件或文件夹(文件查看文件的详细信息(包括各种时间))
du -sh 文件或文件夹(查看文件或文件夹占用磁盘空间的大小)
df -h (查看磁盘分区占用情况)
文件时间
access time (最后一次访问时间)
modify time (最后一次更改时间)
change time (最后一次改动时间)
改动(文件属性)更改(文件内容)
文件查找
可执行文件:
which 命令文件
whereis 命令文件(不仅查询到命令的位置,还会查到命令手册位置)
不可执行文件:
locate 文件夹或文件(遍历数据库,查找文件夹时会显示所有找到所有包含该文件夹的文件)
updatedb (更新数据库)
find 范围 选项
选项:
-name 按名字查找
格式:find 范围 -name 文件名(不找关键词)
-size 按大小查找
格式:find 范围 -size (b(块)/c(字符)/k(KB))
-(大小范围内)+(大小范围外)
-mtime 按最后一次更改时间查找
-mmin (按分钟查找)
-(大小范围内)+(大小范围外)
-type 按类型查找
类型:(f(普通)/d(目录)/c(字符设备)/b(块设备)/l(字符链接)/p(管道)/s(套接字))
-exec 查找后对文件执行命令
格式:find 范围 选项 -exec 命令 {} ;
-a 连接多个查找选项
文件的打包压缩
压缩类型: .gz .bz2 .zip
压缩格式:
gzip 文件名 压缩为.gz 解压:gunzip 压缩包名
bzip2 文件名 压缩为.bz2 解压:bunzip2 解压包名
【上面的两个格式无法压缩文件夹,且压缩后源文件会消失,且名字无法更改】
zip 压缩包名 文件1 文件2 ... 解压:unzip 压缩包名
【可以压缩文件夹,且可以压缩到其他目录】
主要:
格式:tar 选项 xx.tar.xx 文件1 文件2 ...
选项:-c(创建)-v(过程可视)-f(在最后,跟包名)-j(生成bz2格式)-z(生成gz格式)-J(生成xz格式)-x(解压缩)
-C(指定解压路径)-t(不解包不解压查看压缩包内容)-r(只能想包中追加新文件)
四、文件重定向
当用户登陆后就会有三个文件依次打开:标准输入(stdin 0)标准输出(stdout 1)标准错误输出(stderr 2)
0< 标准输出重定向 1>标准输出重定向 2<标准错误输出重定向
五、管道
“ | ” 管道
管道左边要有输出,右边需要输入
wc 【-lwc】 文件或文件夹
-l(行数)-w(单词个数)-c(字符个数)
grep 【-iwn】关键字 范围
-i(大小写)-w(精准查找)-n(显示行号)
六、VIM编辑器的使用
vim 文件名----------------》打开————》一般模式
——》进入编辑模式编辑————》esc/Ctrl+c
——》:一般模式进入命令行模式(w保存,q退出)
一般模式下:
i:光标前插入 I:行前插入
a:光标后插入 A:行后插入
o:此行后插入一行 O:次行前插入一行
w/W:下一个单词 s:重新输入此字符
S:重新输入此行 nyy:复制n行
p:粘贴 u:撤销 Ctrl+r:还原
x/X:删除光标字符 ndd:剪切n行
r:替换 R:一直替换知道Esc为止
块选择:
Ctrl+v方向键选择
I/A插入相应的内容————》Esc Esc
gg首行 G末行 nG:第n行
命令行模式下:
:进入命令行
w保存 q退出 q!强制退出
w 文件名 (另存为) saveas 文件名(另存为)
%s/原字符串/新字符串/g 将所有原来的字符串替换为新的字符串
a,b/原字符串/新字符串/g 将a行到b行所有的原来的字符串替换为新的字符串
set nu(显示行号) set ts=n 将Tab设置为n个字符宽度
七、软件包管理
源码包
源码包格式:.tar.gz .tar.bz2 .tar.xz
1.下载并解压解包
2.编译make
3.make install
二进制包(格式: .rpm)
yum 安装:
/etc/yum.repo.d/xxxx.repo
yum install xxxx
例如有如下软件包:
coreutils-8.22-21.el7.x86_64.rpm
包名:coreutils
yum install (命令文件名) 安装
yum remove (命令文件名) 卸载
yum repolist 查看仓库有多少软件包
yum list 列出所有的软件包
yum provides 命令文件路径 查看命令文件对应的软件包
yum update 命令文件名(更新)
yum clean all (清楚缓存)
yum源的所在路径:/etc/yum.repos.d/xxxx.repo
本地yum源配置:
1.将镜像文件挂载到文件系统
2.创建镜像的挂载点 mkdir /mnt/centOS7
3.光盘镜像在/dev/cdrom目录
4.挂载光盘镜像
mount -t iso9660 /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
6.已安装的rpm软件包,安装:
xxxx.rpm
rpm -ivh xxxx 安装已下载的rpm包
rpm -e xxxx 卸载
rpm -U xxxx 更新
rpm -qa 查询系统中所有已安装的rpm包
rpm -qf 命令文件路径 查询命令文件对应的软件包
八、网络管理
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-nes33
DEVICE=eth0
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
IPADDR=172.16.60.1
PREFIX=24
GATEWAY=172.16.60.254
4.重启网络服务
systemctl restart network
5.关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
6.vsftpd服务————>文件共享
安装:yum install vsftpd
启动:systemctl start vsftpd
开机自启动: systemctl enable vsftpd
配置文件:/etc/vsftpd/csftpd.conf
7.访问共享目录:
下载安装:yum install lftp
lftp 192.168.5.129
lcd——>切换下载路径
get 文件(下载非目录文件)
mirror 文件夹(下载目录文件)
bye(退出)
8.远程挂载
下载安装:
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_squash)
客户端挂载:
mount 192.168.5.129:/var/ftp/pub /mnt
九、进程管理
查看进程信息
ps aux
终止进程通过kill 发送信号
kill -l (查看所有信号)
kill -9 n 发送9号信号给进程号为n的进程
top 实时查看系统中进程的运行状态
十、git的基本用法
1.创建仓库
登陆github账号,创建远程仓库
2.生成密钥
ssh-keygen
cat ~/.ssh/id_pub
3.将密钥复制到账号的key
4.克隆获得的链接
git clone 链接
5.添加文件后上传
git add 添加文件
git commit -m “备注” 备注提交到仓库
git push 保存提交
6.删除文件后上传
git rm 文件 删除文件
git commit -m “备注” 备注提交到仓库
git push 保存提交
7.如果想要在上传之前恢复删除
git log 查看仓库日志
git reset --hard 版本id 切换到指定版本
8.从网上同步
git pull (下载网上的仓库版本)
git reflog (查看最新版本日志) git status (查看仓库状态)