文档章节

linux入门

xiongsheng
 xiongsheng
发布于 2018/03/08 11:01
字数 2187
阅读 8
收藏 0

Linux 系统目录结构

·         /bin
bin是Binary的缩写, 这个目录存放着最经常使用的命令。

·         /boot:
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

·         /dev :
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

·         /etc:
这个目录用来存放所有的系统管理所需要的配置文件和子目录。

·         /home
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

·         /lib
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

·         /sbin
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

·         /usr
 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。

·         /usr/bin:
系统用户使用的应用程序。

·         /usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。

·         /usr/src:内核源代码默认的放置目录。

·         /var
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

Linux 文件基本属性

·         当为[ d ]则是目录

·         当为[ - ]则是文件;

·         若是[ l ]则表示为链接文档(link file);

·         若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);

·         若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

每个文件的属性由左边第一部分的10个字符来确定(如下图)。

 

Linux文件属主和属组

对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。

同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。

文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。

因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

在以上实例中,mysql 文件是一个目录文件,属主和属组都为 mysql,属主有可读、可写、可执行的权限;与属主同组的其他用户有可读和可执行的权限;其他用户也有可读和可执行的权限。

对于 root 用户来说,一般情况下,文件的权限对其不起作用。

更改文件属性

1、chgrp:更改文件属组

语法:

chgrp [-R] 属组名文件名

参数选项

·         -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

2、chown:更改文件属主,也可以同时更改文件属组

语法:

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

 

 

 

Linux 用户和用户组管理

一、Linux系统用户账号的管理

1、添加新的用户账号使用useradd命令,其语法如下:

useradd 选项 用户名

参数说明:

·         选项:

o    -c comment 指定一段注释性描述。

o    -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。

o    -g 用户组 指定用户所属的用户组。

o    -G 用户组,用户组 指定用户所属的附加组。

o    -s Shell文件 指定用户的登录Shell。

o    -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

·         用户名:

指定新账号的登录名。

 

实例1

# useradd –d /usr/sam -m sam

此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录)。

实例2

# useradd -s /bin/sh -g group –G adm,root gem

此命令新建了一个用户gem,该用户的登录Shell是 /bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。

 

 

二、Linux系统用户组的管理

1、增加一个新的用户组使用groupadd命令。其格式如下:

groupadd 选项 用户组

可以使用的选项有:

·         -g GID 指定新用户组的组标识号(GID)。

·         -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

实例1:

# groupadd group1

此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。

实例2:

# groupadd -g 101 group2

此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。

 

 

Shell 脚本

         #!/bin/bash
echo "Hello World !"

#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。

echo 命令用于向窗口输出文本。

运行 Shell 脚本有两种方法:

1、作为可执行程序

将上面的代码保存为 test.sh,并 cd 到相应目录:

chmod +x ./test.sh  #使脚本具有执行权限
./test.sh  #执行脚本

注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。

2、作为解释器参数

这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,如:

/bin/sh test.sh
/bin/php test.php

 

 

 

Shell 变量

your_name="runoob.com"

·         首个字符必须为字母(a-z,A-Z)。

·         中间不能有空格,可以使用下划线(_)。

·         不能使用标点符号。

·         不能使用bash里的关键字(可用help命令查看保留关键字)

变量名和等号之间不能有空格

 

echo ${your_name}

Shell 数组

数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。

与大部分编程语言类似,数组元素的下标由0开始。

Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:

array_name=(value1 ... valuen)

Shell 基本运算符

原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。

expr 是一款表达式计算工具,使用它能完成表达式的求值操作。

