当前位置:文档之家› linux知识点总结

linux知识点总结

一、开关机和VI编辑器

硬件-内核层-shell层-应用层-用户
内核层和shell层组成操作系统
shell层处于内核层和应用层之间,是翻译官。
查看发行版本 cat /etc/release
查看内核版本 uname -a
查看操作系统位数isainfo -vb
查看cpu psrinfo -v
查看内存prtconf |grep -i memory

UNIX有8个运行级别0-6和S
3 完全多用户模式 5 停机 6 重启 S单用户模式
who -r 查看当前的运行级别
init 5 关机断电 init 6 重启

关机poweroff 重启reboot
shutdown -y -g 0 -i 5 [message] 立即断电关机
shutdown -y -g 0 -i 6 [message] 立即重启
halt,poweroff,reboot,init 5 没有广播信息

VI编辑器
命令模式
行内快速跳转 ^或数字0跳转至行首 $跳转至行尾
行间快速跳转 1G跳至行首 G跳至行尾 nG跳至第几行
合并行 J把光标所在行与下面一行合并
nJ吧光标所在行与下面n行合并
删除 x删除光标处的单个字符
dd剪切光标所在行
ndd剪切从光标开始的n行内容
d^删除当前光标之前到行首的所有字符
d$删除当前光标处到行尾的所有自读
复制 yy nyy
粘贴 p
/自上而下查找 ?自下而上查找 n定位下一个被查到的字符 N定位上一个被查到的字符
u 取消最近一次操作 U取消对当前行所做的所有操作
ZZ保存退出

末行模式
:w 保存 :w /root/newfile 另存为其他文件
:q!放弃对文件的修改,并退出
:wq保存并退出
:set nu在VI中显示行号 :set nonu取消VI中显示行号
:s/tcp/TCP 当前行第一个 tcp 替换为 TCP;
:s/tcp/TCP/g 当前行所有 tcp 替换为 TCP;
:10,20s/tcp/TCP/g 第 10 行到第 20 行 tcp 替换为 TCP
:%s/tcp/TCP/g 全文替换 tcp 替换为 TCP;

二、操作系统简单配置和单用户模式

允许root用户远程登录
1.vi /etc/default/login
注释掉CONSOLE=/dev/console
#CONSOLE=/dev/console
2.vi /etc/ssh/sshd_config
将第128行改为
PermitRootLogin yes
重启ssh服务 svcadm restart ssh
重启后即可远程登录

允许root用户远程FTP登录
vi /etc/ftpd/ftpusers
在root前添加#,注释掉 root。


修改solaris默认shell
echo $SHELL 查看当前shell类型
vi /etc/passwd
修改root用户为
root:x:0:0....../usr/bin/bash


修改用户默认命令提示符
vi /etc/profile
插入export PS1='[\u@\h:$PWD]\$'
使配置文件生效 source /etc/profile


如忘记 root 密码, 或者更改了内核参数后,重启服务器发现进不了系统,可以进单用户模式。
1.开机时选择Solaris failsafe
进入单用户模式后设置系统默认终端
TERM=vt100
export TERM
2.删除root密码
cp /a/etc/shadow /a/etc/shadow.bak
vi /a/etc/shadow
重启后passwd root 设置密码即可


三、文件和目录管理
命令分为内部命令和外部命令
内部命令:属于shell解释器的一部分
外部命令:独立与shell解释器之外的程序文件

外部命令执行时要到环境变量PATH 中查找相关命令

Tab键:自动补齐
Ctrl+C:取消本次命令编辑
clear 清屏
man 获得命令帮助

/dev 存放设备文件
/etc 存放系统配置文件,启动脚本
/usr 存放所有命令
/tmp 存放临时文件
/opt 存放第三方应用软件
/export/home 存放普通用户的宿主目录

cd 切换目录
pwd 查看当前目录
ls 列出目录内容 -a 显示所有文件 -l使用详细信息 -d列出指定的目录 -h显示易读的大小
drwxr-xr-x 2 root root 512 Jan 13 15:34 Desktop
第一列:类型和权限
第二列:硬连接数
第三列:属主
第四列:属组
第五列:文件大小
第六列:创建或修改的时间
第七列:名称
文件类型
d目录,-普通文件,l连接文件,c字符设备,p管道文件,s通信文件
文件权限
r 4 可读, w 2 可写, x 1 可执行, - 0 没有权限
rwxr-xr-x 755

