首页 > 代码库 > 入门级笔记二

入门级笔记二

##############

####2.vim#####

##############


######1.vim 命令模式####


在vim的命令模式下可以配置vim的工作方式

:set nu ##行号添加

:set nonu ##取消行号

:set mouse=a ##添加鼠标选择

:set cursorline ##行线显示

以上设定都是临时的

永久的设定方式

vim/etc/vimrc ##此文件为vim的配置文件,在此文件最后加入以上参数,加到文件中的参数不需要":"


######2.vim命令模式下关键字搜索###

/关键字

n向下匹配

N向上匹配


######3.vim命令模式下字符的管理####

1.字符的复制

yl ##复制一个字母

y3l ##复制3个字母

yw ##复制一个单词

y3w ##复制3个单词

yy ##复制一行

y3y ##复制3行

p ##复制完成后按“p”粘贴


2.字符的删除

dl ##删除一个字母

d3l ##删除3个字母

dw ##删除一个单词

d3w ##删除3个单词

dd ##删除一行

d3d ##删除3行


3.字符的剪切

cl ##剪切一个字母

c3l ##剪切3个字母

cw ##剪切一个单词

c3w ##剪切3个单词

cc ##剪切一行

c3c ##剪切3行

esc--> p ##剪切过后会进入插入模式,在执行粘贴动作时一定要退出插入模式

####4.vim的可视化模式####


在命令模式下按“ctrl+v”进入到可视模式

在可视模式下可以区域选择字符


可视模式下批量添加字符

*>> ctrl+v 选中要加入字符所在列

*>> 按“I”进入插入模式,写入要加入的字符

*>>按esc


####5.批量修改字符#####


:%s/原有字符/替换后字符 ##只替换每一行中出现的第一个原有字符

:%s/原有字符/替换后字符 ##替换所有

:%s/\t//g ##把全文的tab键替去掉

:%s/^\(空格)*//g ##把全文行首的空格去掉

:%s/^\#\(空格)*/#/g ##把全文#后的空格去掉



####6.vim的分屏功能####

ctrl+w s ##上下分屏

ctrl+w v ##左右分屏

ctrl+w c ##关闭光标所在的屏幕

ctrl+w 上下左右 ##光标移动到指定的屏幕


####7.vim光标移动#####

在命令模式下

:数字 ##移动到指定的行

G ##文件的最后一行

gg ##文件的第一行


在插入模式下

i ##光标所在位置插入

I ##光标所在行行首

a ##光标所在字符的下一个位置 

A ##光标所在行行尾

o ##光标所在行的下一行

O ##光标所在行的上一行

s ##删除光标所在字符插入

S ##删除光标所在行插入


####8.vim的退出模式######

:q ##当用vim打开文件但没有对字符作任何操作时可直接退出

:q! ##当用vim打开文件并对字符作操作,放弃所有操作退出

:wq ##保存退出

:wq! ##强行保存退出,对超级用户及文件所有人生效


#####9.vim手册#####

vimtutor ##vim的手册

:q ##退出vimtutor


##################

###3. gedit#######

##################


ctrl+n ##在gedit中打开一个新的tab

ctrl+s ##保存文件

ctrl+o ##打开文件

ctrl+x ##剪切文件

ctrl+v ##粘贴字符

ctrl+c ##复制字符

ctrl+w ##关闭文件

yelp help:gedit ##gedit的图形手册


######end####

 


###############

###第五单元#####

###############


################

###1.用户理解 ###

################

用户就是系统使用者的身份

在系统中用户存储为若干个字符+如干戈系统配置文件

用户涉及到的系统配置文件

/etc/passwd

用户:密码:uid:gid:说明:家目录:用户使用shell

/etc/shadow

用户:密码:最后一次密码修改时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日

/etc/group ##组信息

/etc/gshadow ##组认证信息

/home/username ##用户家目录

/etc/skel/.* ##用户骨架文件


####################

#### 2.用户管理 #####

###################


1.用户建立

useradd 参数 用户名字

-u ##用户指定uid

-g ##指定用户初始组信息,这个组必须已经存在

-G ##指定附加组,这个组必须存在

-c ##用户说明

-d ##用户家目录

-s ##用户所使用的shell,/etc/shells记录了用户能使用shell的名字


2.用户删除

userdel -r 用户名称 -r表示删除用户信息及用户的系统配置


3.组的建立

groupadd -g ##建立组

groupdel 组名字 ##删除组


作以上实验的监控命令:

