Linux学习

29人阅读 评论(0) 收藏 举报
分类:

前言

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

后记

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

查看评论

机器学习之k近邻学习器和降维与度量学习

降维,高纬度数据转化为低纬度的数据,主要是属性变化。本课程主要讲解:k近邻学习器、低维嵌入、主成成分分析、核化线性降维、流行学习、度量学习。
  • 2018年01月15日 02:13

Linux学习规划

嵌入式Linux操作系统学习规划ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标:   (1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9)   (2) 必须掌握一...
  • VC_Tony
  • VC_Tony
  • 2008-03-09 21:59:00
  • 1898

linux学习过程感悟

linux系统学习感悟
  • u013289746
  • u013289746
  • 2017-04-14 11:45:22
  • 585

Linux简介及Linux学习路线图

一、Linux 为何物Linux 就是一个操作系统,就像你多少已经了解的 Windows(xp,7,8)和 Max OS ,至于操作系统是什么,就不用过多解释了,如果你学习过前面的入门课程,应该会有个...
  • CoderJYF
  • CoderJYF
  • 2016-12-08 09:47:58
  • 24989

Linux技术学习路线

为什么要学习Linux? 为什么学Linux,每个人都有自己的理由: Linux是免费的不用花一分钱,能够节约大笔的成本;Linux是开源的,你可以根据自已的需要修改源代码;Linux是开放...
  • wuxiaobingandbob
  • wuxiaobingandbob
  • 2016-03-23 09:09:33
  • 1686

浅谈如何学习linux(强烈推荐)

一.为什么要学linux?  当然最重要是爱好和兴趣!如果你这种必要学,或者根本不喜欢,请不要浪费时间,你学也学不好!  二.起步  你应该为自己创造一个学习linux的环境--在电脑上装一个l...
  • A09211008
  • A09211008
  • 2013-12-05 22:30:07
  • 4900

菜鸟的Linux历程-学习大纲

在Linux学之初,难免会不适应,不理解Linux有什么用途,不知道从何学起。今天,笔者就为广大Linux的初学者罗列了步入Linux世界需要掌握的最基本的知识列表。Linux基本认识: |-...
  • qq_14912373
  • qq_14912373
  • 2015-10-03 16:17:28
  • 715

linux学习资料大全

  • 2010年09月25日 21:56
  • 19.8MB
  • 下载

学习Linux的作用

Linux是一个操作系统的内核,通常用来代表linux系列的操作系统名称,相对于windows操作系统,Linux显得难学很多,那么学linux系统有什么用呢?        首先linux是开...
  • mikayong
  • mikayong
  • 2016-06-15 10:51:22
  • 3433

linux学习大量核心技术视频(全免费观看)-干货!

老男孩教育20-21期-linux学习视频分享计划(全免费观看), 还可以下载到电脑看!见结尾云盘 linux新手学习方法分享--20150312  优酷:http://...
  • benpaobagzb
  • benpaobagzb
  • 2016-05-16 22:35:57
  • 784
    个人资料
    持之以恒
    等级:
    访问量: 4732
    积分: 284
    排名: 27万+
    文章分类