Linux学习

1.常用命令

①pwd:显示当前工作的全路径名
②date:日期命令
③who:在线用户命令(tty1 本地终端登录;pts 异地终端登录)
④cal: 日历命令
⑤uname: 系统信息命令 -r:显示发行版本号;-m:显示所用机器类型
-i:所需硬件平台;-v:显示操作系统版本
⑥wc:统计命令 wc[-lw][-c] 文件名
-l:行数 -w:字数 -c:字节数
⑦su:切换用户命令 su [-] [用户名]
⑧clear:清屏命令
⑨man:在线帮助命令 man 命令名(空格显示下一屏,回车下一行,q键退出)

2.shell命令:

①Tab键命令补全
②history(查看历史命令,在~/.bash_history文件中,!n执行编号为n的命令)
③shell重定向:输出重定向 >(将输入信息直接写入)、>>(将输入信息以追加方式写入) ;输入重定向<。
④shell的管道操作:命令1 | 命令2 |…| 命令n
将前一个命令的输出作为后一个的输入

3.文件操作命令

(1)ls命令: ls [-almRi][目录或文件]
-a:显示指定目录下所有子目录与文件,包括隐藏文件。
-l:以长格式来显示文件详细信息。
-m:按字母逆序或最早优先的顺序显示输出结果。
-R:递归地显示指定目录的各个子目录中的文件。
-i:在输出第一列显示文件的索引节点号。

(2)cd命令(改变当前工作目录):
cd[目录名]
~可以代替路径中主目录那一串字符。
cd . . 上移一层目录
cd /home/a 用户从当前目录移到用户a的主目录下
cd 移到自己的主目录

(3)cat命令(查看文件信息命令): cat[选项]文件名
-n:由1开始对所有输出行进行编号显示
建立小型文件:
cat > 命名的新文件
… #输入信息
+d #存盘并退出
合并文件:
Cat 文件1 文件2 > 新文件名

(4)more 命令:
分屏显示文件内容,回车显示下一行,空格显示下一屏,q键退出。