watch -n 1 ‘tail -n 3 /etc/passwd /etc/group;echo===;ls -l /home;echo===;ls -l /mnt‘


4.用户id信息查看


id 参数 用户

-u ##用户uid

-g ##用户初始组id

-G ##用户所有所在组id

-n ##显示用户名称而不是id数字   用法:id -gn 用户

-a ##显示用户所有信息


5.用户的信息更改


usermod 参数 用户

-l ##更改用户名称

-u ##更改uid

-g ##更改gid

-G ##更改附加组

-aG ##添加附加组

-c ##更改说明

-d ##更改家目录指定

-md ##更改家目录指定及家目录名称

-s ##更改shell

-L ##冻结帐号

-U ##解锁


##################

###3.用户权力下放###

##################


1.在系统中超级用户可以下放普通用户不能执行的操作给普通用户

下放权力配置文件:/etc/sudoers


2.下放权力的方法

*)超级用户执行visudo进入编辑/etc/sudoers模式

*)格式:

获得权限用户 主机名称=(获得到的用户身份) 命令

test desktop0.example.com=(root) /usr/sbin/useradd

test用户能在desktop0.example.com以超级用户身份执行/usr/sbin/useradd


3.执行下放权限命令

sudo 命令 ##如果第一次sudo需要输入当前用户密码

在/etc/sudoers中如果设置如下:

test desktop0.example.com=(root) NOPASSWD: /usr/sbin/useradd; /usr/sbin/userdel

表示用户调用sudo命令的时候不需要自己密码


#########################

###4.用户认证信息的控制#####

#########################

chage 参数 用户

-d ##用户密码最后一次修改的时间,如果设定成0,用户登陆系统后必须修改自己的密码

-m ##最短有效期

-M ##最长有效期

-W ##警告期

-I ##用户非活跃天数

-E ##帐号到期日格式 -E “YYYY-MM-DD”



#############第六单元#############


#####1.文件属性的查看


ls -l filename

(-)(rw-r--r--.) (1)(root) (root) (46) (Oct 1 05:03) (filename)

 1    2            3   4       5 6   7              8


1. “ - ” 文件类型

- ##普通文件

d ##目录

c ##字符设备

s ##套接字   [具有与外界文件链接的功能]

p ##管道

b ##块设备

l ##链接


2. “ rw-r--r-- ”文件读写权限

rw- | r-- | r--

*      $     @

*所有人的权限

$所有组的权限

@其他人的权限


3. “ 1 ” 文件的内容被系统记录的次数


4. “ root ” 文件所有人


5. “ root ” 文件所有组


6. “ 46 ” 文件内容的大小


7. “ Oct 1 05:03 ” 文件最后一次被修改的时间


8. “ filename ” 文件名字


########2.文件所有人、所有组的管理#####


chown username filename ##更改文件所有人

chown username:groupname file | dir ##更改所有人所有组

chown -R username dir ##更改目录本身及里面所有内容的所有人

chgrp -R groupname dir ##更改目录本身及里面所有内容的所有组


监控命令

watch -n 1 ls -lR /mnt


######3.文件普通权限####

rw- | r-- | r--

 u     g     o

u:文件所有人对文件可以读写

g:文件所有组对文件可以读

o:其他人对文件可读

u优先匹配,g次优先,o当u,g不匹配时才进行匹配


1. r

对文件:可以查看文件中的字符

对目录:可以查看目录中文件的信息


2.w

对文件:可以更改文件内字符

对目录:可以在目录中添加删除文件


3.x

对文件:可以运行文件内记录的程序动作

对目录:可以进入目录


4.字符方式修改文件权限

chmod [-R] < u | g |o >< + | - | = >< r | w | x > file | dir


chmod u-x file1 ##file1拥有者去掉x权限

chmod g+w file1 ##file1拥有组添加w权限

chmod u-x,g+w file1 ##file1拥有去掉x权限,file1拥有组添加w权限

chmod ugo-r file2 ##file2的用户组和其他人去掉r权限

chmod ug+x,o-r file3 ##file3用户和组添加x权限,其他人去掉r权限


5.数字方式修改该文件权限

在linux中

r = 4

w = 2

x = 1

文件权限数字表示方式

rw-|r--|r--

u    g   o

u : rw- = 4 + 2 + 0 = 6

g : r-- = 4 + 0 + 0 = 4

o : r-- = 4 + 0 + 0 = 4

7 = rwx

6 = rw-

5 = r-x

4 = r--

