Linux基础知识
一、shell的种类
1 - 标准shell
2 - bash
3 - ksh
4 - csh
二、关机命令
poweroff
halt
init 0
三、 vi编辑器
1 - 三种操作模式
命令模式【属于刚进入时的缺省状态;不能输入;用来控制光标的移动;字符的删除,粘贴,复制;可以进入插入模式和底线模式】
光标移动
G【移到文件的最后】
gg【移动到文件的开头】
0/^【移动到所在行的行首】
$【移动到所在行的行尾】
ctrl+f【往下翻页】
ctrl+b【往上翻页】
删除
x/X【3x表示删除光标及其后面的三个字符,包括光标本身】x表示删除后面,X表示删除前面的
dw【删除光标所在处到词尾的内容】
dd【删除光标所在的行】【3dd表示删除光标所在的行及其后面三行,包括光标所在行】
复制
yw【复制光标所在的位置】
yy【复制光标所在的行】
粘贴【p】
撤销【u】
替换
r【表示替换当前】
R【一直替换知道按ESC停止】
插入模式概念【对文件内容进行编辑】
i- 从当前光标位置插入字符
a - 从当前光标位置的下一个字符串开始插入
o - 表示插入新的一行,从行首开始
底线模式
- 查找
/ 关键字【n - 向下连续查找;N - 往上查找】
- 定位
set nu【行号】
#: 指定的行号【跳转到指定的行号】【例如:跳转到第100行 ---> 100:】
- 字符替换
:1,$s/Youth/You/g【将全文的Youth替换成You】
1,$【从第一行到最后一行】
s【表示替换】
g【表示每行全部替换】
- 保存/保存退出/另存为
保存【:q】
保存退出【:wq】
另存为【:w 文件名称】
- 查看当前文件名称【:file】
- 强制退出【:q!】
- 强制写入【:w!】
- 打开另外一个文件【:edit 文件名称】
四、目录结构
/【根目录】
/etc【系统管理和配置文件】
/home【用户的主目录】
/home/user【名为user的用户的主目录】
/boot【内核文件】
/sbin【系统管理命令】【系统管理员使用的管理程序】
/root【系统管理员的主目录】
/bin【常用可执行文件】
/dev【设备文件】
/usr【用户级别应用程序和文件】
/proc【虚拟文件系统】【放置的数据都是在内存之中】
/tmp【公用的临时文件储存点】
/mnt【让用户临时挂载其它的文件系统】
/lib【一些库文件】
五、文件/目录的基本操作
1. 查看文本文件内容
cat 文本文件路径【属于短文件】
less 文本文件路径【属于查看长文件】
k - 向上一行 j - 向下一行 q - 退出
2. 查看文件属性/目录内容
ls
-R【表示查看所有子目录】
-l【详细信息】
3. 创建文件
touch 文件名称【空文件】
4. 创建目录
mkdir 文件目录 -p [递归创建]
5. 复制文件
当前文件复制【cp 1.txt 2.txtx】
复制到别的目录,文件名称不变【cp 1.txt /tmp】
复制到别的目录,文件名称改变【cp 1.txt /tmp/2.txt】
多个文件复制【cp 1.txt 2.txt /tmp】
6. 复制目录
当前目录复制【cp 1.txt 2.txtx -r】
复制到别的目录,目录名称不变【cp 1.txt /tmp -r】
复制到别的目录,目录名称改变【cp 1.txt /tmp/2.txt -r】
多个目录复制【cp 1.txt 2.txt /tmp -r】
7. 移动/重命名文件或者目录 mv
8. 删除文件、目录
删除一个文件【rm 1.txt】
删除多个文件【rm 1.txt 2.txt】
删除目录【rm cat -r】
强制删除【rm cat 1.txt -rf】
删除当前文件下所有目录和文件【rm * -rf】
9. 硬链接和软链接
硬链接【ln cat cat_hard】
软连接【ln -s dog dog_soft】
六、文件/目录的常用操作
1. 查找文件
find /tmp -name 'abc' 参数 -name 名称(可以使用通配符) -type 文件类型
2. 比较文本文件的差异
diff -y 1.txt 2.txt
输出: | 显示每个文件不同的行 < 左边比右边多出来的 > 右边比左边多出来的
3. 文本关键字搜索【grep 】
4. 文件内容统计
wc -l /etc/passwd【这个文件有多少行】 wc -c /etc/passwd【这个文件有多少个字符】
5. 查看文件/目录的磁盘空间
du -sh /home/ly【显示指定目录整体磁盘暂用率】 du -ah /home/ly【显示目录以及所有子目录和文件的磁盘暂用率】
6. 文件分割操作
split
-b 表示文件大小 -l 表示几行 -a 指明后缀长度 例如:split -b 300k /etc/passwd abc.txt
七、 用户管理
1. 用户类型【用户信息存储在/etc/passwd中】
超级管理员用户【root】
普通用户【由root用户创建并授权】
系统用户【系统内自己创建了。例如email等,有些不可以进行登录】
2. 创建用户【只能root用户创建】
1、创建 useradd 用户名称
-d 指明家目录 -s用户登录使用的shell -g用户所属组 -c备注文字
2. 修改用户密码 【passwd 用户名称】
3. 修改用户信息【usermod】
3. 用户查询
who 当前在线的用户 whoami 用户身份查询 groups 用户所属组 id 当前用户信息
4. 用户之间的切换【su】
5. 删除用户【userdel (加上-r表示家目录一起删除)】
6. 用户组
groupadd【增加组】 groupdel【删除组】
八、文件权限管理【ls -l 可以查看文件的权限】
1. 文件的访问权限
1. 读 - r【对于文件具有读的权限;对于目录是否可以查看文件夹里面的内容】
2. 写 - w【对于文件具有写的权限;对于目录是否可以创建和删除文件的权限】
3. 执行 - x【对于文件具有可执行的权限;对于目录是否可以使用该目录下的文件例如cd】
2. 用户类型
1. ower【一般来说,谁创建就是谁】
2. group【文件所属用户组】
3. other【其它用户】
3. 改变文件访问权限
chnod u+x file1 u 拥有者 g 所属组 o 其它 a 所有 例如:【ug+w】【chmod u=wrx,g=rw,o=x file1】【chmod 777 file1(r4w2x1)】
九、进程管理
1. 进程的基本概念
程序运行起来,就是操作系统那存储介质上的可执行文件,加载到内存里面运行,这个运行的程序称之为进程(比如shell就是一个进程)
2. 进程的创建
进程是由另一个进程创建的;第一个进程为init,进程ID为1
创建者 PPID 被创建者 PID【如果父进程死了,init会变成子进程的父进程】
进程的创建方法【系统调用fork,exec】
3. 查看进程的命令
ps 参数 -ef 【e表示所有,f表示full-format】 axu 【ax表示所有,u表示user-oriented】
4. 后台运行进程
前台进程【正在执行的和用户进行交互的进程】
后台进程【后台运行的进程】
nohup python runtime.py && 让它在后台运行
nohup表示当父进程挂掉或者关掉的时候,子进程不会收到父进程发送的sighup信号,子进程不会因为父进程而停止进程
5. 前后台进程切换
列出系统中所有的后台进程【jobs】
将后台进程切换到前台 【fg 任务号】【任务号就是jobs会输出的对应ID】
将前台进程挂起 【ctrl + Z】 【此时处于stopping】
将进程在后台执行 【bg 任务号】
十、重定向和管道
1. 标准输入,标准输出,标准错误
用户通过终端与shell进程进行交互,shell进程会缺省打开三个文件句柄
- 标准输入 stdin【进程从stdin读取用户输入】
- 标准输出 stdout【从stdout输出正确信息】
- 标准错误 stderr【从stderr输出错误信息】
2. 重定向
1 - 覆盖重定向 【ps -ef > 1.txt】
2 - 追加重定向 【ps -ef >> 1.txt】
3 - 重定向到这个文件路径里面,相当于放在垃圾桶中,找不到【/dev/null】
4 - 重定向【0 表示标准输入;1 表示标准输出;2 表示标准错误】
例如:2> 输出标准错误重定向到文本文件中
5 - 同时重定向stdout,stderr到同一个文件【例如 ---> ps > file1 2>&1】 理解:首先将开始标准错误和标准输出都是指向终端,后来ps标准输出指向了file1,之后标准错误指向 标准输出,也就是file1,即所有的标准都指向file1
6 - 同时重定向stdout,stderr到不同的文件【例如---> ps > out.log 2>error.log】
7 - 重定向-标准输入【<】
3. 管道
ps -ef | grep python【表示查找前一个命令中输出的内容中含有python的】【管道可以连续】
4.shell 环境变量 (特殊意义的变量,用来影响进程的信息,可以传递给子进程) printenv【查看当前的环境变量】
十一、网络接口配置
1. 查看和修改网络接口
显示全部的网络接口【ifconfig -a】
禁用/启用网络接口【ifdown eth0/ifup eth0】
2. 查看和设置IP地址
1 - 查看主机的地址【ip addr/ip -4 addr】
2 - IP地址的配置【ifconfig ens33 192.168.79.10】 【这种属于临时的】
一块网卡可以配置多个IP地址 【ifconfig eth0:1 192.168.0.2 netmask 255.255.255.0 up】
3 - IP地址的配置-持久有效
修改网络接口配置文件【修改/etc/sysconfig/network-scripts/ifcfg-eth0文件】随后需要重启【service network restart】
3. 域名查询
ping可以查看
host www.baidu.com
nslookup www.baidu.com
十二、路由器与防火墙
1. 路由信息的查看
netstat -r route ip route
2. 防火墙信息查看【iptables】
什么是防火墙【协议,IP,端口】
查看你防火墙设置【iptables -L --line-numbers】
3. 添加删除防火墙规则
防火墙增加规则
插入规则 【iptables -I chain [rulenum] [matches...][target]】
追加规则 【iptables -A chain [rulenum] [matches...][target]】
Target 【ACCEPT DROP REJECT】
例如:
关闭ssh端口【iptables -I INPUT -p TCP --dport 22 -j DROP】
开通ssh端口【iptables -I INPUT -p TCP --dport 22 -j ACCEPT】
保存规则 【service iptables save】
防火墙删除规则【iptables -D chain [rulenum]】
4. netstat命令
netstat -a 【显示所有连接中的socket】 netstat -t 【显示TCP的连接状态】 netstat -l 【显示处于listen状态的socket】 netstat -u 【显示UDP的连接状态】
netstat -n 【显示端口数字而不是端口协议名称】 netstat -p 【显示建立连接的进程信息】 netstat -s 【显示网络数据包统计信息】
十三、linux网络操作
1. 远程登录命令ssh【ssh [远程机器的IP地址]】
使用场景
工作主机是Linux机器/远程Linux主机不能直接登录
2. 远程拷贝文件命令scp【本地linux机器和远程linux机器之间的文件拷贝操作】【会直接覆盖】
本地拷贝到远程【scp 1.txt ly@192.168.92.101:/home/ly】
远程的文件拷贝到本地【scp ly@192.168.92.101:/home/ly/out.log .】
多个文件 - 本地拷贝到远程【scp 1.txt 2.txt ly@192.168.92.101:/home/ly】
拷贝目录-本地拷贝到远程【scp -r dir1 ly@192.168.92.101:/home/ly】
备注:SCP是通过ssh通道来传输文件的
winscp【一个windows和linux文件传输的工具】
3. 网络下载命令wget
十四、打包压缩与软件安装
1. 打包和压缩
打包【把文件和目录的结构和内容拷贝到一个文件里面】
tar cvf files.tar 123.txt 4.txt 5.txt 打包-文件
tar cvf files.tar dir1 打包-目录
tar tvf files.tar 查看包内容
tar xvf file.tar -C dir1 解开包
压缩【指文件经过一些算法变成体积上更小的文件】
gzip file1 file2[不能压缩目录]
gzip -d file1.gz[解压缩]
打包并压缩【tar zcvf file.tar.gz file1,dir001/tar zcvf file.tgz file1,dir001】
解压缩【tar zxvf file.tar.gz】
查看包【tar ztvf file.tar.gz】
压缩【bzip2】 bzip2 file1 file2【压缩】
bzip2 -d file2.bz2【解压】
打包并压缩【tar jcvf file.tar.bz2 file1,dir001/tar zcvf file.bz2 file1,dir001】
解压缩【tar jxvf file.tar.bz2】
查看包【tar jtvf file.tar.bz2】
浙公网安备 33010602011771号