file查看文件类型 例:file /etc; file /etc/services
cat 显示文件内容 -n显示行号
more,less 分页查看文件内容
head -n 查看文件前N行
tail -n 查看文件后N行
tail -f 动态查看文件内容
strings 查看二进制文件
>覆盖重定向 >>追加重定向

touch 生成一个空文件
grep 文件内容过滤查找
grep [要找的字符串] [要寻找字符的源文件]
-i 查找时忽略大小写 -v反向查找,输出与查找条件不符的行
^表示以什么开头 $表示以什么结尾 ^$表示空行

管道符 | 用来连接多个命令,把前一个命令的输出作为后一个命令的输入。 例: ls -l /etc/ | grep shadow

which 显示命令文件所在位置
find 搜索路径 搜索选项
选项:-name 文件名,-type 文件类型,-user 属主,-group 属组
执行 find 查找根目录及其子目录下 file1 的位置,并输出显示到屏幕上
[root@solaris188:/]#find / -name file1 -print
在/tmp 目录下搜索所有以 f 开头的文件
[root@solaris188:/]#find /tmp -name 'f*' -print

mkdir 创建目录 -p递归创建目录
rm 删除文件或目录 -r递归删除 -i删除前提示 -f强制删除
cp [选项] [源文件或目录] [目的文件或目录] 复制
-r 递归复制所有文件 -p复制时不改变属性
mv [选项] [源文件或目录] [目的文件或目录] 移动重命名
-i覆盖前提示 -f强制移动

mkfile创建文件
mkfile [-nv] size filename
-n创建空的文件名,标注大小,但暂时不分配空间
-v显示创建的文件名和大小

gzip,compress压缩
gunzip,uncompress解压
gzip 不能压缩大文件,
压缩命令不能压缩目录,可以压缩包。
打包 tar -cvf dir01.tar dir01
解包 tar -xvf dir01.tar
注意:打包尽量使用相对路径。如果使用绝对路径打包,解包时还会按照打包时的绝对路径解包回去。
v 显示打包过程 ,f 打包后文件,c 打包,x 解包

文件权限管理
创建文件和目录时,系统自动设置

一定的权限,缺省权限由用户umask控制。如果umask为022,则创建的文件的默认权限为644,目录的默认权限为755.
chmod [-R] [ugoa] [+-=] [rwx] 文件或目录
chmod [-R] nnn 文件或目录
-R递归修改指定目录下所有文件、子目录的权限。
chown [-R] 属主 文件或目录
chown [-R] :属组 文件或目录
chown [-R] 属主:属组 文件或目录
-R递归修改指定目录下所有文件、子目录的权限。

SET位权限
主要用途:
1.为可执行文件设置(有X权限的),权限字符为‘s’
2.其他用户执行该文件时,将拥有属主或属组用户的权限。
SET位权限类型
SUID:表示对属主用户增加SET位权限
SGID:表示对属组内的用户增加SET位权限
-rwsr-xr-x root root 19876 2015-10-10 /usr/bin/passws
表示普通用户以root用户的身份,间接更新了shadow文件中自己的密码。
SET位权限是为可执行文件设置的,当其他用户执行时拥有属主或属组
的权限,为普通文件设置没有意义。
语法:chmod ug+_ 可执行文件

粘滞位权限 Sticky
主要用途:
为公共目录(例如权限为777)设置,权限字符为‘t’
用户不能删除该目录中其他用户的文件
应用示例:/tmp /var/tmp
语法: chmod +_ 目录名




四、用户和组管理
三种用户:超级用户,普通用户,程序用户。程序用户不能登陆系统
一个用户一般可以加入两种类型的组,主组合附加组。用户最多可以加入16个附加组。

用户帐号文件/etc/passwd
tim:x:500:500:tim is a student :/home/tim:/bin/bash
字段一:用户帐号名称
字段二:用户密码或密码占位符x
字段三:UID
字段四:GID
字段五:用户描述
字段六:宿主目录
字段七:登陆SHELL
所有用户都可以访问 passwd 文件中的内容,但是只有 root 用户才能进行更改。