3 = -wx

2 = -w-

1 = --x

0 = ---

chmod 修改后权限值 file

chmod 777 file


###########4.系统默认权限的设定####


从系统存在角度来说,开放权力越大,系统存在意义越高

从系统安全角度来说,开放权力越少,系统安全性越高

所以系统设定新建文件或目录会去掉一些权限

设定方式

umask ##查看系统保留权限默认为022

umask 077 ##修改系统保留权限为077,此设定为临时设定,只在当前shell中生效


永久设定方式:

vim /etc/bashrc ##shell

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

       umask 002 ##普通用户umask

    else

       umask 077 ##超级用户umask

    fi


vim /etc/profile ##系统

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

    umask 002 ##普通用户umask

else

    umask 077 ##超级用户umask

fi


以上两个文件umask设定值必须保持一致

source /etc/bashrc

source /etc/profile

让设定立即生效


@@注意:在umask设定中不是单纯的数学计算

      eg:umask 055

 777 - 055 = 722 = rwx-w--w-

 722 - 111 = 622 = rwx-w--w- - xxx = rw--w--w-


#####5.特殊权限####

1.suid(冒险位)


只针对二进制可执行文件

文件内记录的程序产生的进程的所有人为文件所有人,和进程发起人身份无关

设定方式:

chmod u+s file

suid = 4

chmod 4xxx file


2.sgid(强制位)


对文件: 只针对二进制可执行文件

任何人运行二进制文件程序时,程序产生的进程的所有组都是文件的所有组

和程序发起人组的身份无关

对目录: 当目录有sgid权限后,目录中新建的所有文件的所有组

都自动归属到目录的所有组之中,和文件建立者所在的组无关


设定方式:

chmod g+s file|dir

sgid = 2

chmod 2xxx file|dir


3.sticky(粘制位)


只针对目录,当一个目录上有t权限时,那么目录中的文件只能被所有人删除

chmod o+t directory

t = 1

chmod 1xxx directory

chmod 1777 directory


######end######



#######################

#########第七单元########

#######################


#######1.进程的定义####

进程就是cpu未完成的工作

ps

a ##关于当前环境中的所有进程

x ##与当前环境无关的所有进程

f ##显示进程从属关系

e ##显示当前用户环境中的所有进程

l ##长列表显示进程的详细信息

u ##显示进程的用户信息

ps ax -o %cpu,%mem,user,qroup,comm,nice,pid ##查看进程某项信息


%cpu ##显示进程cpu负载

%mem ##显示进程内存负载

user ##进程用户

group ##进程组

comm ##进程名称

nice ##进程优先级

pid ##进程的id


ps ax -o %cpu,comm --sort <+|-%cpu> ##进程按照指定方式排序,仅输出


+ ##正序

- ##倒序

%cpu ##cpu负载排序

%mem ##进程排序


#######2.进程优先级######

1.进程优先级范围

-20~19


2.优先级查看

ps ax -o pid,nice,comm


图形中查看进程:gnome-system-monitor


3.指定某个优先级开启进程

nice -n 优先级数字 进程名称

nice -n -5 vim & ##开启vim并且指定程序优先级为-5


@@注意:nice -n -10 bash  ##修改系统的默认优先级


4.进程改变优先级

renice -n 优先级数字 进程pid

renice -n -5 1806 ##改变1806的优先级为-5


#########3.环境中进程的前后台调用###

命令&

jobs ##查看被打入环境后台的进程

ctrl+z ##把占用终端的进程打入后台

fg ##把后台进程调回前台

bg ##把后台暂停的进程运行

comm & ##让命令直接在后台运行


#######5.进程信号######

1.常用信号等级

1 ##进程重新加载配置 [重新加载配置,但不关闭进程]

2 ##删除进程在内存中的数据(等价于 ctrl+c)

3 ##删除鼠标在内存中的数据

9 ##强行结束单个进程 [只关闭单一进程,如:vim]

15 ##正常关闭进程

18 ##运行暂停的进程

19 ##暂停某个进程

20 ##把进程打入后台

man 7 signal ##查看信号详细信息


kill -信号 进程id

killall -信号 进程名字

pkill -u student -信号

@@注意:

-9和-19不能被系统忽略与阻塞

vim须用-9来进行关闭


######6.用和登陆审记######


1.

w ##查看使用系统的当前用户有哪些

w -f ##-f查看使用地点


2.

last ##查看登陆成功用户


3.

lastb ##查看用户登陆未成功的历史


