linux 笔记

Linux笔记

自己整理出来的     就当是个纪念

Linux 的系统启动 2

Linux系统有7个运行级别(runlevel): 2

Linux关机 2

目录结构与作用 3

Linux 忘记密码解决方法 3

Linux文件基本属性 3

Linux 文件与目录管理 4

Linux 文件内容查看 5

Linux连接概念 5

Linux系统用户账号的管理 6

Linux系统用户组的管理 6

Linux 磁盘管理 7

磁盘格式化 7

磁盘检查 7

磁盘挂载与删除 7

vi/vim 8

linux yum 命令 9

Shell 教程 9

脚本运行两种方法 9

变量 10

使用变量 10

只读变量 10

删除变量 10

变量类型 11

Shell字符串 11

Shell数组 11

Shell注释 11

Shell传递参数 12

$* 与 $@ 区别: 12

Shell 数组 12

实例 13

流程控制 13

until 循环 14

Case 14

Shell函数 15

输入重定向 15

实例 15

Shell定时脚本 16

 

 

Linux

 

Linux 的系统启动

1.内核的引导:开启电源,bios自检,按照bios设置的启动设备启动  在读/boot里内核文件

2.运行int : 读取配置 /etc/inittab 守护进程  启动时根据"运行级别",确定要运行哪些程序。

3.系统初始化 :执行rc启动脚本  激活交换分区,检查磁盘,加载硬件模块

4.建立终端 :   启动登录界面

5.用户登录系统 : 命令行 ssh 图形界面

Linux系统有7个运行级别(runlevel):

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆

运行级别2:多用户状态(没有NFS)

运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式

运行级别4:系统未使用,保留

运行级别5:X11控制台,登陆后进入图形GUI模式

运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

 

Linux关机

正确的关机流程为:sync > shutdown > reboot > halt

关机指令为:shutdown ,你可以man shutdown 来看一下帮助文档。

 

Sync 将数据由内存同步到硬盘

Shutdown -h (10 , now , 20:25 , +10 , )   reboot  halt  关机

Shutdown -r ( now , +10) 重启

 

 

 

 

 

 

 

 

目录结构与作用

/Bin  存放常用命令

/Home 存放普通用户的主目录

/root 存放超级权限者的用户主目录

/lib 系统开机所需要最基本 动态链接的共享库

/etc 系统管理的配置文件

/usr 应用程序和文件  类似与windows下的program files目录

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

/media  linux系统会自动识别一些设备linux会把识别的设备挂载到这个目录下

/mnt 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂

载在/mnt/上,然后进入该目录就可以查看里的内容了。 d:/myshare

/opt  这是给主机额外安装软件所摆放的目录。

/usr/local  安装软件所安装的目录。一般是通过编译源码方式安装的程序

/var 这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。

包括各种日志文件

Linux 忘记密码解决方法

重启linux系统  

三秒内按回车

然后输入e

在 第二行最后边输入 single   / single

最后按"b"启动,启动后就进入了单用户模式了

更密码的命令为 passwd

Linux文件基本属性

dr-xr-xr-x   2 root root 4096 Dec 14  2012 bin

第一个字母:

[ d ]则是目录     为[ - ]则是文件;

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

[ b ]装置文件里面的可供储存的接口设备若是

[ c ]则表示为串行端口设备,例如键盘、鼠标

 

 

1.Chgrp 改变文件属组

语法: chgrp  [-R] 属组名 文件名

-R 递归改变 所有文件

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

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

3.chmod:更改文件9个属性

chmod 777 .bashrc

chmod u=rwx,g=rx,o=r 文件名

Linux 文件与目录管理

绝对路径:
路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。

相对路径:
路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法啦!

ls: 列出目录 -a全部 -d 目录本身 -l 文件属性权限

 

cd:切换目录   绝对 相对 ~ 家目录 ..上级目录

 

pwd:显示目前的目录   -P :显示出确实的路径  不是快捷方式

 

mkdir:创建新的目录 -m 配置文件的权限喔!直接配置-p 直接将所需要的目录递归创建

mkdir -p test1/test2/test3/test4    mkdir -m 711 test2 

rmdir:删除一个空的目录  -p :连同上一级『空的』目录也一起删除

 

cp: 复制文件或目录   -i 如果目标存在 先询问 -r 目录复制  -p连同属性复制

cp ~/.bashrc /tmp/bashrc

 

 

rm: 移除文件或目录 

-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;

-i :互动模式,在删除前会询问使用者是否动作

-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!

 rm -i bashrc

mv (移动文件与目录,或修改名称)

-f     -i   与rm相同  -u :若目标文件已经存在,且 source 比较新,才会升级 (update)

mv mvtest mvtest2

 

Linux 文件内容查看

cat  由第一行开始显示文件内容

tac  从最后一行开始显示,可以看出 tac 是 cat 的倒著写!

nl   显示的时候,顺道输出行号!