例如,两个数相加(注意使用的是反引号 ` 而不是单引号 '):

#!/bin/bash

 

val=`expr 2 + 2`

echo "两数之和为 : $val"

两点注意:

·         表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。

·         完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。

 

运算符

说明

举例

+

加法

`expr $a + $b` 结果为 30。

-

减法

`expr $a - $b` 结果为 -10。

*

乘法

`expr $a \* $b` 结果为  200。

/

除法

`expr $b / $a` 结果为 2。

%

取余

`expr $b % $a` 结果为 0。

=

赋值

a=$b 将把变量 b 的值赋给 a。

==

相等。用于比较两个数字,相同则返回 true。

[ $a == $b ] 返回 false。

!=

不相等。用于比较两个数字,不相同则返回 true。

[ $a != $b ] 返回 true。

注意:条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是错误的,必须写成 [ $a == $b ]

乘号(*)前边必须加反斜杠(\)才能实现乘法运算;

 

© 著作权归作者所有

xiongsheng
粉丝 2
博文 68
码字总数 35128
作品 0
程序员
私信 提问
linux学习路线和运维成长之路

最近看到了一篇新闻,linux之父建议找一份基于linux和开源环境的工作,确实,这已经是未来的大趋势了。今天就来聊一聊我的想法,本人8年linux运维一线经验,呆过很多互联网公司,从一线运维做...

神的信仰
2016/05/17
1
0
[北京]熟悉Linux/Unix下各种技术的达人兼职活动

越来越多的Linux下技术应用,越来越多的毕业生跻身其中,电子工业出版社已经出版了一批Linux相关图书,现在力求为Linux技术贡献自己的一份力量,所以希望有水平、有头脑、有技术的linux达人踊...

冠军
2011/06/08
1K
8
Linux的相关资源帖

http://www.kerneltravel.net/?page_id=8 2.6内核模块编程实例指导 内核模块编程之入门(一)-话说模块 内核模块编程之入门(二)—必备知识 内核模块编程之入门(三)-模块实用程序简介 内核...

AlphaJay
2010/05/21
213
0
进入linux的大门

看到很多人在问怎么入门linux,每次看到这些提问,都有一些话想说,因为这么久以来,看过太多太多的人(包括曾经的我)想入门linux,但是却“试用了”几天,然后又放弃了。 安装linux: 1.想...

kazex
2013/03/02
1K
12
Linux快速入门打开你的学习之道

相信看到这篇文章的你一定是想要学习Linux,或者已经在学习Linux的人了,那我们就可以一起探讨一下,学习Linux如何快速入门呢? 首先,希望大家弄清楚自己为什么要学习Linux,有的人是因为兴...

Linux就该这么学
05/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Protocol Buffers 简介

文档编辑和持续集成状态: 本文档的 Protocol Buffer 的中文文档使用的是 Asciidoctor 进行编排的 http://docs.ossez.com/protocol-buffers-docs/index.html(本 WIKI 中的内容将会与在线发布...

honeymoose
今天
4
0
uniapp + bootstrapvue 移动/PC 一套搞定 (一)配置bootstrapvue

1.准备文件 自己到DCloud官网: http://dcloud.io/ 去下载官方的IDE Hbuilder,新建一个空的uniapp项目即可。 uniapp框架自带优化的vue,我们仅仅需要准备以下三个文件: bootstrap.min.css ...

panyunxing
今天
12
0
Android Camera原理之camera service类与接口关系

camera service主要是指 frameworks/av/services/camera/下面的代码,最近在看这一块的代码,为了更好地理清这一块的代码,也为了后续学习camera方便一些,我觉得很有必要理一下这一块的整体...

天王盖地虎626
今天
6
0
Golang学习笔记

[TOC] Golang学习笔记 这个学习笔记是最早在1.初,版本左右的时候写的,和当前最新的版本可能会有较大的差异. 因为成文比较早,文章里面又有很多自己的见解,有些东西当时理解的不太透彻可能写错...

我爱吃炒鸡
今天
21
0
科技赋能成效显著!金融壹账通两大赋能项目荣获IDC大奖

7月19日,2019IDC中国未来金融论坛曁颁奖典礼于北京举办。由金融壹账通赋能的长春农商银行多人视频面审智能风控系统、包头农商银行互联网银行SaaS服务两大项目因在项目的创新性、技术领先性、...

IFTNews
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部