用户密码文件/etc/shadow
tim:NP:150505:0:99999:7:::
字段一:用户帐号信息
字段二:加密的密码字符串信息
字段三:上次修改密码的时间
字段四:密码的最短有效天数,默认值为0
字段五:密码的最长有效天数,默认值为99999
字段六:提前多少天警告用户口令将过期,默认值为7
字段七:在密码过期后多少天禁用次用户
字段八:帐号失效时间,默认值为空
字段九:保留字段(未使用)
NP代表没有密码
LK代表锁定

组帐号文件/etc/group

groupadd [-g GID] name
groupmod -g newGID name
groupmod -n newname name
groupdel name

useradd -u uid -g group -G group1,group2... -d 家目录 -s shell -m loginname
-m 建立用户的同时建立家目录

usermod [选项] 用户名
-l 更改用户帐号的登陆名称
-u -g -G -d -s和useradd命令中的含义相同

userdel [-r] 用户名
-r连用户的宿主目录一并删除

passwd [选项] 用户名
-l 锁定用户帐号 -u 解锁用

户帐号
-d 清空用户密码,使之无需密码即可登录
-s 查看用户帐号

su - tim 转换用户

用户和组帐号查询
id [用户名] 查询用户身份标识
groups [用户名] 查询用户所属的组
w、who查询登陆到主机的用户信息
finger [-l] [用户名] 查询用户帐号的详细信息


五、服务和进程管理

SMF(service management facility)服务管理
svcs 显示当前系统正常启动的服务
svcs -a 列出系统上安装的所有服务
svcs -x 查看未正常启动的服务
svcs ssh 查看具体某一服务 如ssh
svcs -l ssh 查看服务详细信息
ls /var/svc/log :每个服务在这个目录下都有一个单独的服务日志文件

常见的服务状态
disable 服务实例处于禁用状态且尚未运行
maintenance 服务实例遇到错误,必须由管理员解决
offline 服务实例处于启用状态,但是尚未运行或无法运行
online 服务实例处于启用状态,且成功运行
maintenance、offline都是非正常状态,可能是因为1.依赖服务没有启动2.配置文件发生错误

FMRI(fault management resource identifier)故障管理资源标识符
例 rlogin服务的FMRI是 svcs:/network/login:rlogin ,其中/network/login 是服务名 ,rlogin是实例名

SMF依赖关系表示服务实例与其他服务之间的依赖关系。服务管理使用以来关系来确定在何时启动和停止服务实例
svcs -D ssh 查看哪些服务依赖ssh服务实例
svcs -d ssh 查看ssh服务依赖哪些其他服务
svcadm 查看相关命令选项
SMF除了标准的svccfg,svcadm,svcs命令外,还提供了inetadn和inetconv专门管理inet服务
inetadm命令用来查看、启用、禁用、修改inetd服务
inetconv则是用来将旧的inetd服务配置转化为SMF规范的服务


FTP服务
ftp 192.168.8.11 登陆ftp
put 上传单个文件
mput 上传多个文件
get 下载单个文件
mget 下载多个文件
bin 二进制方式传输
/etc/ftpd/ftpusers ftp黑名单地址
win和solaris传输文件时注意ftp服务是否开启,在win端ftp界面输入?查看可执行命令,help命令 可查看相关命令介绍


NFS服务
NFS网络文件系统是由sun设计的分布式文件系统,它降低了本地磁盘对存储器的需求,信息访问透明,
扩展性好,操作简单。
NFS本身没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为
NFS使用了一些其他的传输协议。而这些传输协议都用的RPC功能。NFS 是一个文件系统,而RPC是
负责信息的传输。




软件管理
典型应用程序的目录结构
普通执行程序文件 /usr/bin
服务器执行程序文件和管理程序文件 /usr/sbin
应用程序配置文件 /etc
日志文件 /var/log
应用程序文档文件 /usr/share/d

oc
应用程序手册页文件 /usr/share/man