more 一页一页的显示文件内容 空格翻页  Enter 向下翻一行 /字串 查找 q离开 b回翻页

less 与 more 类似,但是比 more 更好的是,他可以往前翻页!

空白键    :向下翻动一页;

[pagedown]:向下翻动一页;

[pageup]  :向上翻动一页;

/字串     :向下搜寻『字串』的功能;

?字串     :向上搜寻『字串』的功能;

n         :重复前一个搜寻 (与 / 或 ? 有关!)

N         :反向的重复前一个搜寻 (与 / 或 ? 有关!)

 

head 只看头几行   -n +数字

tail 只看尾巴几行   -n +数字

 

Linux连接概念

硬连接

硬连接指通过索引节点来进行连接。 磁盘分区中的文件 分配一个索引节点号 在linux中可以有多个文件之相统一索引节点 ,当其中一个文件被删除时不影响他文件使用 ,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

软连接

另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于 Windows 的快捷方式。

 

Linux系统用户账号的管理

新用户创建

Useradd    useradd 选项 用户名

选项:

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

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

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

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

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

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

 

用户删除

userdel -r sam   -r,它的作用是把用户的主目录一起删除。

修改账号

Usermod  -l 新用户名   与useradd选项相同

密码

Passwd   

为用户指定新口令时

Passwd  -d sam

Linux系统用户组的管理

增加新用户组

Groupadd -g -o 新用户组的标识号 用户组

删除用户组

Groupdel 用户组

修改用户组

Groupmod -g-o (-n 新名字) 用户组

 

 

 

Linux 磁盘管理

df:列出文件系统的整体磁盘使用量

 

df  [选项] 目录或者文件

-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;

-k :以 KBytes 的容量显示各文件系统;

-m :以 MBytes 的容量显示各文件系统;

-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;

-H :以 M=1000K 取代 M=1024K 的进位方式;

-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;

-i :不用硬盘容量,而以 inode 的数量来显示

 

du:检查磁盘空间使用量

 

fdisk:用于磁盘分区   fdisk -l 装置名称

 

-l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。

磁盘格式化

Mkfs [-t] 装置文件名

-t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)

磁盘检查

fsck [-t 文件系统] [-ACay] 装置名称

磁盘挂载与删除

mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n]  装置文件名  挂载点

mount /dev/hdc6 /mnt/hdc6

umount [-fn] 装置文件名或挂载点     删除

选项与参数:-f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;

-n :不升级 /etc/mtab 情况下卸除。

卸载/dev/hdc6

[root@www ~]# umount /dev/hdc6     

vi/vim

基本上 vi/vim 共分为三种模式,

命令模式(Command mode),

输入模式(Insert mode)和

底线命令模式(Last line mode)。 这三种模式的作用分别是:

命令模式:

用户刚刚启动 vi/vim,便进入了命令模式。

以下是常用的几个命令:

i 切换到输入模式,以输入字符。

x 删除当前光标所在处的字符。

: 切换到底线命令模式,以在最底一行输入命令。

输入模式

在命令模式下按下i就进入了输入模式。

在输入模式中,可以使用以下按键:

字符按键以及Shift组合,输入字符

ENTER,回车键,换行

BACK SPACE,退格键,删除光标前一个字符

DEL,删除键,删除光标后一个字符

方向键,在文本中移动光标

HOME/END,移动光标到行首/行尾

Page Up/Page Down,上/下翻页

Insert,切换光标为输入/替换模式,光标将变成竖线/下划线

ESC,退出输入模式,切换到命令模式

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

q 退出程序

w 保存文件

按ESC键可随时退出底线命令模式。

使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!

:n1,n2s/word1/word2/g

n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:『:100,200s/vbird/VBIRD/g』。(常用)

:1,$s/word1/word2/g

从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)

:1,$s/word1/word2/gc

从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)

linux yum 命令

 

yum [options] [command] [package ...]

options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。

command:要进行的操作。

package操作的对象。

 

yum常用命令

1.列出所有可更新的软件清单命令:yum check-update

2.更新所有软件命令:yum update

3.仅安装指定的软件命令:yum install <package_name>

4.仅更新指定的软件命令:yum update <package_name>

5.列出所有可安裝的软件清单命令:yum list

6.删除软件包命令:yum remove <package_name>

7.查找软件包 命令:yum search <keyword>

8.清除缓存命令:

yum clean packages: 清除缓存目录下的软件包

yum clean headers: 清除缓存目录下的 headers

yum clean oldheaders: 清除缓存目录下旧的 headers

yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers

Shell 教程

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

脚本运行两种方法

1.Chmod +x ./test.sh 是脚本具有执行权限

./test.sh  执行脚本

  1. 直接运行解释器

/bin/sh test.sh

变量

定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:

your_name="runoob.com"

注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:

命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。

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

不能使用标点符号。

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

有效的 Shell 变量名示例如下:

RUNOOB

LD_LIBRARY_PATH

_var

var2

 

使用变量

 

只要在变量面前加一个 $

