首页 > 代码库 > LINUX 学习笔记2

LINUX 学习笔记2


vim

1.vim 命令模式

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

临时设定:

 :setnu             行号添加

 :setnonu        取消行号

 :setmouse=a        添加鼠标选择

:set cursorline       行线显示

 

永久设定方式vim /etc/vimrc ,在这个文件后加入想要的参数,如set nu

 

2.vim命令模式下关键字

搜索:/关键字         n向下匹配 N向上匹配

 

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

 

1.字符的复制,删除,剪切

 

yl                复制1个字母

y3l             复制3个字母

y3w           复制3个字母

y3y            复制1

 

dl/w/d                删除字母/单词/

cl/w/c                剪切字母/单词/

 

粘贴                   p

 

PayAttention

esc ---> p          剪切过后会进入到插入模式,执行粘贴时按esc

 

2.快捷键

u               恢复到操作之前             

crtl + r      恢复到操作之后

 

4.vim的可视化模式

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

ctrl + v      块装选择一片区域

v                 全行选择一片区域

 

 

可视模式下批量添加字符

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

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

 *>> esc

技术分享            技术分享

 

 

5.批量修改字符

 

实验文档:/etc/kdump.conf

 

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

 

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

 

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

技术分享        技术分享

 

:%s/^\ *//g     把全文行首的空格去掉"^\ *"表示行首的空格

 

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

技术分享        技术分享

6.vim的分屏功能

 ctrl+w s   上下分屏

 ctrl+w v左右分屏:对于同一个文件分屏。键入文字时,两个页面同时输入。

 

技术分享

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

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

 

vimdifffile1 file2

技术分享

7.vim光标移动

在命令模式下

:数字        移动到指定的行

 

插入模式

 

O