######7. top命令 #######

top ##监控系统负载工具


############################

####第八单元.系统服务的控制#####

############################

1.systemd

系统初始化程序,系统开始的第一个进程,pid为1


2.systemctl 命令

systemctl list-units ##列出当前系统服务的状态

systemctl list-unit-files ##列出服务的开机状态

systemctl status sshd ##查看指定服务的状态

systemctl stop sshd ##关闭指定服务

systemctl start sshd ##开启指定服务

systemctl enable sshd ##设定指定服务开机自启

systemctl disable sshd ##设定指定服务开机关闭

systemctl reload sshd ##使指定服务重新加载配置

systemctl list-dependencies sshd ##查看指定服务的依赖关系

systemctl mask sshd ##冻结指定服务

systemctl unmask sshd ##启用服务

systemctl set-default multi-user.target ##开机不启用图形

systemctl set-default graphical.target ##开机开启图形


3.服务状态

loaded ##系统服务 已经初始化完成,加载过配置

active(running) ##服务正在被系统利用

active(exited) ##服务已经加载配置,等待被系统利用

active(waiting) ##服务等待被系统处理

inactive ##服务关闭

enbaled ##服务开机启动

disabled ##服务开机不自启

static ##服务开机启动项不可被管理

failed ##系统配置错误


######################################

###########第九单元.openssh-server#####

######################################

1.openssh-server

功能:让远程主机可以通过网络访问sshd服务,开启一个安全的shell


@@查看ip命令:ifconfig


#####2.客户端连接方式####

ssh 远程主机用户@远程主机ip


[root@desktop0 ~]# ssh root@172.25.0.11

The authenticity of host ‘172.25.0.11 (172.25.0.11)‘ can‘t be established.

ECDSA key fingerprint is eb:24:0e:07:96:26:b1:04:c2:37:0c:78:2d:bc:b0:08.

Are you sure you want to continue connecting (yes/no)? yes    ##连接陌生主机时需要建立认证关系

Warning: Permanently added ‘172.25.0.11‘ (ECDSA) to the list of known hosts.

root@172.25.0.11‘s password:                    ##远程用户密码

Last login: Mon Oct  3 03:13:47 2016

[root@server0 ~]# ##登陆成功



ssh 远程主机用户@远程主机ip -X                     ##调用远程主机图形工具


ssh    远程主机用户@远程主机ip     command         ##直接在远程主机运行某条命令



****3.sshkey加密***


1.生成公钥私钥

[root@server0 ~]# ssh-keygen ##生成公钥私钥工具

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): [enter]   ##加密字符保存文件(建议默认使用)

Created directory ‘/root/.ssh‘.

Enter passphrase (empty for no passphrase): [enter] ##密钥密码,必须大于4个字符

Enter same passphrase again: [enter]  ##确认密码

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

ab:3c:73:2e:c8:0b:75:c8:39:3a:46:a2:22:34:84:81 root@server0.example.com

The key‘s randomart image is:

+--[ RSA 2048]----+

|o                |

|E.               |

|..               |

|.  . o           |

|.o. * . S        |

|oo.o o   .       |

|+ =. .  .        |

|o. oo.+..        |

|    ..o*.        |

+-----------------+

[root@serber0 ~]# ls /root/.ssh/


id_rsa id_rsa.pub

id_rsa ##私钥,就算钥匙

id_rsa.pub ##公钥,就是锁


2.添加key认证方式

[root@server0 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub  root@172.25.0.11  【@@注意空格 “ ”,认真仔细,以免少了空格 造成执行错误 】

ssh-copy-id -i ##添加认证方式工具

-i ##指定加密key文件

/root/.ssh/id_rsa.pub ##加密key

root ##加密用户位root

172.25.0.11 ##被加密主机ip


3.分发钥匙给client主机

[root@server0 ~]# scp /root/.ssh/id_rsa root@172.25.0.10:/root/.ssh/


4.测试       


[root@desktop0 ~]# ssh root@172.25.0.11 ##通过id rsa直接连接不需要输入密码

Last login: Mon Oct  3 03:58:10 2016 from 172.25.0.250

[root@server0 ~]# 


****4.提升openssh的安全级别****


1.openssh-server配置文件


vim /etc/ssh/sshd_config    ##打开配置文件

PasswordAuthentication yes|no    ##(在78行)是否开启用户密码认证yse为支持 no为关闭


PermitRootLogin yes|no      ##是否开启用户密码认证,yes为支持,no为关闭

AllowUsers student westos     ##用户白名单,只有在名单上的用户可以使用shell


@@注意:后者的设置要高于前者


DenyUsers westos      ##用户黑名单


###################################

#########第十一单元.管理网络######

###################################


#######1.ip基础知识###

1.ipv4

2进制32位------10进制


172.25.0.10/255.255.255.0

172.25.0.10: ip地址

255.255.255.0: 子网掩码

子网掩码3个255对应的ip位为网络位

子网掩码0对应的ip位为主机位


#######2.配置#######

《图形化》

1.图形界面

nm-connection-editor

2.文本化图形

nmtui


《命令》

ifconfig 网卡 ip netmask ##临时设定


下列命令均可用tab键补齐:


1)自动分配ip

