linux 综合 待修改

一、Linux 分类

redhat的典型分支如:redhat, centos ,Fedora,mandrake,mandriva,国产的红x等等

debian的分支如:debian,ubuntu等

slackware的分支如suse等

yum可以用于运作rpm包,例如在Fedora系统上对某个软件的管理:
安装:yum install <package_name> 
卸载:yum remove <package_name> 
更新:yum update <package_name>

apt-get可以用于运作deb包,例如在Ubuntu系统上对某个软件的管理:
安装:apt-get install <package_name> 
卸载:apt-get remove <package_name> 
更新:apt-get update <package_name>

Linux 命令格式:

[] 之间的任何内容都是可选的

... 后面的任何内容都是可以重复的。

{} 表示应该选择由竖线(|)隔开的各项中的一个。

For 
Example:

Cmd
[-x] {on | off} filename …. 可以匹配以下命令:

Cmd –x on filename

Cmd  -x off filename1 filename2

Cmd  off 
filename1

系统管理员基本任务:

  1. 增加,删除,以及管理用户账号
  2. 增删硬件
  3. 执行备份
  4. 安装和更新软件
  5. 监视系统
  6. 故障诊断
  7. 维护本地文档
  8. 时时警惕系统安全
  9. 帮助用户

Linux 系统典型的引导过程:

  1. 加载并初始化内核

1.1      
系统ROM 把一个小的引导程序从硬盘载入到内存中(BIOS)

1.2      
这个引导程序再安排载入内核

  1. 检测和配置设备

2.1 内核检测并初始化每一个硬件设备

  1. 创建内核线程

3.1      
内核创建几个自发的进程(自发进程就是不通过系统的fock机制创建的进程)

3.2      
一旦自发进程创建完毕,内核的引导过程也就结束。不过处理基本操作的进程和linux守护进程都还没有创建,这些全部交由init进程完成。

  1. 操作员干预(仅用于手动引导)
  2. 执行系统,启动脚本

启动脚本一般完成下面的一些内容:

5.1      
设置计算机名称

5.2      
设置时区

5.3      
采用fsck模式检查磁盘(只在自动模式下)

5.4      
安装系统的磁盘

5.5      
从/tmp目录删除旧文件

5.6      
配置网络接口

5.7      
启动守护进程和网络服务

  1. 多用户模式运行

在启动脚本完成后,系统就是一个完全的系统,但这时候还不能进行多用户登录,必须有init进程生成一个getty进程监测终端和控制台,生成getty进程后,init进程完成引导。

进程 :

Ps aux 了解系统上运行进程的全貌。只提供过去系统的一个快照。

Top 实时更新的一个系统

硬链接

相当于copy了一个文件的副本,但和copy不同的是创建的硬链接和源文件是同步(或者是共享的),不但内容共享,权限等也是完全相同的,删除其中任何一个,其他的文件照常使用,在平时应用中提供硬链接,以防用户误删除。

Cmd :    ln 
f1   ../f2    //创建f2 是f1 的硬链接

软连接

软连接就相当于windows 中的快捷方式,删除源文件,

Cmd:    ln  -s 
f1  /home/f2   // 在/home/f2 创建f1 的一个软连接

文件权限:

Chmod 改变用户的read write exe 权限

Chown  改变用户的属主

Umask 设置创建文件的默认权限,但最好是在配置文件中设置,用umask的设置用户是可以自己修改的。

文件额外的标志(只有ext* 文件系统可用):

用命令lsattr 和chattr 可以进行设置

可以设置文件一下内容:

从不更新文件的访问时间

只允许以追加方式写入

不允许删除和修改文件

访问控制列表(ACL)

批量创建文件和文件夹

Cmd: touch
m{1..50}.txt    创建m1.txt,m2.txt,m3.txt
….. m50.txt

Cmd: mkdir
m{1..50}

正则表达式

变量

Variable
= value

${variable} 或者 $variable

如果变量有中有空格,给变量赋值时应该用“”括起来

For
example: variable = “Hellow World”

设置只读变量:

Colour=
blue

Readonly colour

清除变量的值:

Unset 
colour

定义和清除环境变量:

Environ-Variable = value   环境变量赋值

Export Environ-variable    声明环境变量

清除环境变量和清除一般变量的方法相同

Unset Environ-Variable

常用环境变量:env 命令显示所有的环境变量

PWD  OLDPWD PATH HOME SHELL USER
UID

将命令赋给一个变量:

Cmd=$(ls -l) 命令可以嵌套

echo $cmd 结果集之间没有回车

echo “$cmd”结果集之间有回车,和ls
–l 输出结果相同