I i 字符(s a A  ----- s删除整行插入

o

 

8.其他

wq!    只对文件所有者或者超级用户才生效

vim帮助:vimtutor

gedit帮助:yelphelp:gedit

用户

1.用户理解

用户配置文件: /etc/passwd

用户信息用户:密码:uidgid:说明:家目录:

 

用户使用的shell配置文件: /etc/shadow

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

 

组信息配置文件:/etc/group

组名称:组密码:组id:附加组成员

 

组认证信息:/etc/gshadow

用户家目录:/home/username

 

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

 

2.用户管理

 

1.用户建立

 useradd 参数 用户名字

-u      指定用户uid

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

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

-c     用户说明(comment

-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数字

-a      显示所有信息

 

5.用户信息更改 usermod 参数 用户

 -l   更改用户名称

 -u   更改uid

 -g 更改gid

 -G           更改附加组

 -aG 添加附加组

 -c    更改说明

 -d   更改家目录指定(只是修改/etc/passswd中的配置)

 -md        更改家目录指定及家目录名称(movedir) (在真实的目录中修改家目录)


技术分享


 -s 更改shell

-L 冻结帐号

 -U           解锁

 

3.用户权力下放(root给普通用户权限)

1.配置文件:/etc/sudoers

 

2.下放权力的步骤

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

有些配置文件很重要,用visudo如果改错了,会提示错误信息

 

*)格式:100

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

 test      www.localhost.com=(root)      /usr/sbin/useradd


技术分享

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

 

3.执行下放权限命令 sudo 命令    (一定不能忘记在命令前加sudo!!!)


技术分享

如果第一次执行sudo需要输入当前用户密码

 

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

 test    www.localhost.com=(root)     NOPASSWD /usr/sbin/useradd

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

 

4.用户认证信息的控制

 

chage参数 用户

 

-d    用户密码组后一次修改的时间。

如果设定成0,用户登陆系统后必须修改自己的密码。

 


技术分享

 

技术分享


-m   最短有效期     min

-M   最长有效期     max

-W   警告期

-I     用户非活跃天数

-E    帐号到期日格式  expiredate到期日  -E "YYYY-MM-DD"

其他

用户的shell不可交互 就不能用su切换

i18n(其来源是英文单词internationalization的首末字符in18为中间的字符数)是国际化的简称。

 

辨析

 passwd –lusermod –L区别


技术分享


usermod 冻结用户,强度较弱(!),usermod –U一次即可解冻


技术分享


passwd锁定用户,强度较强(!!),需要usermod –U两次才能解锁,passwd –U一次即可。


技术分享

 

su – su区别

$PATH

su -:切换用户+环境

su :仅仅切换用户

 

文件权限

1.文件属性的查看

 ls     -l   filename

-rw-r--r--  .        1root root 0 Oct  9 00:06 filename

1                2     3                          4

1.文件类型

-          

d,l

c       :字符设备,/dev/pts下有很多

s       :套接字

p       :管道,怎么创建??

b       :块设备

2.

 

. ????

3.互为硬链接的文件个数,也就是文件内容被系统记录的次数。

4.文件最后一次被修改的时间

 

2.文件用户组的更改

chown      用户名称         文件         更改文件所有人

chgrp        组名称     文件         更改文件所有组

chown -R 用户        目录         更改目录本身以及目录中的子文件的所有人

chgrp -R 组名目录         更改目录本身以及目录中的子文件的所有组

 

 

监控命令

watch –n 1 ls –lR   /mnt

 

3.权限的识别

 

权限种类

r

r权限针对文件,表示可以查看文件内容

r权限针对目录,表示可以ls 查看目录中存在的文件名称

 

w

w权限针对文件,表示可以更改文件的内容

w权限针对目录,表示是否可以删除目录中的子文件或者子目录

 

x

x权限对于文件,表示是否可以开启文件当中记录的程序

x权限对于目录,表示是否可以进入目录

 

chmod:     改权限

 

r=4

w=2

x=1

 

7=rwx6=rw-5=r-x4=r--3=-wx2=-w-1=--x0=---

 

 

4.文件的默认权限

umask      显示系统预留权限值

 

vim/etc/bashrc        修改shellumask

71行是普通用户的更改,73是超级用户的更改

vim/etc/profile        修改系统的umask

60行是普通用户的更改,62是超级用户的更改

 

两个要一起改才能全部生效

 

source /etc/bashrc  刷新bash配置

source /etc/profile  刷新系统配置

 

6.特殊权限

1sticky粘滞位(只针对目录)

o+t   当一个目录上有t权限时,这个目录中的文件只能被文件拥有者删除

 

t=1

chmod o+t directroy

chmod 1777 directory

 

2sgid    强制位

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

                   任何人运行二进制文件。

                   程序产生的进程的所有组,都是文件的所有组。

 

g+s   针对目录,在目录中创建的文件都自动归属到目录所在组,与文件建立者所在组无关。

针对二进制文件,文件内记录的程序在执行时和执行者的组身份没有关系,而是以二进制文件的所有组的身份执行的

    chmod g+s file|directory

    chmod 2777 file|directory

 

 

3suid    冒险位


u+s            执行文件内的程序产生的进程,进程的拥有者为文件拥有者,与进程发起人无关。

 

chmod u+s file

chmod 4777 fileg+s

 

 

 

进程

1.进程就是cpu未完成的工作

 

2.进程状态

运行

休眠

停止

继续

结束

僵尸进程

 

3.图形中如何查看进程

gnome-system-monitor

技术分享

4.如何用命令查看进程

ps              进程查看工具

         -a      shell中运行的进程

         -x      未在中运行的进程

         -u      查看进程用户信息

         -l       显示进程的详细信息

         -f       完全信息full的缩写

         -e      显示系统中的所有进程

 

ps     aux   |grep        进程关键字

技术分享

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

 

%cpu         进程cpu负载

%mem      进程内存负载

user

group

pid

comm       进程名称

 

技术分享

nice  优先级(-19~20

ps aux --sort +|-%cpu|%mem...                ##进程按指定方式排序

+       正序

-        倒叙

技术分享

2.优先级查看

ps ax –o pidnicecomm

技术分享

 

优先级为-   ?????

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

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

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

 

4.改变进程优先级

renice       -n      优先级数字     进程pid

 

5.如何控制shell重进程的前后台调用

 

jobs  查看被打入后台的进程信息

comm &   进程在shell后台运行

ctrl +z       把占用shell的进程打入后台停止

技术分享


fg      把指定进程调回前台

技术分享

bg     把后台暂停的进程运行

(因为vim占用终端,所以即使用bg,也会暂停运行)

技术分享

 

6.如何用命令控制进程

 

1)信号

信号 1     reload进程

信号 2     ctrl +c 删除进程在内存中的信息

信号 3     内存中的鼠标信息清除

信号 9     强行关闭进程(强度相当,不能被阻塞忽略!最厉害!)

信号 15  正常关闭进程(强度较弱)

信号 18  开启停止的进程

信号 19  停止正在运行的进程(强度相当,不能被阻塞忽略!最厉害!

信号 20           ctrl+z(强度较弱)

 

man7       signal        查看信号详细信息

 

2)信号发起

kill    信号         pid

killall         信号         进程名称

pkill -u username     结束某个用户的所有进程

7.用户登陆监控

 

w               查看当前使用系统的用户

w      -f                查看当前使用系统的用户并显示使用地点

 

last  查看登陆过系统的用户

lastb                  查看试图登陆但没有成功的用户

 

8.top命令

u username

k 信号

h

s

m

c

 

 

服务

1.systemd:系统开始的第一个进程,pid=1

pstree

技术分享

 

2.systemctl

 

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

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

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

 

systemctl status sshd     

systemctl stop sshd

systemctl start sshd

systemctl restart sshd

systemctl reload sshd      使指定服务重载

 

systemctl enable sshd     使指定服务开机自启

systemctl disable 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    关闭

enable      开机自启

disable

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

failed        系统配置错误

 

ssh

1.什么是openssh

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

 

2.如何实现远程访问

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

ssh root@172.25.254.1

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

ECDSA key fingerprint is 55:dd:43:ce:bf:94:dd:91:49:e7:97:29:63:3d:02:02.

Are you sure you want to continueconnecting (yes/no)? yes         ##建立安全传输key

root@172.25.254.1‘s password:    ##密码输入没有回显

Last failed login: Sun Oct 11 16:56:29 CST2015 from 172.25.254.206 on ssh:notty

There was 1 failed login attempt since thelast successful login.

Last login: Sun Oct 11 16:55:46 2015 from172.25.254.206

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

ctrl +d       |logout                       ###退出

[root@foundation1 ~]# logout

Connection to 172.25.254.1 closed.

 

[root@localhost ~]# vim /etc/motd        ###设定登陆显示字符

 

3.hostnamectl

uname -r 查看内核信息

 

 

sshkey加密

1.生成keyrsa加密)买锁

