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

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

用户使用的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的首末字符i和n,18为中间的字符数)是“国际化”的简称。

辨析

passwd –l与usermod –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=rwx,6=rw-,5=r-x,4=r--,3=-wx,2=-w-,1=--x,0=---

4.文件的默认权限

umask      显示系统预留权限值

vim/etc/bashrc        修改shell的umask。

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

vim/etc/profile        修改系统的umask。

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

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

source /etc/bashrc  刷新bash配置

source /etc/profile  刷新系统配置

6.特殊权限

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

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

t=1

chmod o+t directroy

chmod 1777 directory

2)sgid    强制位

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

任何人运行二进制文件。

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

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

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

chmod g+s file|directory

chmod 2777 file|directory

3)suid    冒险位

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 pid,nice,comm

优先级为-   ?????

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 [email protected]

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

[email protected]‘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

[[email protected] ~]#             ###登陆成功

ctrl +d       |logout                       ###退出

[[email protected] ~]# logout

Connection to 172.25.254.1 closed.

[[email protected] ~]# vim /etc/motd        ###设定登陆显示字符

3.hostnamectl

uname -r 查看内核信息

sshkey加密

1.生成key(rsa加密)买锁

ssh-keygen

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

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

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

ssh-copy-id -i /root/.ssh/[email protected]

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

-i                指定加密key文件

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

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

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

3.分配钥匙给主机

scp /root/.ssh/[email protected]:/root/xssh

4.ssh [email protected]

提升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    [email protected]:/directory    上传文件

scp -r       dir    [email protected]:/directory长传目录

scp [email protected]:/filename  /directory         下载文件

scp -r        [email protected]:/directory/directory         下载目录

rsync         远程同步

rsync file|direcotry [email protected]:/directory

rsync [email protected]:/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动态获取,none和static都表示静态网络

ONBOOT=yes                              开机自动激活设备

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

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

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

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

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

ONBOOT=yes                     开机自动激活设备

NAME=eth0                        指定链接名字

IPADDR=172.25.254.100                   设定ip为172.25.254.100

NETMASK=255.255.255.0                 子网掩码为255.255.255.0

PREFIX=24                 子网掩码为255.255.255.0

查看哪些用户使用bash

 

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

which 与type

hostnamectl?????

时间: 2024-10-14 10:42:45

LINUX 学习笔记2的相关文章

linux学习笔记(一)-文件目录相关的命令&&文件通配符

一.几个命令概述 1.查看目录以及目录底下的文件:ls(-a显示隐藏文件:-d显示目录本身:-l显示详细内容:-R递归显示,即把子目录的文件也显示出来:-h以更加被人类理解的格式显示,比如显示文件大小的时候用M为单位显示:-i显示文件索引ID) 2.查看文件内容:cat,head,tail,less,more,tac cat:将文件连接起来,输出在屏幕上,可接多个文件(-E:显示隐藏的换行符:-n:显示出行号) head:默认查看文件的前10行(-n#:查看文件的前#行.空白行也是一行) tai

Linux学习笔记四:Linux的文件搜索命令

1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [[email protected] ~]$ which ls alias ls='ls --color=auto' /bin/ls 另外一个命令:whereis [名称名称],也可以列出命令所在目录. [[email protected] ~]$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/ma

Linux学习笔记——例说makefile 增加系统共享库

0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力.所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法. 例说makefile大致分为4个部分 1.只有单个C文件 2.含有多个C文件 3.需要包括头文件路径 4.增加宏定义 5.增加系统共享库 6.增加自定义共享库 7.一个实际的例子 [代码仓库]--makefile-example

Linux学习笔记——如何使用echo指令向文件写入内容

0.前言 本文总结如何使用echo命令向文件中写入内容,例如使用echo指令覆盖文件内容,使用echo指令向文件追加内容,使用echo指令往文件中追加制表符. echo向文件中输出内容的基本方法是使用IO重定向指令--">",默认情况下echo输出到标准输出中,使用>指令可重定向输出到文件中. 1.echo指令基本用法 [1]Linux官方用户手册--echo指令 [2]输入指令获得帮助 sudo echo --help 返回内容如下 用法:echo [短选项]... [字

linux学习笔记--vim程序编辑器

1,在linux系统中使用文本编辑器来编辑自己的linux参数配置文件是一件很重要的事情,因此系统管理员至少应该要熟悉一种文本编辑器. 2,不同的linux distribution各有不同的附加软件,linux命令行界面下的文本编辑器有Emacs,pico,nano,joe与vim 3,学习vim的重要性 (1)所有的UNIX Like系统都内置vi文本编辑器,其他的文本编辑器不一定存在 (2)很多软件的编辑接口都会主动调用vi (3)vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确

linux学习笔记-type命令

语法: type [-tpa] name 参数: type:    不加任何参数时,type会显示出name是外部命令还是内部bash内置命令 -t:      当加入-t参数时,type会将name以下面这些字眼显示出它的意义 file:表示为外部命令 alias:表示该命令为命令别名所设置的名称 builtin:表示该命令为bash内置的命令功能 -p:     如果后面接的name为外部命令时,才显示完整文件名 -a:     会有path变量定义的路径中,将所有含有name的命令都列出来

Linux学习笔记三:Linux的权限处理命令

1.改变文件或目录权限  chmod 语法:chmod [{ugo} {+-=} {rwx}] [文件或目录] 或 [mode] [文件或目录] 第一种语法中: 这里的u是所有者,g是指所属组,o是指其他人 +是指增加权限,-是指减少权限,=是指赋予权限 r是指读权限,w是指写权限.x只是执行权限 第二种语法中: 在这里,r的值是4,w的值是2,x的值是1. 这里写的mode,是指一组数字.如:421.这里的421,是指所有者所拥有权限的数字总和是4,所属组所拥有权限的总和是2,其他人所拥有权限

Linux学习笔记033_10

网卡命名: eth0,eth1 子接口(一个网卡上多个IP):eth0:1,eth0:2 ifconfig: 查看网卡信息 ifup ethx:开启网卡 ifdown ethx:关闭网卡 配置网卡: 图形 命令: ONBOOT为yes表示启动计算机时通过网卡 全局网络配置: 第一行为开启ipv4,第二行为开启ipv6,第三行为计算机名,注意计算机名在DNS要解析到,如clc.com 可以加一行:GATWAY=192.168.1.254,不过以network-scripts中的网关优先级高 DNS

Linux学习笔记033_11进程

ps:(process information,静态的) 显示进程信息,不加参数显示当前终端的进程 a:包括所有终端的进程 x:不属于任何终端的进程,和任何用户无关系的进程 u:显示出进程的拥有人 f:显示进程的附属关系(依赖关系,父子进程) USER:进程的拥有人 PID:进程ID,默认用进程ID排序 VSZ:程序在运行时调用多少虚拟内存 RSS:真实内存 TTY:?不属于任何终端,进入终端之前就运行 STAT:状态,s为睡眠 TIME:进程持续时间 COMMAND:运行这个进程的指令 ps

Linux学习笔记——虚拟机中安装VMware Tools

0 前言 VMware Tools是VMware虚拟机中自带的一种增强工具,只有在VMware虚拟机中安装好了VMware Tools,才能实现主机与虚拟机之间的文件共享,实现文件在虚拟机之间的复制粘贴. 最近购买了周立功的一款EasyARM开发板,作为树莓派Linux学习的补充.在虚拟机中安装了周立功提供的ubuntu镜像,总觉得在主机和PC机之间直接复制粘贴才爽,所以又安装了Vmware Tools.     [相关博文] [ Linux学习笔记--vmware plarer中安装ubunt