(5)cp 命令(复制命令):
cp [选项] 源文件或目录 目标文件或目录
cp file1 file2 #file2为新复制的文件,得到新的创建日期和inode编号
cp ./* Dir1 #当前目录下所有文件(不包含目录)复制到Dir1目录中
cp -p file1 file2 #file1复制到file2,目标文件保持原有的日期和编号
cp -r Dir1 Dir2 #将目录Dir1及子目录内容复制到Dir2目录中,效果递归

(6)mv 文件移动及改名命令:
mv [选项] 源文件或目录 目标文件或目录
mv file1 file2 #将文件名从file1变成file2,
mv file* Dir1 #将以file开头命名的多个文件移动到Dir1目录中
mv -f file1 file2 #如果file2已经存在,则这个命令覆盖其内容时不提示

(7)rm 删除命令:
rm [选项] 文件名
如果没使用-r,则rm不会删除目录
rm file1 #删除file1文件
rm -f file2 #删除flie2文件,不提示
rm -r Dir1 #递归删除Dir1目录文件

(8)grep 文件信息检索命令:
grep [选项] 字符串 [文件…]
-n:在显示符合的字符串之前,标出改行行号;
-v:过滤检索;
cat /etc/logrotate.conf | grep -v ^$ | grep -v ^# //过滤掉空格和#号注释的内容

(9)sort 文件排序命令:
sort [选项] [文件列表]
sort file1 #对file1文件按每行第一个字符进行排序输出
sort file1 file2 #将两个文件合起来进行排序输出
sort -r file1 #对file1文件每行第一个字符进行反向排序
sort -r -o outf1 file1 #反向排序,并把结果存入outf1文件
sort -n file1 #对每行第一个字段进行数值排序
sort -k 3 file1 #每行第3个字段为关键字进行排序
sort -n -k 3 file1 #每行第3个字段为关键字进行数值排序
把当前目录下的所有文件按文件大小由大到小进行排序
ls -l | sort -n -r -k 5

(10)find 查找文件命令:
find [路径…][表达式]
find / -name test #从/根目录下查找名称为test的文件或目录
find /var -name *.sh #从/var目录下查找所有以sh为扩展名的文件
find /home -user root #在/home目录下查找宿主为root用户的文件
find /home -user root -a -name *.sh#-a连接两个不同条件,必须同时满足
find /tmp -perm 755 #查找/tmp目录下权限是755的文件
find /tmp -size +2M #查找在/tmp目录下大于2MB的文件

(11)mkdir 创建目录命令:
mkdir [选项][目录名]
mkdir Dir1 Dir2 #同时创建两个目录
mkdir -p Dir1/Dir2 #递归生成Dir1目录与Dir2子目录
mkdir -m 744 /usr/Dir3 #生成目录Dir3作为/usr的子目录。权限744是拥有者rwx,组中其他成员和别人为r—

4.文件的权限

chown [选项][所有者][:[组]]文件列表 ##更改文件的属主或属组
chown wdg f1 #更改文件f1属主
chown :wdg f1 #更改文件属组
chown wdg :wdg f1 #更改文件属主和属组

文件权限表示方法:
r(读),w(写),x(可执行或查找),-(无权限)
文件属主(owner),同组用户(group),其他用户(others)
r w x ,r - x ,r - -
1 1 1 , 1 0 1 , 1 0 0
   7          5         4

文件权限修改方法:
①字母模式:
chmod [选项] 模式 [,模式]文件名
u:user表示用户,即文件或目录所有者
g:group表示同组用户,即与文件属主有相同组ID的所有用户
o:others表示其他用户
a:all表示以上所有用户
+:添加某个权限
–: 取消某个权限
=:赋予给定权限并取消其他所有权限
r:读
w:写
x:可执行或查找
要使用多个字母模式,中间必须以逗号间隔
chmod u+x,g+w,o-r file1 #更改file1权限
chmod a=rw file2 #更改file2权限

②数字模式:
chmod 八进制模式 文件名
chmod 644 file#将file权限改为属主可读可写不可执行,同组与其他只可读

5.文件的链接

链接是访问同一个文件的目录项,可以通过创建链接,使得各个用户在自己方便的位置存取同一个文件,实现文件的共享。
文件链接其实就是为一个文件命名多个名称,硬链接不能从最初的目录项上区分开来,对于文件所做的任何修改都是有效的,不能用于创建目录链接和在不同文件系统之间创建。软链接也称符号链接,是将一个路径名链接到一个文件,可以跨越不同的文件系统,并可以创建目录之间的链接。
ln [选项] 源文件 [目标文件]
ln /home/wdg/m1.c /home/a/m2.c #创建硬链接
ln -s /home/wdg/m1.c /home/a/m2.c #创建软链接

软链接其实只是一个小文本文件,里面包含它所链接文件的绝对路径名,所有读写命令,将沿着链接方向前进,找到实际的文件。删除源文件或目录时,只删除了数据,不会删除链接,一旦以同样的文件名创建了源文件,链接将继续指向该文件的新数据。
硬链接不像软链接,并没有创建新文件,会有与源文件相同的i节点号。软链接会有新的i节点号。

6. 用户和组的配置文件

1.passwd文件
位置:/etc/passwd
作用:用于保存各用户的账户信息
各字段含义:
用户名:口令(加密形式是X):用户标识号(UID):组标识号(GID):注释(例如存放用户全名,可以为空):用户目录:命令解释器(Linux默认为bash)

2.shadow 文件
passwd对任何用户都可读,为增强安全性,用户口令通常用shadow passward保护,即保护在shadow文件中,此文件只对root用户可读。
位置:/etc/shadow
作用:保存各用户账户的密码等信息
各字段含义:
用户名:口令(MD5方法加密:最后一次修改时间(1970.1.1到最后一次更改口令的天数):最小时间间隔(1970.1.1到用户可以改口令的天数):最大时间间隔(1970.1.1到用户必须改口令的天数):警告时间(口令过期前多少天提醒):不活动时间(口令过期后到禁用账户的天数):失效时间(1970.1.1到账户被禁的天数):标志(保留位)

3.group
位置:/etc/group
作用:保存各用户账户分组信息
各字段含义:
组名:组口令:组标识号(GID):组成员

4.gshadow
位置:/etc/gshadow
作用:用于定义用户组口令、组管理员等信息

7.用户和组的管理命令

1)useradd 添加新用户
useradd [参数] 用户名
-d home-dir #设置用户的宿主目录,默认值为/home/username
-e date #设置账号过期时间。格式如2020-10-30
-g group-name #设定用户所属组名,默认自动创建用户名为组名的新的组(私有组),若指定,必须为已经存在的组名
-s shell-path #设定用户登录所使用的shell,默认为/bin/bash
-u uid #设定用户的UID,它必须是唯一的,且大于1000
-D username #用于显示用户所使用的默认值
例子:useradd -u 1010 -g a -d /home/a -s /bin/bash -e 2019/1/1 zhang

2)usermod 修改已有用户账户的属性
usermod [参数] 用户名
参数如useradd参数表 + -l newusername username #改变已有用户名
-L username #用于锁定用户账户
-U username #对已锁定用户进行解锁

3)passwd 设置用户账户口令
passwd [参数] 用户名
不使用参数及不指定用户名为修改当前用户自身口令。
-S username #用于查询指定用户的口令状态,只可root用
-l username #用于锁定用户账户的口令,只可root用
-u username #用于解锁指定用户口令,只可root用
-d username #用于删除指定用户的口令,只可root用

4)userdel 删除指定用户账号
userdel [-r] 用户名
参数r删除用户的同时删除用户所有相关的文件,包括宿主目录及用户的邮件池等。

5)groupadd
groupadd [-r] 组名
其中不带参数为建立普通组,带参数r为建立系统组

6)groupmod 改变用户组账户属性
groupmod [-r]组名
同上

7)groupdel 删除指定组账户
groupdel 组名

8)gpasswd 用于将指定用户添加到指定用户组或从组内删除
gpasswd [参数] 用户名 组名
gpasswd -a username groupname #将指定用户添加到指定用户组
gpasswd -d username groupname #从组内删除用户名
gpasswd -A username groupname #设指定用户为指定组的管理员

8. 软件包管理

常见软件包格式:

1)rpm包,RPM全称是Red Hat Package Manager(Red Hat包管理器),RPM本质上就是一个包,包含可以立即在指定机器体系结构上安装和运行的Linux软件。
2)tar包,tar是tap archive(磁带存档)的简称,逐渐演变为一个将很多文件存档的工具。
3)bz2包,bzip2压缩能力更强的压缩程序。
4)gz包,gzip是GNU组织开发的一个压缩程序。
5)以sh结尾的文件,一般是由Shell脚本编写的程序,它的安装是由Shell编程进行系统配置及复制安装的。
6)src源码文件,源码程序安装前需要进行自编译。
7)bin文件,扩展名为.bin的文件是二进制的,源程序经编译后得到的。
8)zip包,扩展名为.zip的文件是Windows下的老牌压缩文档。

压缩文档命令格式:

zip -r filename.zip filesdir
-r 选项指定是递归地包括所有在filesdir目录中的文件及子目录
解压缩命令格式:
unzip filename

RPM软件包的管理:

RPM功能:安装(将软件从软件包中释放,安装到硬盘上)、卸载(将软件从硬盘删除)、升级(更新版本)、查询(查询软件包各种信息)、验证(检验系统中已安装的软件包与包中软件区别)
RPM包名称格式:
name – version.type.rpm
(1)name为软件名称
(2)version为软件的版本号
(3)type为包的型号
①i[3456]86:表示在Intel x86计算机平台上编译的
②sparc:表示在sparc计算机平台上编译的
③alpha:表示在alpha计算机平台上编译的
④src:表示软件源代码
例如:
httpd-2.0.40-21.i386.rpm是httpd(2.0.40-21)的Interl386平台编译版本包。
httpd-2.0.40-21.src.rpm是httpd(2.0.40-21)的源代码版本包
获得RPM软件包:
①从发行套件光盘中查找
②从RPM官方站点上查找下载(www.rpm.org)
RPM包的命令:
RPM包的安装:
rpm -ivh
i(install)表示安装,v(verify)表示在在安装中显示详细的安装信息,h(Horizontal)表示显示水平进度条。
RMP包的删除:
rpm -e (注意在删除包时,可以不写版本号、包类型和扩展名)
RPM包的查询:
rpm -qa #查询系统中安装的所有RPM软件包
rpm -q #查询指定的软件包是否已安装
rpm -qp #查询包中文件的信息,用于安装前了解软件包中信息
rpm -qi #查询系统中已安装包的描述信息
rpm -ql #查询系统中已安装包中所包含的文件
rpm -qf #查询系统中指定文件所属软件包
查询系统中已经安装有关PHP的软件包:
rpm -qa | grep php

RPM包升级:
rpm -Uvh
U(update)表示升级,v(verif)显示详细的安装信息,h(Horizontal)表示显示水平进度条。升级其实就是删除和安装的组合,可以通过升级的方式安装未安装过的软件包。

RPM包的验证:
验证RPM包的工作是检查包中的文件是否和安装的一致,包括校验码文件的大小、存取权限和属主属性都将进行校验。
rpm -V[参数]
参数可以是包名、文件名或空
Rpm -V httpd #验证已安装的httpd包
Rpm -Vf /etc/passwd #验证包含文件/etc/passwd的软件包
Rpm -Vp httpd-2.0.40-21.i386.rpm #验证未安装的httpd软件包
Rpm -Va #验证所有已安装的软件包
要注意的是验证成功后一般没有提示

YUM软件包管理:

YUM(Yellow dog Updater Modified)是一个在Fedora和Red Hat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,并构建软件的更新机制,可以自动处理依赖关系,并且一次性安装所有依赖的软件包,无须繁琐地一次次下载安装,所有的软件包由集中的YUM软件仓库提供。
YUM软件包管理分为:准备YUM软件仓库、配置YUM客户端以及YUM命令工具的使用三部分。
YUM的软件仓库:
YUM最大优势就是可以去互联网上下载所需的RPM包,然后自动安装。软件仓库的提供方式有本地目录和网络FTP或HTTP服务方式。准备本地仓库可以使用CentOS7光盘的RPM包作为YUM仓库。
YUM的配置文件:
①基本配置文件:/etc/yum.conf
②软件仓库配置文件: /etc/yum.repos.d/*.repo。
③日志文件:/var/log/yum.log

YUM常用命令:
yum[options][command][package…]
[options]是可选的包括-h(帮助)、-y(安装过程的提示选择全为yes)、-q(不显示安装过程)等;[command]为所要进行的操作;[package…]是操作对象。
yum repolist all #查看所有软件仓库
yum repolist enable #查看可用仓库
yum list <软件包名> #查询指定软件包安装情况
yum info <软件包名> #查询指定软件包详细信息

yum install <软件包名或程序组名> #安装

yum check-update #查找可更新程序
yum update <软件包名> #更新

yum remove <软件包名> #删除
yum clean <软件包名> #清除缓存目录下的软件包

TAR软件包的管理:

TAR包现已成为UNIX下标准的文件打包格式,后缀通常为.tar或.tar.gz,前者普通非压缩的包,后者表示压缩的文件包。
作用:TAR包在Red Hat Linux中主要用来安装第三方的程序(因为不是所有的软件都发布RPM软件包,但几乎所有的软件都有TAR包的发布)。
获得:比获得RPM更方便,主要可以通过搜索引擎查找tar或tar.gz软件包。
TAR包命令:
tar cvf<文件或目录>
建立普通TAR包,只打包不压缩,参数cvf,c(Creat)指建立TAR包;v(Verify)表示执行命令时有更多提示信息;f(File)指定TAR包的文件名。
tar cvf a.tar /home/a #对a用户的用户目录进行打包,命名为a.tar
tar zcvf a.tar.gz /home/a #参数z打包并压缩
查询TAR包:
tar ztf #执行后显示软件包所包含文件清单(z查询压缩的包,普通则去掉z,t指查询TAR包,f指定TAR包名)
释放TAR包:
Tar zxvf #z有无表示是否压缩,x表示释放(默认释放路径为当前路径)
Tar -zxvf tar包名 -C 目录 将tar包解压缩到指定目录

9. 常用网络管理命令:

1)hostname #显示主机名
2)hostname 主机名 #设置主机名
3)ifconfig #显示网卡信息
4)ifconfig 网卡设备名 IP地址 #重新设置网卡的IP地址
5)ifconfig 网卡设备名:n IP #将指定网卡设为多个虚拟IP地址(n为编号)
ifconfig ens33:1 192.168.xx.xx
ifconfig ens33:2 192.168.xx.xx
ifconfig ens33:3 192.168.xx.xx
6)ifconfig 网卡设备名 up|down 激活和停止指定网卡
7)ping [-c报文数] 目的主机地址

10. 进程的控制命令:

1.ps命令:
进程查看命令,确定有哪些进程正在执行和执行状态。
-a 显示所有用户进程
-e 显示包括系统进程的所有进程
-l 显示进程详细列表
-f 显示进程详细信息
-x 显示没有控制终端的进程
-u 显示用户名和启动时间等信息
ps -ef #显示所有进程的详细信息

显示的字段含义:
USER 进程所有者的用户名
PID 进程号
%CPU 进程自最近一次刷新以来所占用的CPU时间和总时间的百分比
%MEM 进程使用内存的百分比
VSZ 进程使用的虚拟内存大小,以K为单位
RSS 驻留空间的大小。显示当前常驻内存的程序的K字节数。
TTY 进程相关的终端
STAT 进程状态,用下面的代码中的一个给出:
D 不可中断 Uninterruptible sleep (usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核2.6开始无效)
X 死掉的进程
< 高优先级
N 低优先级
L 有些页被锁进内存
s 包含子进程

  • 位于后台的进程组;
    l 多线程,克隆线程
    TIME 进程使用的总CPU时间
    COMMAND 被执行的命令行
    NI 进程的优先级值,较小的数字意味着占用较少的CPU时间
    PRI 进程优先级。
    PPID 父进程ID
    WCHAN 进程等待的内核事件名

2.free命令:
用于显示系统内存的使用情况,包括内存总量、已使用内存数量、空闲内存数量等信息

3.top命令:
top命令用于实时显示系统进程的状态,包括显示CPU利用率、进程状态、内存利用率等许多系统信息,用top命令一旦运行就会持续不断地更新显示内容,这为系统管理员提供了实时监控系统的功能。

4.sleep命令:
用于使进程延迟一段时间再执行:
sleep time;command
time为延迟时间,command为命令
sleep 10;ps -ef #10秒后再执行

5.kill命令:
终止进程,不但能终止该进程,还能终止该进程的所有子进程。
kill PID #PID为进程号
kill -9 PID #-9为SIGKILL信号,用于立即终止进程-15属于SIGTERM信号,强制终结。

11.vim使用

vi编辑器的启动、保存和退出:
1.启动:
Vi +n filename #打开filename文件,光标停在第n行行首
Vi + filename #打开文件,光标停在最末行行首
Vi -r filename #系统瘫痪后恢复filename文件
Vi +/词 filename #从文件中找出“词”第一次出现位置,光标停在该行行首

2.存盘及退出:
:w <回车> #把编辑缓冲区的内容写到编辑的文件中
:w filename <回车> #把缓冲区的内容另存为名为filename的文件
:q<回车> #退出,若没有任何修改可直接退出
:wq<回车> #存盘后退出
:q!<回车> #强行无条件退出,丢弃缓冲区内容

Vi编辑器的3种工作模式:
1.命令模式:当输入vi命令进入编辑器时,处于命令模式。此时,从键盘上输入任何字符都被当做编辑命令来解释,如,a(append)表示附加命令;i(insert)表示插入命令,x表示删除字符命令等。命令模式可通过命令完成光标定位、字符串检索、文本恢复、修改、替换、标记及文本位移等功能。
2.插入模式:也称为输入模式,可通过vi的插入命令“i”、附加命令“a”、打开命令“o”、替换命令“s”、修改命令“e”、或取代命令“r”进入。插入模式返回命令模式则按下Esc键
3.底行命令模式:在命令模式输入一个冒号“:”,按下中断键(通常是Del键)可终止正在执行的底行命令。底行命令执行后自动回到命令模式。底行模式主要完成文本的全局替换、文本中插入shell命令、vi编辑器的设置、文本的存盘退出、文本块的复制、多个文本间的转换及缓冲区的操作等。

命令模式下的操作:
1.插入命令:
按下i键,在光标之前插入
按下I键,光标所在行行首插入
2.附加命令:
按下a键,在光标之后插入,光标可在一行的任意位置。
按下A键,在光标所在行末尾添加。
3.打开新行命令:
按下o键,在光标所在行下插入一行
按下O键,在光标所在行上面插入一行

4.光标移动命令:
①基本光标移动命令:
四个方向键、hjkl、Space、Backspace、Ctrl+N、Ctrl+P
②快速光标定位:
^:将光标移至当前行第一个非空白符;0:将光标移至当前行第一个字符
$:将光标移至光标所在行行尾,前面输入n,则移至n-1行行尾
[行号]G:将光标移至指定行的开头,没给行号,则是最后一行开头
[列号]|:将光标移至当前行指定列,没给列号,则当前行第1列

5.文本删除命令:
①x及X
x删除光标所在的字符,若前面给出一个数值n,则由光标所在字符开始,向右删除n个字符。X删除光标前字符,给出一个数值n,则由光标前一个字符开始,向左删除n个字符。
②删除文本对象:
dd:删除光标所在行整行
D:从光标位置开始,删除至行尾
d与光标移动命令组合:从光标位置到光标移动限定的文本对象的末尾。
涉及多行,删除包括行,不包括光标限定的那一行。
d0<回车>:删除光标位置(不包括光标)删至行首
d5l<回车>:删除光标位置(包括光标位)向右删5个字符
d$<回车>: 删除从光标位置(包括光标位)删至行尾,与D相同
d3G<回车>:将光标所在行(包括该行)至第3行(不包括它)删除

6.复原命令(undo):
U与u,u是取消最近的一次编辑,多次按u则依次取消前几次的操作,而U则把当前行恢复成它被编辑前(最早)的状态。

7.行结合命令:
J把光标所在行与下面一行结合成一行,前面加数字n,则把当期行与下面行共n行结合成一行。

8.文本位移命令:

>:   将限定行向右移动八个空格,范围由光标所在行与光标移动命令所限定,如>4G,则为第一行到第四行整体右移8个空格
< : 同上,为左移
>>: 光标所在行右移八个空格,5>>为当前行与下面4行都右移八个空格
<<:  同上,为左移

9.字符串检索命令:
/字符串 <回车> #向下查找
?字符串<回车> #向上查找
N与n重复上一个检索命令,n与上一个检索命令查找方向相同,N方向相反
特殊字符*^$[/|需要用转义字符加上反斜线\。

底行命令下的操作:
1.命令定位:
:20<回车> #光标移到第二十行行首
:/字符串/<回车> #光标所在向下查找第一个符合字符串所在行行首
:?字符串?<回车> #向上查找

2.全局(global)替换命令:
一般格式:
:g/模式/命令表
①:g/字符串1/p #屏幕输出包含字符串1的所有行
②:g/字符串1/s//字符串2/ #在所有包含字符串1的行中,将首个字符串1替换成字符串2
③:g/字符串1/s//字符串2/g #用字符串2替换所有出现的字符串1
④:g/字符串1/s//字符串2/gp #替换并输出所有修改行
⑤:g/字符串1/s//字符串2/gc #c为(confirm)确认替换,每次出现1就询问,输入Y确认替换,否则不替换
⑥:g/字符串0/s/字符串1/字符串2/g #对所有出现字符串0的行进行标记,对于标记行出现字符串1的则用字符串2代替
⑦:g!/模式/命令表 #对所有不匹配模式的文本行执行给出的命令表
:g!/IS/s/this/that/gp #对所有不含IS字符的行,将其中字符串this替换成that
⑧:g/^/s// /g #在每一行的开头插入给定的空格。

文本移动和编辑多个文件:
1.缓冲区方式的文本移动(类似复制板剪切板):
①编辑缓存区:
Vi并不在用户创建的文件中完成任何编辑,它是在编辑缓冲区中的文件副本上进行工作的。当用单一文件名参数调用vi时,把命名的文件复制到临时编辑缓冲区中,完成编辑之后把缓冲区的内容复制回命名文件。在存盘之前,即复制回原来文件之前,没有对原文件进行任何改写。
②命名缓冲区(类似复制板与剪切板):
命名缓冲区由字母a~z命名,即vi可以拥有26个字母命名的不同缓冲区。可以使用不同的字母表示临时储存的不同缓冲区,文本附加到不同命名的缓冲区中,使得先前内容不被覆盖或破坏。
1)从编辑缓冲区到命名缓冲区(复制或剪切):
“字母名+行号+操作命令(Y,dd)
“a3Y #将包括光标位置往下共3行复制到缓冲区a中
“b5dd #将包括光标位置往下共5行剪切到缓冲区b中
2)从命名缓冲区到编辑缓冲区(粘贴):
“字母名+操作命令(P,p)
“aP #将a中内容粘贴到光标所在位置上一行
“bp #将b中内容粘贴到光标所在位置下一行
③删除缓冲区:
删除缓冲区可以由数字1~9指定,例如,可以指定把光标所在行的下5行删除并放到2删除缓冲区中:
“25dd
如果想再粘贴回去:
“2p

2.按行操作的文本移动:
:set number #显示行号

①按行复制(co命令):
:1,3 co . #把1到3行文本复制到当前光标所在位置
:1,3 co 7 #把1到3行文本复制到第7行位置
②文本块移动(m命令):
:1,3 m 7 #把1到3行文本移动到第7行位置
③文本间的移动:
:2,5 w filename #把2到5行文本块写到另一个新的filename文件中
:2,5 w>>filename #把2到5行文本附加到指定文件

其它(大数据相关)

1. scp(secure copy)安全拷贝
(1)scp 定义
scp 可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
(2)基本语法

scp -r $pdir/$fname  $user@$host:$pdir/$fname
scp命令 递归 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称

2. rsync 远程同步工具
rsync 主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync 和 scp 区别:用 rsync 做文件的复制要比 scp 的速度快,rsync 只对差异文件做更新。scp 是把所有文件都复制过去。
(1)基本语法

rsync -av $pdir/$fname $user@$host:$pdir/$fname
rsync命令 选项参数 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称

(2)选项参数说明表:

选项 功能
-a 归档拷贝
-v 显示复制过程
  1. 其它
    tail -f 日志文件 #监控日志命令
    netstat 可用于查看端口信息
    -a (all)显示所有选项,默认不显示LISTEN相关
    -t (tcp)仅显示tcp相关选项
    -u (udp)仅显示udp相关选项
    -n 拒绝显示别名,能显示数字的全部转化成数字。
    -l 仅列出有在 Listen (监听) 的服务状态
    -p 显示建立相关链接的程序名
    -r 显示路由信息,路由表
    -e 显示扩展信息,例如uid等
    -s 按各个协议进行统计
    -c 每隔一个固定时间,执行该netstat命令
    nohup 命令,英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
    nohup ,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

语法格式
nohup Command [ Arg … ] [ & ]

参数说明
Command:要执行的命令。
Arg:一些参数,可以指定输出文件。
&:让命令在后台执行,终端退出后命令仍旧执行。

实例
以下命令在后台执行 root 目录下的 runoob.sh 脚本:
nohup /root/runoob.sh &
在终端如果看到以下输出说明运行成功:
appending output to nohup.out
这时我们打开 root 目录 可以看到生成了 nohup.out 文件。
如果要停止运行,你需要使用以下命令查找到 nohup 运行脚本到 PID,然后使用 kill 命令来删除:
ps -aux | grep “runoob.sh”

参数说明
a : 显示所有程序
u : 以用户为主的格式来显示
x : 显示所有程序,不区分终端机
另外也可以使用 ps -def | grep “runoob.sh” 命令来查找。
找到 PID 后,就可以使用 kill PID 来删除。
kill -9 进程号PID
以下命令在后台执行 root 目录下的 runoob.sh 脚本,并重定向输入到 runoob.log 文件:
nohup /root/runoob.sh > runoob.log 2>&1 &

2>&1 解释
将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。
0 – stdin (standard input,标准输入)
1 – stdout (standard output,标准输出)
2 – stderr (standard error,标准错误输出)

你可能感兴趣的:(linux)