your_name="qinjx"

echo $your_name

echo ${your_name}

只读变量

 

使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。

删除变量

使用 unset 命令可以删除变量。语法:

unset variable_name

变量被删除后不能再次使用。unset 命令不能删除只读变量。

变量类型

运行shell时,会同时存在三种变量:

1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。

2) 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。

3) shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

Shell字符串

单引号‘  ’ 

任何字符都原样输出

单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成 对出现,作为字符串拼接使用。

双引号 ” ” 的优点:

双引号里可以有变量  

双引号里可以出现转义字符

 

String  1:4

Shell数组

array_name=(value0 value1 value2 value3)

Shell注释

#--------------------------------------------

:<<EOF

注释内容...

注释内容...

注释内容...

EOF

 

 

Shell传递参数

echo "Shell 传递参数实例!";

echo "执行的文件名:$0";

echo "第一个参数为:$1";

echo "第二个参数为:$2";

echo "第三个参数为:$3";

为脚本设置可执行权限,并执行脚本,输出结果如下所示:

$ chmod +x test.sh

$ ./test.sh 1 2 3Shell 传递参数实例!执行的文件名:./test.sh

第一个参数为:1

第二个参数为:2

第三个参数为:3

$* 与 $@ 区别:

相同点:都是引用所有参数。

不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。

Shell 数组

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

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

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

array_name=(value1 ... valuen)

实例

my_array=(A B "C" D)

我们也可以使用下标来定义数组:

array_name[0]=value0

array_name[1]=value1

array_name[2]=value2

流程控制

 

 

if conditionthen

    command1

    command2

    ...

    commandNelse

Commandfi

 

 

for var in item1 item2 ... itemNdo

    command1

    command2

    ...

commandNdone

#!/bin/bash

int=1while(( $int<=5 ))do

    echo $int

let "int++"done

 

until 循环

until 循环执行一系列命令直至条件为 true 时停止。

until 循环与 while 循环在处理方式上刚好相反。

一般 while 循环优于 until 循环,但在某些时候—也只是极少数情况下,until 循环更加有用。

until 语法格式:

until conditiondo

    commanddone

Case

echo '输入 1 到 4 之间的数字:'

echo '你输入的数字为:'

read aNumcase $aNum in

    1)  echo '你选择了 1'

    ;;

    2)  echo '你选择了 2'

    ;;

    3)  echo '你选择了 3'

    ;;

    4)  echo '你选择了 4'

    ;;

    *)  echo '你没有输入 1 到 4 之间的数字'

    ;;esac

 

Shell函数

demoFun(){

    echo "这是我的第一个 shell 函数!"}

echo "-----函数开始执行-----"

demoFun

echo "-----函数执行完毕-----"

输入重定向

实例

接着以上实例,我们需要统计 users 文件的行数,执行以下命令:

$ wc -l users

       2 users

也可以将输入重定向到 users 文件:

$  wc -l < users

       2 

 

 

 

 

 

 

Shell定时脚本

利用crontab来定时执行任务大致有如下三步:

  1. 编写shell脚本 [

#! /bin/sh    

给脚本能执行的权限

]

  1. 利用crontab加入到定时任务队列[

首先到:/var/spool/cron  为定时任务程序文件的路径。

安装crontab:

yum install crontabs

说明:

/sbin/service crond start //启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

 

查看crontab服务状态:service crond status

 

手动启动crontab服务:service crond start

 

查看crontab服务是否已设置为开机启动,执行命令:ntsysv

参  数:

-e  编辑该用户的计时器设置。

-l  列出该用户的计时器设置。

-r  删除该用户的计时器设置。

-u<用户名称>  指定要设定计时器的用户名称。

 

crontab 格式:

 

基本格式 :

 

分钟   小时   日   月   星期   命令

 

*        *      *    *     *       *

 

第1列表示分钟1~59 每分钟用*或者 */1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列 表示月份1~12

第5列标识号星期0~6(0表示星期天)

第6列要运行的命令

 

记住几个特殊符号的含义:

“*”代表取值范围内的数字,

“/”代表”每”,

“-”代表从某个数字到某个数字,

“,”分开几个离散的数字 

crontab文件的一些例子:

30 21 * * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每晚的21:30重启apache。

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每月1、10、22日的4 : 45重启apache。

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每周六、周日的1 : 10重启apache。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每星期六的11 : 00 pm重启apache。

0 */1 * * * /usr/local/etc/rc.d/lighttpd restart

每一小时重启apache

0 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

晚上11点到早上7点之间,每隔一小时重启apache

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart

每月的4号与每周一到周三的11点重启apache

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart

]

  1. 查看作业完成情况[

sh脚本文件:test.sh

#! /bin/sh

su - oracle << EOF  

sqlplus test/test@test @"test.sql"

sql脚本文件:test.sql

insert into test_tb values (sysdate);

crontab文件:

0,15,30,45 * * * * /apps/bin/test.sh

]

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值