ssh-keygen

 

ls /home/username/.shh   生成密钥存放位置

id_rsa  位私钥(钥匙)         id_rsa.pub位公钥()

 

2.添加key的认证方式  上锁

ssh-copy-id -i /root/.ssh/id_rsa.pubroot@localhost

 

ssh-copy-id       添加key认证的工具

-i                指定加密key文件

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

root加密用户为root,也可以为其他的吧?

localhost:被加密的主机ip(服务器ip

 

3.分配钥匙给主机

scp /root/.ssh/id_rsaroot@clienthost:/root/xssh

 

4.ssh root@serverhost

 

 

 

 

提升openssh安全级别

 

1.openssh-server配置文件

/etc/ssh/sshd_config

 

配置文件中,被注释的参数,为默认配置,可以用man查阅

 

78 PasswordAuthentication yes|no         是否开启用户密码认证登陆

48 PermitRootLogin yes|no     是否允许超级用户远程登陆(通过sshd的认证)

49 AllowUsers student westos        用户白名单

50 Denyusers westos     用户黑名单

 

systemctl restart sshd                       重新加载配置

 

 

不同文件之间的传输

 

1.文件归档(打包)

 

tar   

         f        指定生成包的名字

         c       创建包

         v       显示创建过程

         t        查看包中内容

         x       解包

         r        添加文件到包中

         -C     指定解档目录

         --deletefilename     删除包中指定文件

         --getfilename  取出包中指定文件

         -z

         -j

-J

2.压缩

gz

gzip xxxx.tar =====> xxxx.tar.gz     压缩

gunzip      xxxx.tar.gz=====> xxxx.tar     解压

tar zcf xxxx.tar.gz 目标文件  打包压缩文件

tar zxf xxxx.tar.gz    xxxx.tar.gz===>xxxx

 

bz2

bzip2 xxxx.tar =====> xxxx.tar.bz2         压缩

bunzip2 xxxx.tar.bz2 =====> xxxx.tar     解压

tar jcf xxxx.tar.bz2 目标文件          打包压缩文件

tar jxf xxxx.tar.bz2   xxxx.tar.bz2===>xxxx

 

xz

xz xxxx.tar =====> xxxx.tar.xz         压缩

unxz xxxx.tar.xz =====> xxxx.tar     解压

tar Jcf xxxx.tar.xz   目标文件         打包压缩文件

tar Jxf xxxx.tar.xz                ###xxxx.tar.xz===>xxxx

 

zip

zip -r xxx.tar.zip      xxx.tar      压缩

unzip xxx.tar.zip       解压

 

 

 

 

远程文件传输

scp   远程复制

scp file    user@ip:/directory    上传文件

scp -r       dir    user@ip:/directory长传目录

scp user@ip:/filename  /directory         下载文件

scp -r        user@ip:/directory/directory         下载目录

 

rsync         远程同步

 

rsync file|direcotry user@ip:/directory

rsync user@ip:/directory /directory

         -r      同步目录

         -l       不忽略链接

         -p      不忽略权限

         -t      不忽略时间戳

         -g      不忽略组信息

         -o      不忽略用户信息

         -D     不忽略设备文件

sftp

 

 

 


网络

1.网络基础知识

一台主机如果可以连接公网,比如访问www.baidu.com

那么这台主机必然会有

ipaddress

GATEWAY

dns

############ipaddress##############

tcp/ip

ipv4

2进制32

254.254.254.254/255.255.255.0

11111110.11111110.11111110.11111110/11111111.11111111.11111111.00000000

 

254.254.0.254/255.255.255.0

254.254.0.254/255.255.0.0

 

########ip设定###########

ifconfig     查看或者临时设定主机ip的工具

 

 ifconfig 网络接口    查看这个接口上的 ip

 

ifconfig 网络接口 ip netmask 子网掩码    临时设定ip

ifconfig eth0 172.25.254.100 netmask255.255.255.0

 

 

systemctl restart network         重新启动网络基本服务

systemctl restart NetworkManager    网络智能管理服务

 

图形网络配置方式

 nm-connection-editor         图形中的网络设定工具

nmtui                                    文本中的网络设定工具

 

命令设定ip的方式

临时设定:ifconfig 网卡 ip netmask

nmcli

nmcli connection delete  连接名称     删除此连接

nmcli connection add con-name westos ifnameeth0 type ethernet autoconnect  yes   

添加动态网络

nmcli connection add con-name westos ifnameeth0 type ethernet ip4 ip/24 gw4 ip  

静态网络

 

nmcli connection delete  westos

nmcli connection show

nmcli connection down westos

nmcli connection up westos

nmcli connection modify “westos”ipv4.adresses newip/24

nmcli connection modify “westos”ipv4.method<auto|manual>

 

nmcli connection connet eth0

nmcli connection disconnect eth0

nmcli connection status

 

 

网络配置文件

/etc/sysconfig/network-scripts/              网络配置目录

 

###动态网络配置###

vim ifcfg-xxx                                 网络配置文件格式

DEVICE=eth0                     指定文件管理的设备名称

BOOTPROTO=dhcp           dhcp动态获取,nonestatic都表示静态网络

ONBOOT=yes                              开机自动激活设备

NAME=eth0                                 指定网络链接的名字为eth0

 

###静态网络配置###

vim ifcfg-xxx                        网络配置文件格式

DEVICE=eth0                     指定文件管理的设备名称

BOOTPROTO=static|none       dhcp动态获取,nonestatic都表示静态网络

ONBOOT=yes                     开机自动激活设备

NAME=eth0                        指定链接名字

IPADDR=172.25.254.100                   设定ip172.25.254.100

NETMASK=255.255.255.0                 子网掩码为255.255.255.0

PREFIX=24                 子网掩码为255.255.255.0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

查看哪些用户使用bash

技术分享

 

统计一般用户,/etc/passswd  正确错误输出有多少条

技术分享

 

which type


 

 

hostnamectl?????


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

LINUX 学习笔记2