位置参数

是一个特殊的shell 脚本变量

$0 为脚本的名字 $1 为第一个参数 $2 为第二个参数,以此类推

${10}为第十个参数,第十个以后都要用括号括起来

$* 和[email protected] 表示从$1开始的所有的参数

$# 传到shell脚本的所有参数

$$ 脚本运行的脚本号

$? 返回值

Shell 循环(条件判断)

命令的返回值:

可用 echo $? 查看


返回值


含义


0


命令运行成功


1-125


命令运行失败,脚本命令,系统命令,命令参数错误


126


找到命令无法执行


127


没有找到命令


128


命令被系统强制退出

数字判断


-eq


=


-ne


!=


-gt


>


-ge


>=


-lt


<


-le


<=

判断字符串


String


判断不为空


-n  string


判断不为空


-z string


判断为空


String a = string b


String a != string b

判断:

If/elif/else
结构:

If
expression1

Then

Command

Elif
if expression2

then

Command

Else

Command

Fi

Case 
结构:

Case
variable in

Variable1)

Command

……

Command
;;

Variable2)

Command

……..

Command;;

*)

Command

……..

Command;;

esac

for  结构

for variable in {list}

do

command

command

done

for ((expr1;expr2;expr3))

do

command

command

done

while expression

do

command

done

until expression

do

command

done

字符串处理:

字符串的长度:

${#string}

expr 
length  $string(最好将$string用双引号括起来,因为如果string
包含空格,会有语法错误)

expr 
index

expr 
index  $string $substring 具体的返回值,请参考下图的例子

expr match

expr match $string $substring

substring 
 可以是字符,也可以使正则表达式

抽取子串

从左边抽取:

${string:position}

${string:positon:length}

从右边抽取:

${string:
-position} :和-之间有一个空格

${string :(postion)}

也可以用一下命令

expr substr $string $positon $length

删除字符串:

${string#substring}
删除string开头处和substring 匹配的最短子串

${string##substring}
删除string开头和substring匹配的最长子串

${string%substring}
删除string结尾处和substring 匹配的最短子串

${string%%substring}
删除string结尾处和substring匹配的最长子串

替换子串:

${string/substring/replacement} 只替换第一次与substr相匹配的子串

${string/substring/replacement} 替换所有与substr匹配的子串

${string/#substring/replacement} 替换开头与substr匹配的子串

${string/%substring/replacement} 替换开头与substr匹配的子串

文件标示符:

文件标示符是0-9 的数据,指明了与进程相关的特定数据流的源。当linux 启动一个进程,它自动为该进程打开了3个文件:标准输入,标准输出和标准错误输出,分别由文件表示0,1,2表示,如果该进程要打开其他的
输入输出文件,则从3开始表示。

Set  -o  noclobber
 不允许覆盖任何文件   set 
+o noclobber

>> 
追加   > 覆盖   > 强制覆盖(当noclobber时)

注意: 命令的错误输出不是命令的输出结果

将命令的输出重定向到newfile 文件中,但是错误输出任然在shell上显示,就说明命令的错误输出不是命令的输出结果。

Wc –l 
newfile  和 wc  -l 
< newfile   第二条只显示数字,不显示文件名

<<delimiter  shell 将分解符delimiter之后 直到下一个delimiter 之前的内容作为输入

子shell 与进程处理

在linux 中只有fork函数可以创建子进程,父进程都使用fork函数创建子进程

Shell 的命令分为内建命令和外部命令,内建命令是由shell
本身执行的命令,而外部命令是由fork函数创建的子进程执行的命令,也就是说内建命令不创建子shell ,而外部命令创建子shell

内建 命令是包含在shell 工具包中的命令

:表示永真,相当于关键字true

在shell中用()括起来的命令行,在子shell中运行,在父shell 中定义的变量可以在子shell中使用,但在子shell中定义的变量不能再父变量中使用

Shell脚本的限制模式,限制模式将会禁用一些脚本或命令

例如可以禁用cd 命令的使用等等

Trap 命令可以指定在收到某条信号的时候执行某条命令

Trap command sig1

Alias 和 unalias 设置别名和取消设置别名

Alias cddavid=’cd  /home/david’

Linux 中的设备有两种类型:

字符设备(无缓冲且只能顺序存储)、块设备(有缓冲且能随机存取)

两个特殊的设备:/dev/zero   /dev/null

/proc 文件系统

是一个伪文件系统,它只存在内存中,而不占用外存空间。它以文件系统的访问方式为访问系统内核参数的操作提供接口。由于系统的信息(如进程)是动态改变的,所有用户或应用程序读取/proc文件时,/proc文件系统是动态的从系统内核读出所需信息并提交的。所以有些时候我们称/proc中的文件为虚拟文件。也有些时候我们查询文件会返回大量的信息,可是文件的大小却会是0

/proc 目录下有三个重要的文件:

Net  scsi  和sys

Sys
目录是可写的,可通过它查询或修改内核参数

而 net 和SCSI 则取决于内核参数的配置

使用/proc/sys 优化系统参数(不要轻易修改,否则可能会引起系统崩溃)

例如可以修改   /prco/sys/fs/file-max  设置文件的最大个数

用户修改内存参数后,要将其添加到文件rc.local 中,当系统启动后能自动完成修改
 net 是查看网络

/proc/net/sockstat   /proc/net/tcp

时间: 2024-11-08 21:19:28

linux 综合 待修改的相关文章

linux登录提示修改

通常登录修改提示修改两个地方即可,如下:1.profile /etc/profile或者~/.profile.~/.bashrc (bash shell有效)2.motd /etc/motd 如下截图是修改了profile做到的 图片: profie增加内容如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 echo -ne "\033[0;33m" cat <<

Linux系统中修改/etc/profile文件的方法

在Linux系统中etc/profile文件一般是不能更改的,想要更改etc/profile文件就要用一些特殊的技巧进行Linux文件修改.本文就来介绍一下Linux系统中修改/etc/profile文件的方法: etc/profile文件是只读的,直接用vi或gedit打开修改后是无法保存的.要修改profile,需要取得root权限,(使用gedit编辑) $sudo gedit /etc/profile 或者 $sudo -s $gedit /etc/profile 这样打开profile

Linux系统下修改环境变量PATH路径的三种方法

比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profile 在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格) 这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变 3.#vi ~/.bash_profile 修改PATH行,把/et

linux系统下修改文件夹目录权限

linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何修改Linux文件-文件夹权限.以主文件夹下的一个名为cc的文件夹为例. 下面一步一步介绍如何修改权限: 1.打开终端.输入su(没 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何修改Linux文件

linux系统时间修改及同步

时间修改date 月日时分年.秒date -s可以直接设置系统时间 比如将系统时间设定成1996年6月10日的命令如下.#date -s 06/10/96将系统时间设定成下午1点12分0秒的命令如下.#date -s 13:12:00时间同步1.首先需了解linux内一任务计划工具crontab crontab可以定时去执行你要做的动作 直接用crontab命令编辑crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数crontab -l //列出某

Linux下如何修改用户默认目录

Linux下默认的用户目录一般为/home/xxx(root用户除外),有些时候我们可能需要修改这个目录,下面我就给大家分享2中修改的方法 工具/原料 Linux操作系统 方法/步骤 1 1.切换到root用户,直接修改/etc/passwd文件,找到你的用户名你一行,如下图所示修改路径,然后保存即可. 2 2.切换到root用户,使用usermod命令,例如usermod -d /tmp test (test为你的用户名),使用该命令请确保该用户下没有运行的软件或进程 3 最后切换到普通账户,

Linux # Kubuntu 在修改/etc/profile 之后,出现登陆时候,输入密码,循环登陆问题。

问题: Kubuntu 在修改/etc/profile 之后,出现登陆时候,输入密码,循环登陆问题. 原因分析: 因为之前对/etc/profile 进行了编辑,没有进行其他操作,断定是编辑profile时候,导致错误,同时查了网上的一些资料. 分析过程: 先是在登录时,通过 Shift + Ctrl + F1 键,进入 konsole,输入用户名.密码后,通过 vi 查看 /etc/profile 下内容,根据提示进行进一步分析问题所在. 之间出现  E45: 'readonly' optio

linux查看和修改PATH环境变量的方法

linux查看和修改PATH环境变量的方法 查看PATH:echo $PATH以添加mongodb server为列修改方法一:export PATH=/usr/local/mongodb/bin:$PATH//配置完后可以通过echo $PATH查看配置结果.生效方法:立即生效有效期限:临时改变,只能在当前的终端窗口中有效,当前窗口关闭后就会恢复原有的path配置用户局限:仅对当前用户 修改方法二:通过修改.bashrc文件:vim ~/.bashrc //在最后一行添上:export PAT

Tomcat修改favicon.ico图标,Linux下Tomcat修改favicon.ico图标,Tomcat更换favicon.ico图标

Tomcat修改favicon.ico图标,Linux下Tomcat修改favicon.ico图标,Tomcat更换favicon.ico图标 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright 蕃薯耀 2017年3月2日 http://www.cnblogs.com/fanshu