常见软件包封装类型
二进制软件包 扩张名为.gz
源代码软件包 一般为.tar.gz 的压缩包
提供安装程序的软件包 在压缩包内提供install.sh、setup等安装程序,或以.bin 格式的单个执行文件提供
绿色免安装的软件包 在压缩包内提供已编译好的执行程序文件,解开压缩包后的文件即可直接使用
**二进制软件包:不同的unix操作系统使用不同的二进制软件包
solaris中二进制包使用pkg命令集安装
linux中二进制包使用rpm 命令集安装
源代码包:相同的源代码包可以安装在不同的unix操作系统上

pkginfo 显示已被安装在本地磁盘上的软件包信息
pkginfo [-d [device|pathname]] [-l] pkg_name
-d 路径 -l 详细信息
例pkginfo -d /cdrom/sol_10_910_x86/Solaris_10/Product -l SUNWfcp
pkgrm 删除所有与此安装包相关的文件
pkgrm pkg_name
pkgadd 安装软件包
pkgadd [-d [device|pathname]] pkg_name
pkgchk 检测安装是否完成
pkgchk -v pkg_name 软件包生成了哪些文件
pkgchk -lp /usr/bin/ls ls文件是由哪个包生成的


进程管理
unix操作系统包括三种不同的进程
交互进程:由一个shell启动的进程,交互进程既可以在前台运行也可以再后台运行
批处理进程:这种进程和终端没有联系,是一个进程序列。每一个session都是一个终端
监控进程:也称守护进程,unix系统启动时启动的进程,并在后台运行。

ls命令也是交互进程,执行速度快,查看时已结束。
ps -ef 列出系统中活动进程的详细信息,通常使用ps -ef 结合管道符合grep过滤
ps -u oracle 查看oracle用户进程
ps -t pts/2 查看某终端下进程
#pgrep 已知进程名查进程号
ptree 查进程树
动态查看进程 prstat top

进程前台启动:输入命令,直接执行
后台启动:在命令尾部加&
jobs 查看后台进程
fg 作业号 将后台进程调出到前台
bg 作业号 使后台进程在后台继续运行
ctrl + z 将当前的工作挂起到后台,并停止执行
ctrl +c 终止前台进程
kill pid 终止后台进程
kill -9 pid 强制终止后台进程
命令前加nohup,后加&,可以不挂断的运行命令,即即使session挂掉此命令也不会终止

一次性计划管理at ,直接输入命令,即可编辑,存储在 /var/spool/cron/at.jobs
at [-m] time [date]
-m 在作业完成后发送邮件
date 制定月份的前三个或更多个字母,一周中的某日或关键字today或tomorrow

