前言
考虑到开发和别人所说的一些linux的便捷性,所以要学一下Linux相关的操作。
正文
linux 特点
1.免费/开源
2.支持多线程/多用户
3.安全性好
4.对内存和文件管理优越。
管理方法
Shell基本命令
关机命令
shutdown -h now 立即关机
shutdown -r now 现在重新启动计算机
reboot 重启计算机
文件和目录操作命令
pwd 显示当前路径
cd 改变目录
ls 列出文件和目录
-a 显示全部文件
-l 显示长列表格式
mkdir 建立目录
rm -rf 删除文件或者目录
-r 删除目录 -f强制
touch 建立空文件
cp [选项] [原文件或目录] [目标目录] 复制命令
用来复制或者更改文件名的后缀
mv [选项] [原文件或目录] [目标目录] 剪切命令
目录重命名或者剪切
| 管道命令
grep 查找内容 文件名 在文本中查询内容
> 文件重定向(覆盖写)
>> 追加写
tar -zxvf ???.tar.gz //解压命令
Ctrl+L //清屏
用户管理
文件权限
文件所有者,所在组和其他组
//添加组名
groupadd 组名
//查看所有组的信息
cat /etc/group
//添加用户
useradd -g 组名 用户名
//查看所有用户信息
cat /etc/passwd
文件(-) 目录(d) 链接(l)
操作权限
r可读 4表示
w可写 2表示
x可执行 1表示
//改变文件权限 (7就是4+2+1 r/w/x)
chmod 777 文件名
//改变某个用户所在的组
usermod -g 组名 用户名
//改变某个文件或目录的所有者和所属的组
chown 用户名 文件名
//该命令用来改变指定文件所属的用户组
chgrp 用户所在组 文件名
磁盘管理
目录结构
root 存放用户root的相关文件
home 存放普通用户的相关文件
bin 存放常用命令的目录
sbin 存放具有一定权限的命令(管理员)
mnt 挂载软驱和光驱的目录
boot 存放引导相关的文件 // 一般不要删除目录下文件
etc 存放配置相关文件
var 存放经常变化的数据
usr 文件默认安装文件夹
opt 给主机额外安装软件所摆放的目录
lib 系统使用的函数库的目录
proc 目录下的数据都在内存中,如系统核心,外部设备,网络状态
文件链接
在Linux系统中,硬链接有两个局限性
第一: 只能给文件建立硬链接,而不能给目录建立硬链接
第二: 他们不能跨文件系统
经过测试
ln file hfile
ln -s file sfile
显示hfile 为硬链接 和file是相同的索引节点
而sfile 则是符号链接,指向file的节点,因此删除file 那么sfile无效
磁盘分区
磁盘分区表示,IDE硬盘的设备名称是以/hdX表示,SATA硬盘的设备名称是以/sdX表示的
X可以是a~z的小写字母序列
在Windows操作系统中,磁盘分区是以盘符的形式表示的,如C:,D:,E:,F:,而在Linux系统中,
磁盘分区是以文件的形式表示的,如/dev/sda1,/dev/sda2
ll /dev/sda*
//ll 是 ls -l的意思
磁盘分区一般包括主分区和拓展分区,逻辑分区是拓展分区的磁盘分区类型。
一个磁盘中只能容纳4个主要分区,包括主分区和拓展分区
系统为主要分区预留了标识,预留了1~4的序号表示,所以逻辑分区的序号标识从5开始。
//查看所有磁盘分区情况
fdisk -l
//查磁盘使用情况
df [-参数]
比如 df -l
//查询目录在哪个分区
df [路径]
网络管理
TCP/IP网络基础
TCP/IP 参考模型
1.应用层
HTTP,HTTPS,FTP,POP3,SMTP,SSH,NTP,DNS,SNMP,DHCP
2.传输层
3.网络互联层
4.链路层
查看本机ip
windows: ipconfig
linux/unix: ifconfig
网关和路由器的区别
网关和路由器最大的区别是是否连接相似的网络。
如果连接相似的网络,则称为路由器。
而连接不相似的网络,称为网关。
相似的网络:如果都是互联网上的两个网络,我们称为相似的网络。
不相似的网络:如果一个是私网,一个是公网。我们称为不相似的网络。
配置文件
/etc/hosts
/etc/NetworkManager/NetworkManager.conf
/etc/network/interfaces
/etc/resolv.conf
/etc/host.conf
/etc/services
常用命令
ifconfig ping netstat route
具体协议内容(学计网的时候,再钻研下吧
系统管理
进程管理和作业控制
在windows系统中,习惯使用任务管理器来结束未响应的应用程序;
在Unbuntu中,可以使用系统监视器来完成这个操作。
系统监视器
字段含义
%CPU 此字段表示进程所占用CPU资源的百分比
优先级 表示进程的优先级。系统提供5个级别,包括非常高,高,普通,低,和非常低
优先级是由一个Nice值控制的,值越小,优先级越高
ps命令
进程监视命令 ps(process status)
ps [选项]
-A 显示所有进程
-a 显示一个终端的所有进程,除了会话引线
-u 以用户的格式显示进程信息
-x 显示后台进程运行的参数
S: 进程状态代码,S表示闲置状态,R表示可执行的
kill命令
结束进程命令
//无法结束进程时候,传送出SIGKILL信号
kill -9 PID号
//如果-9还不能结束进程,那么可以使用-15选项来结束进程
kill -15 PID号
& 进程在后台运行
Linux编程
Vim使用
vim -文件名
i 插入模式
ESC + :wq 退出并保存
Shell脚本编程
shell脚本文件的后缀可有可无,这是Linecho ux操作系统对文件访问的一个特点。为了让用户知道文件的类型,都会使用.sh作为Shell脚本文件的后缀
vim hello.sh
chmod +x hello.sh
./hello.sh
hello.sh文件
#!/bin/bash
echo "Hello,World!";
echo "显示系统时间";
date
变量
var=string
计算命令
expr 20 - 15 //操作符两端需要有空格
预定义变量
$#: 位置参数的数量
$*或$@: 所有位置参数的内容
$?: 命令执行后的返回值
$$: 当前进程的进程ID(PID)
$!: 最后一个后台运行进程的进程ID(PID)
$0: 当前执行的程序名
//使用export命令设置环境变量
export PATH=/home/draymond/shell:$PATH
//一般值都被Shell看成是字符串
条件表达式
文件比较
-e filename //exist 文件存在为真
-d filename //dir 目录存在为真
-f filename //file 常规文件存在为真
-r/-w/-x filename //可读,可写,可执行
字符串比较
-z/-n string //string长度为零/非零
string1=string2 //string1与string2相同
string1!=string2 //不同
数值比较
num1 -eq num2 //num1==num2
num1 -ne num2 //num1!=num2
num1 -lt num2 //num1<num2
num1 -le num2 //num1<=num2
num1 -gt num2 //num1>num2
num1 -ge num2 //num1>=num2
逻辑判断
exp1 -a exp2 //逻辑与
exp1 -o exp2 //逻辑或
! exo1 //取反
条件控制
if判断
if [ ${SHELL} != "/bin/bash" ]
then
echo "I Love you";
elif [ 1 -eq 1 ]
then
echo "Draymonder";
else
echo "I do not love you";
fi
循环控制
for循环
for 变量 in 数据列表
do
循环体
done
或者
for(( 变量; 条件表达式; 增量))
do
循环体
done
while循环
while 条件表达式
do
命令循环体
done
until循环 //不断执行循环体,知道条件表达式为真时退出
until 条件表达式
do
命令循环体
done
select循环
select 变量 in 数据列表
do
命令组
done
正则表达式
这里先空着,以后再补
服务器管理
任务计划
cron服务
用来运行周期性的任务
crontab [-u user]
-t //选择文本编辑器
-r //删除目前的时程表
-l //列出目前的时程表
-u user //对指定用的cron任务进行操作
-e //建立或编辑cron任务
调度多个任务
1) crontab -e直接写
2) 把所有的任务,写入到一个可执行文件(shell编程)
后记
悟已往之不谏,知来者之可追。实迷途其未远,觉今是而昨非。