nmcli connection add type ethernet con-name westos ifname eth0 autoconnect yes

@@注意:此处的type、con-name、ifname、autoconnect为同一级别,顺序可以调换

2)手动设置ip

nmcli connection add type ethernet con-name westos ifname eth0 ip4 ip/24


3)删除

nmcli connection delete westos


4)查看连接情况

nmcli connection show


5)关闭

nmcli connection down westos


6)启动

nmcli connection up westos


7)修改ip

nmcli connection modify "westos" ipv4.addresses newip/24


8)设置为自动|静态

nmcli connection modify "System eth0" ipv4.method <auto|manual>


@@注意:始终要记得 systemctl restart network


《文件》

dhcp ##动态获取

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 ##接口使用设备

BOOTPROTO=dhcp ##网卡工作模式

ONBOOT=yes ##网络服务开启时自动激活

NAME=nihao ##网络接口名称

:wq ##退出保存

systemctl restart network


static|none ##静态网络

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 ##接口使用设备

BOOTPROTO=static|none ##网卡工作模式

ONBOOT=yes ##网络服务开启时自动激活

NAME=nihao ##网络接口名称

IPADDR=172.25.0.100 ##

NETMASK=255.255.255.0|PREFIX=24 ##

:wq ##退出保存

systemctl restart network


##########################################

###第十二单元.不同系统之间的文件传输####

##########################################


######1.文件归档#####

1.

文件归档,就是把多个文件变成一个文件


2.

tar c ##创建

f ##指定归档文件名称 (后面要直接加文件名)

t ##显示归档文件中的内容

r ##向归档文件中添加文件

--get ##取出单个文件

--delete ##删除单个文件

-x ##取出归档文件中的所有内容

-C ##指定解档目录

-z ##gz格式压缩

-j ##bz2格式压缩

-J ##xz格式压缩


@@注意:组合用时f应在后面,例如: tf file.tar (正确);

    ft file.tar (错误);

    -f file.tar -t (正确)


#######2. 压缩 #######

四种格式

1)gz 格式

gzip etc.tar ##压缩成gz格式

gunzip etc.tar.gz ##解压gz格式压缩包

tar zcf etc.tar.gz /etc ##把文件归档为tar并压缩成gz

tar zxf etc.tar.gz ##解压并解档gz格式压缩包


2)bz2 格式

bzip2 eyc.tar ##压缩成bz2格式

bunzip2 etc.tar.bz2 ##解压bz2格式压缩包

tar jcf etc.tar.bz2 /etc ##把文件归档为tar并压缩成bz2

tar jxf etc.tar.bz2 ##解压并解档bz2格式压缩包


3)xz 格式

xz etc.tar ##压缩成xz格式

unxz etc.tar.xz ##解压xz格式压缩包

tar Jcf etc.tar.xz ##把文件归档为tar并压缩成xz

tar Jxf etc.tar.xz ##把文件归档为tar并压缩成xz


4)zip 格式

zip -r etc.tar.zip etc.tar ##压缩成zip格式

unzip etc.tar.zip ##解压zip格式压缩包


######3.系统中的文件传输###

scp file username@ip:/dir ##上传

scp username@ip:/dir/file /dir ##下载


ln -s /mnt/file1 /mnt/westos ##建立链接


rsync [参数] file username@ip:/dir

rsync -r ##同步目录

-l ##不忽略链接

-p ##不忽略文件权限

-t ##不忽略文件时间戳

-g ##不忽略文件所有组

-o ##不忽略文件所有人

-D ##不忽略设备文件


@@注意:一般搭配使用r在后面

本文出自 “12097560” 博客,请务必保留此出处http://12107560.blog.51cto.com/12097560/1859911

入门级笔记二