例# at 12:00(默认24小时)
at > rm /export/home/tom/tmp/*.log
at >
ctrl+d 计划使生效
atq 查看作业提交情况
at -l 查看作业
at -r 1443240000.a 删除作业
/etc/cron.d/at.deny at管理黑名单,名单内的用户不能创建、删除

、访问有关at作业的队列信息


周期计划任务管理/var/spool/cron/crontabs
编辑计划任务:crontab -e [用户名]
查看计划任务:crontab -l [用户名]
删除计划任务:crontab -r [用户名]
root用户可以管理指定用户的计划任务,普通用户只能管理自己的计划任务。
crontab命令行: *分 *时 *日 *月 *周 命令
* 表示该范围内的任意时间
,表示间隔的多个不连续时间点
- 表示一个连续的时间范围
/ 指定间隔的时间频率

crontab黑名单/etc/cron.d/cron.deny
白名单/etc/cron.d/cron.allow
默认只有cron.deny黑名单。白名单时用户自定义的,定义白名单后黑名单失效。
如果cron.deny和cron.allow都不存在,则运行crontab需要超级用户特权。




六、设备管理
uptime 查看系统运行时间
date 查看系统当前时间
uname -X 查看操作系统内核版本
cat /etc/release 查看操作系统发行版本
isainfo -vb 查看操作系统位数
psrinfo -v 查看CPU状态
prtconf | grep -i memory 查看内存大小
df -h 查看磁盘分区情况

块设备:随机访问,以安装文件系统的方式使用
裸设备(字符设备):顺序访问


网络基础
网络七层模型
7应用层
6表示层
5会话层
4传输层
3网络层 其主要功能是将网络地址翻译成对应的mac物理地址
2数据链路层
1物理层
中间设备所在层次:物理层 —转发器,数据链路层—网桥、桥接器,网络层—路由器,网络层以上—网关。

计算机之间的通信最终依靠MAC地址实现
根据网络号和主机号的划分方法不同,将ip地址空间分为A.B.C.D.E,其中A.B.C三类是正常地址。
ip地址=网络号.主机号
A类地址:8位网络号,24位主机号 可用地址 0.0.0.0-127.255.255.255
B类地址:16位网络号,16位主机号 可用地址 128.0.0.0-191.255.255.255
C类地址:24位网络号,8位主机号 可用地址 192.0.0.0-233.255.255.255
通常0和255不分配给主机,用作网络标志地址和广播地址。而127.0.0.1作为本地会送用,通常作为本机
的各个网络进程之间通信。
私有网络地址
A类:10.*.*.*
B类:172.16.*.*—172.32.*.*
C类:192.168.*.*—192.168.255.*
子网掩码是用来区分网络上的主机是否在同一网络区段内。
端到端的链接
tcp/ip协议定义端口号,端口号是用一个16位二进制数来表示,端口号的范围是0—65535.
一个IP地址和一个端口号的组合称为一个套接字。




shell
shell有两类变量:临时变量和全局变量。
用户定义的变量 变量名=字符串 赋值号两边没有空格
echo会将输入的字符串送往标准输出,输出的字符串以空白字符隔开,并在最后加上换行号。
echo [-ne] [字符串]
-n不要在最后换行
-e若字符串中出

现以下字符,则加以处理,而不会将他当成一般文字处理。
\n 换行
\r 回车
\f 换页
\b 回退一个字符
\t 制表符
\v 垂直制表符

常用环境变量:
HOME 用户注册主目录
PATH 命令的搜索路径,由冒号隔开
PS1 shell主提示符字符串
PWD 用户当前所在目录
TERM 终端类型,常用的终端类型为vt100
MAIL 用户邮箱的文件路径名
SHELL 显示登录shell的绝对路径
EDITOR 编辑器名字
HISTORY 保存历史命令的条数

特殊变量
$! 在后台运行的最后一个进程的进程号
$@ 一个一个列出所有位置参数
$# 位置参数的总数
$$ 当前进程的PID
$* 一次列出所有位置参数
$? 最后一条命令执行后的退出状态,多数命令执行成功时返回0,执行失败返回非0.

位置参数不能多于9个,每执行一次shift命令,就把位置参数向左移一位。
#!指定执行脚本使用的命令解析器,会产生进程号,不是注释

可以利用read命令由标准输入读取数据,然后赋给指定的变量。

命令逻辑操作符
逻辑与&&
命令1 && 命令2
先运行命令1,如果运行成功,才运行命令2;否则不运行命令2
逻辑或 ||
命令1 || 命令2
先运行命令1,如果运行不成功,则运行命令2;否则不运行命令2

在shell中用{}括起来的命令视为一条独立的命令,左括号前应有一个空格,右括号后应有一个“;”。

测试语句
一种是test命令,一种用[]. 两者完全等价,一般命令行用test,脚本用[],用方括号表示测试时,左右括号前后都要有空格。

有关文件方面的测试
-r filename filename存在且为用户可读
-w filename filename存在且为用户可写
-x filename filename存在且为用户可执行
-s filename filename存在且长度大于0
-d filename filename为一个目录
-f filename filename为一个普通文件
有关字符串方面的测试
string1 = string2 如果string1等于string2则测试条件为真(注意等号前后须有空格)
string1 != string2 如果string1不等于string2则测试条件为真
string 如果字符串string不是空字符串则测试条件为真
-n string 如果字符串string长度不为0则测试条件为真
-z string 如果字符串string长度为0则测试条件为真
有关整数方面的测试
int1 -eq int2 两者为数值int1等于int2,则测试条件为真
int1 -ge int2 两者为数值且int1大于或等于int2,则测试条件为真
int1 -gt int2 两者为数值且int1大于int2则测试条件为真
int1 -le int2 两者为数值且int1小于等于int2则测试条件为真
int1 -lt int2 两者为数值且int1小于int2则测试条件为真
int1 -ne int2 两者为数值且int1不等于int2则测试条件为真

测试条件逻辑符
!逻辑非
-a 逻辑与
-o 逻辑或
圆括号() 等级

高于 -a








相关主题
文本预览
相关文档 最新文档