Linux学习

前言

考虑到开发和别人所说的一些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编程)

后记

悟已往之不谏,知来者之可追。实迷途其未远,觉今是而昨非。

阅读更多
个人分类: Linux
上一篇二叉搜索树,二叉堆学习
下一篇JavaSE 面向对象
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