Linux常用终端命令-总结整理-速查

学习终端命令的技巧:

  • 不需要死记硬背, 对于常用命令, 记住语法是关键,在用的时候去查下参数选项,有的很常用的命令,用的多自然就记住了
  • 不要尝试一次学会所有的命令, 有些命令是非常不常用的,临时遇到,就去根据语法找参数选项

用户管理

显示用户:
logname [选项]
	--help		在线帮助。
	--vesion	显示版本信息。
切换用户:
su 用户名
创建用户:
useradd [选项] 用户名
选项:
	-c comment 指定一段注释性描述。
	-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
	-g 用户组 指定用户所属的用户组。
	-G 用户组,用户组 指定用户所属的附加组。
	-s Shell文件 指定用户的登录Shell。
	-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
修改用户密码:
passwd [选项] 用户名
选项:
	-l 锁定口令,即禁用账号。
 	-u 口令解锁。
 	-d 使账号无口令。
 	-f 强迫用户下次登录时修改口令。
修改用户名:
usermod [选项] 新用户名 旧用户名
选项:
  -c, --comment 注释             GECOS 字段的新值
  -d, --home HOME_DIR           用户的新主目录
  -e, --expiredate EXPIRE_DATE  设定帐户过期的日期为 EXPIRE_DATE
  -f, --inactive INACTIVE       过期 INACTIVE 天数后,设定密码为失效状态
  -g, --gid GROUP               强制使用 GROUP 为新主组
  -G, --groups GROUPS           新的附加组列表 GROUPS
  -a, --append GROUP            将用户追加至上边 -G 中提到的附加组中,
                                并不从其它组中删除此用户
  -h, --help                    显示此帮助信息并推出
  -l, --login LOGIN             新的登录名称
  -L, --lock                    锁定用户帐号
  -m, --move-home               将家目录内容移至新位置 (仅于 -d 一起使用)
  -o, --non-unique              允许使用重复的(非唯一的) UID
  -p, --password PASSWORD       将加密过的密码 (PASSWORD) 设为新密码
  -R, --root CHROOT_DIR         chroot 到的目录
  -s, --shell SHELL             该用户帐号的新登录 shell
  -u, --uid UID                 用户帐号的新 UID
  -U, --unlock                  解锁用户帐号
  -Z, --selinux-user SEUSER     用户账户的新 SELinux 用户映射
  
修改组群:
usermod -g 1002 [用户名]
删除用户名:
userdel [选项] 用户名
选项:
	-f:强制删除用户,即使用户当前已登录;
	-r:删除用户的同时,删除与用户相关的所有文件
增加用户组:
groupadd [选项] 用户组
选项:
	-g GID指定新用户组的组标识号(GID)。
 	-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
修改用户组:
groupmod [选项] 用户组
选项:
	-g GID为用户组指定新的组标识号。
 	-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
 	-n 新用户组 将用户组的名字改为新名字
查询用户所属组:
groups 用户名
删除用户组:
groupdel 用户组
将用户添加到组:

​ gpasswd 是 Linux 下的管理工具,用于将一个用户添加到组或者从组中删除。

gpasswd [选项] 组名
选项:
	-a:添加用户到组; gpassws -a 用户名 组名
	-d:从组删除用户;
	-A:指定管理员;
	-M:指定组成员和-A的用途差不多;
	-r:删除密码;
	-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。
	
查看用户组下所有用户:
grep 'group1' /etc/group

系统管理

date命令:

​ date 可以用来显示或设定系统的日期与时间

​ 使用者权限:所有用户

date [参数选项]
参数
    -d<字符串>		显示字符串所指的日期与时间。字符串前后必须加上双引号; 
	-s<字符串>		根据字符串来设置日期与时间。字符串前后必须加上双引号; 
	-u			  显示GMT; 
	--help		  在线帮助; 
	--version 	  显示版本信息
timedatectl命令:

​ 用于控制系统时间和日期。可以用来查询和更改系统时钟于设定,同时可以设定和修改时区信息。

​ 在实际开发过程中,系统时间的显示会和实际出现不同步;我们一般为了校正服务器时间、时区的时候会使用timedatectl命令。

​ 使用者权限:所有使用者都可使用,设置时间需要管理员

timedatectl (status)
分别显示时区、CST时间和UTC时间,其中,RTC time就是硬件时钟的时间,硬件时间默认为UTC

查看所有可用的时区:
timedatectl list-timezones
设置本地时区:
timedatectl set-timezone "Asia/Shanghai"

禁用时间同步:
timedatectl set-ntp false
设置时间
timedatectl set-time "2019-03-11 20:45:00"

启用时间同步:
timedatectl set-ntp true
id命令:

​ id命令用于显示用户的ID,以及所属群组的ID。

​ id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。

​ 使用者权限:所有用户

id [选项] [用户名称]
选项:
	-g或--group		显示用户所属群组的ID。
	-G或--groups		显示用户所属附加群组的ID。
	-n或--name		显示用户,所属群组或附加群组的名称。
	-r或--real		显示实际ID。
	-u或--user		显示用户ID。
	    --help		显示帮助。
	    --version	显示版本信息。
sudo命令:

​ sudo:控制用户对系统命令的使用权限,root允许的操作。

​ 通过sudo可以提高普通用户的操作权限。

​ 使用者权限:普通用户

sudo [选项]
选项:
	-V 显示版本编号
	-h 会显示版本编号及指令的使用方式说明
 	-l 显示出自己(执行 sudo 的使用者)的权限
 	-v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
 	-k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
 	-b 将要执行的指令放在背景执行
 	-p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
 	-u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
 	-s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
 	-H 将环境变数中的 HOME 指定为要变更身份的使用者HOME目录(如不加 -u 参数就是系统管理者 root )
 	command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令
top命令:

​ 用于实时显示 process 的动态。为了查看服务器上运行的程序占用的CPU情况以及占用内存情况,目的就是检测我们的程序是否在正常范围内运行。

top [选项]
选项:
	-d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
	-q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
	-c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
	-S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
	-s : 安全模式,将交谈式指令取消, 避免潜在的危机
	-i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
	-n : 更新的次数,完成后将会退出 top
	-b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内
	
显示指定的进程信息,以下显示进程号为6972的进程信息,CPU、内存占用率:
top -p 6972
ps命令:

​ 用于显示当前进程 (process) 的状态信息。

​ 使用者权限:所有用户

显示当前正在运行的进程信息:ps
显示进程信息:ps -A
显示指定用户信息:ps -u 用户名
显示所有进程信息:ps -ef 或者 ps aux
kill命令:

​ 用于删除执行中的程序或工作(可强制中断)。

​ 使用者权限:所有用户

查看kill的选项:kill -l
杀死一个进程:kill 15642
强制杀死进程:kill -KILL 15642
彻底杀死进程:kill -9 15642
杀死指定用户所有进程:kill -9 $(ps -ef | grep [用户名]) 
				  kill -u [用户名]
关机命令:

​ shutdown命令用来进行关闭系统,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重启。

​ 使用者权限:管理员用户

shutdown [选项] time message
选项:
	-t seconds : 设定在几秒钟之后进行关机程序。
 	-k : 并不会真的关机,只是将警告讯息传送给所有使用者。
 	-r : 关机后重新开机。
 	-h : 关机后停机。
 	-n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
 	-c : 取消目前已经进行中的关机动作。
 	-f : 关机时,不做 fcsk 动作(检查 Linux 档系统)。
 	-F : 关机时,强迫进行 fsck 动作。
 	time : 设定关机的时间。
 	message : 传送给所有使用者的警告讯息。
 	
立即关机:
shutdown -h now 或者 shudown

指定1分钟后关机,1分钟关机并显示警告信息:
shutdown +1 “System will shutdown after 1 minutes”

指定1分钟后重启,并发出警告信息
shutdown –r +1 “1分钟后关机重启”
重启命令:

​ reboot命令用于用来重新启动计算机。

​ 使用者权限:管理员、普通(需要验证)用户

reboot [选项]
选项:
	-n : 在重开机前不做将记忆体资料写回硬盘的动作
 	-w : 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
 	-d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
 	-f : 强迫重开机,不呼叫 shutdown 这个指令
 	-i : 在重开机之前先把所有网络相关的装置先停止
who命令:

​ 用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等。

​ 使用者权限:所有使用者都可使用

who [选项]
选项:
	-H 或 --heading:显示各栏位的标题信息列;
 	-i 或 -u 或 --idle:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串;
 	-m:此参数的效果和指定"am i"字符串相同;
 	-q 或--count:只显示登入系统的帐号名称和总人数;
 	-s:此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题;
 	-w 或-T或--mesg或--message或--writable:显示用户的信息状态栏;
 	--help:在线帮助;
 	--version:显示版本信息
 	
显示明细(标题)信息:
who -H
clear命令:

​ 用于清除屏幕。

​ 使用者权限:所有使用者都可使用

clear
exit命令:

​ 用于退出目前的shell。

​ 执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。状态值0代表执行成功,其他值代表执行失败。exit也可用在script,离开正在执行的script,回到shell。

exit [状态值]
状态值:
	0表示成功(Zero - Success)
	非0表示失败(Non-Zero  - Failure)
	2表示用法不当(Incorrect Usage)
	127表示命令没有找到(Command Not Found)
	126表示不是可执行的(Not an executable)
	>=128 信号产生

目录管理

目录常用目录:

  • ls: 列出目录
  • pwd: 显示目前的目录
  • cd: 切换目录
  • mkdir:创建一个新的目录
  • rmdir:删除一个空的目录
  • rm: 移除文件或目录
  • cp: 复制文件或目录
  • mv: 移动文件与目录或修改文件与目录的名称
ls命令:

​ 查看目录以及文件的明细。

ls [选项] 目录名称
选项:
	-a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
 	-d :仅列出目录本身,而不是列出目录内的文件数据(常用)
 	-l :长数据串列出,包含文件的属性与权限等等数据;(常用)
 	
将根目录下的所有文件列出来(含属性与隐藏档)ls -al ~
查看文件夹下文件的详细信息:
ls -l
从左到右 依次是:
	权限(A区域), 第一个字符如果是 d 表示目录
 	硬链接数(B区域), 通俗的讲就是有多少种方式, 可以访问当前目录和文件
 	属主(C区域), 文件是所有者、或是叫做属主
 	属组(D区域), 文件属于哪个组
 	大小(E区域):文件大小
 	时间(F区域):最后一次访问时间
 	名称(G区域):文件的名称

总结:
ls		显示不隐藏的文件与文件夹
ls -l	显示不隐藏的文件与文件夹的详细信息
ls -al	显示所有文件与文件夹的详细信息
pwd命令:

​ pwd 是 Print Working Directory 的缩写,也就是显示目前所在当前目录的命令。

​ 使用者权限:所有使用者都可使用

查看当前所在目录:pwd -P
cd命令:
cd [相对路径或绝对路径]
绝对路径:
	路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录
相对路径:
	路径的写法,不是由 / 写起,例如:由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法

注意:
cd ~ 表示回到根(root)目录

'绝对路径':在输入路径时, 最前面是以 '/' 开始的, 表示从 '根目录' 开始的具体目录位置
'相对路径':在输入路径时, 最前面不是以 '/' 开始的 , 表示相对 '当前目录' 所在的目录位置
mkdir命令:

​ 用于建立名称为 dirName 的子目录。

​ 使用权限:于目前目录有适当权限的所有使用者

mkdir [选项] dirName
选项:
	-p 确保目录名称存在,不存在的就建一个
	
在工作目录下的 aaa目录中,建立一个名为 bbb的子目录,若aaa目录原本不存在,则建立一个:
mkdir -p aaa/bbb
rmdir命令:

​ rmdir命令删除空的目录。

​ 使用权限:于目前目录有适当权限的所有使用者

rmdir [选项] dirName
选项:
-p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。

在工作目录下的aaa目录中,删除名为 bbb的子目录,若 bbb删除后,aaa目录成为空目录,则aaa同时也会被删除:
rmdir -p aaa/bbb
rm命令:

​ rm命令用于删除一个文件或者目录。

​ 使用权限:于目前目录有适当权限的所有使用者

rm [options] name...
options:
	-i 删除前逐一询问确认。
 	-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
 	-r 将目录及以下之档案亦逐一删除。

注意:文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。
cp命令:

​ cp命令主要用于复制文件或目录。(Ctrl+C)

​ 使用权限:于目前目录有适当权限的所有使用者

cp [options] source... directory
options:
	-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
 	-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
 	-f:覆盖已经存在的目标文件而不给出提示。
 	-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
 	-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
 	-r/R:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
 	-l:不复制文件,只是生成链接文件。

总结:
用户使用该指令复制目录时,必须使用参数"-r"或者"-R"。
如果不加参数"-r"或者"-R",只复制文件,而略过目录。
mv命令:

​ mv 命令用来为文件或目录改名、或将文件或目录移入其它位置。(Ctrl+X)

mv [options] source... directory
options:
	-i: 若指定目录已有同名文件,则先询问是否覆盖旧文件
 	-f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示
 	-n: 不覆盖已存在文件
 	
注意:如果指定了-i、-f、-n 中的多个,仅最后一个生效。
chgrp命令:

​ chgrp命令用于变更文件或目录的所属群组。

​ 文件或目录权限的拥有者由所属群组来管理。可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。

chgrp [选项] 用户组名 文件名

示例:
  chgrp staff /u        将 /u 的属组更改为"staff"chgrp -hR staff /u    将 /u 及其子目录下所有文件的属组更改为"staff"
chown命令:

​ Linux是多任务操作系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。

​ 使用权限 : 管理员账户

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

将文件aaa的属主更改成root:
chown root aaa

注意:chown命令可以更改属主和属组
将aaa文件的拥有者与群组改回为lichee:
chown lichee:lichee aaa

示例:
  chown root /u         将 /u 的属主更改为"root"chown :root /u         将 /u 的属组更改为"root"chown root:staff /u   和上面类似,但同时也将其属组更改为"staff"chown -hR root /u     将 /u 及其子目录下所有文件的属主更改为"root"
chmod命令:

​ Linux的文件调用权限分为三级 : 文件属主、属组、其他。利用 chmod 可以控制文件如何被他人所调用。

​ Linux文件属性有两种设置方法,一种是数字,一种是符号。

​ 使用权限 : 所有使用者

数字权限:

权限英文缩写数字序号
readr4
writew2
执行executex1
无权限-0

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx—] 分数则是:

  • owner = rwx = 4+2+1 = 7
  • group = rwx = 4+2+1 = 7
  • others= — = 0+0+0 = 0
格式:chmod [-R] xyz 文件或目录

示例:chmod -R 770 文件或目录

创建文件as.txt:
touch as.txt
将as.txt这个文件所有的权限都设定启用:
chmod -R 777 as.txt

符号权限:

​ 我们可以使用 u(user 属主权限), g(group 属组权限), o(others 其他权限) 来代表三种身份的权限,此外,a 则代表 all,即全部的身份。

u+(加入)r
g-(减去)w
o=(设定)x
a
示例:
将as.txt的权限设置为 -rwxr-xr-- :
chmod u=rwx,g=rx,o=r as.txt

将权限去掉,拿掉全部人的可读权限:
chmod a-r as.txt

文件管理

touch命令:

​ touch命令用于创建文件、修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

​ ls -l 可以显示档案的时间记录

​ 使用者权限:所有权限用户

touch [选项] 文件或目录
选项:
	-a 改变档案的读取时间记录。
	-m 改变档案的修改时间记录。
	-c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
	-f 不使用,是为了与其他 unix 系统的相容性而保留。
	-r 使用参考档的时间记录,与 --file 的效果一样。
	-d 设定时间与日期,可以使用各种不同的格式。
	-t 设定档案的时间记录,格式与 date 指令相同。
	--no-create 不会建立新档案。
	--help 列出指令格式。
	--version 列出版本讯息。
	
创建空文件:
touch a.txt
创建批量空文件:
touch a{1..10}.txt

查看文件的详细信息:
stat a.txt
vi与vim命令:

​ vi是 visual interface的简称, 是linux中最经典的文本编辑器。

vi的特点

  • 只能是编辑 文本内容, 不能对字体、段落进行排版
  • 不支持鼠标操作
  • 没有菜单
  • 只有命令

vim:是从 vi (系统内置命令)发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

​ 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。

​ vim 则可以说是程序开发者的一项很好用的工具。

命令英文功能常用
iinsert在当前字符前插入文本常用
Iinsert在行首插入文本较常用
aappend在当前字符后添加文本
Aappend在行末添加文本较常用
o在当前行后面插入一空行常用
O在当前行前面插入一空行常用

退出模式:

:q 当vim进入文件没有对文件内容做任何操作可以按"q"退出

:q! 当vim进入文件对文件内容有操作但不想保存退出

:wq 正常保存退出

:wq! 强行保存退出,只针对于root用户或文件所有人

文件查看:
序号命令对应英文作用
01cat 文件名concatenate查看小文件内容
02less -N 文件名less分频 显示大文件内容
03head -n 文件名查看文件的前一部分
04tail -n 文件名查看文件的最后部分
05grep 关键字 文件名grep根据关键词, 搜索文本文件内容

总结:

​ 以上5个命令都可以查询文件的内容,他们的功能如下

​ 通过 cat 会一次显示所有的内容, 适合 查看内容较少 的文本文件

less 命令适合查看 内容较多 的文本文件

​ 通过 head 命令查看文档的前几行内容

​ 通过 tail -10f 文件 命令 查看文档(日志)的后几行内容

​ 通过 grep 命令 搜索存在 关键字 的行

cat命令:

​ cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名,如cat a.txt。

​ 使用者权限:当前文件的权限用户

查看文件名为a.txt的内容(加入行号):
cat -n a.txt

查看所有用户:
cat /etc/passwd
查看密码:
cat /etc/shadow
查看组:
cat /etc/group
less命令:

​ less用于查看文件,但是less 在查看之前不会加载整个文件。

​ 使用者权限:当前文件的权限用户

less [参数] 文件

查看命令历史使用记录并通过less分页显示:
history | less

1.全屏导航

  • ctrl + F - 向前移动一屏
  • ctrl + B - 向后移动一屏
  • ctrl + D - 向前移动半屏
  • ctrl + U - 向后移动半屏

2.单行导航

  • j - 向前移动一行
  • k - 向后移动一行

3.其它导航

  • G - 移动到最后一行
  • g - 移动到第一行
  • q / ZZ - 退出 less 命令
tail命令:

​ tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

​ 使用者权限:当前文件的权限用户

tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

tail [参数] [文件]

显示 txtfile.txt 文件的最后 3 行:
tail -3 txtfile.txt

动态显示文档的最后内容,一般用来查看日志(Ctrl+C组合键停止显示):
tail -f txtfile.txt

动态显示最后4行,命令如下:
tail -4f txtfile.txt

显示文件txtfile.txt 的内容,从第 2 行至文件末尾:
tai -n+2 txtfile.txt

显示文件 txtfile.txt的最后 10 个字符:
tail -c 45 txtfile.txt
grep命令:

​ grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。

grep [选项] [范本样式] [文件或目录]

搜索存在关键字`aaa`的行的文件:
grep aaa a.txt

搜索存在关键字`aaa`的行且`显示行号`:
grep -n aaa a.txt

`忽略大小写`搜索存在关键字的行:
grep -i AAA a.txt

搜索`不存在关键字`的行:
grep -v 中国 a.txt

查找指定的进程信息(包含grep进程):
ps -ef | grep sshd
说明:除最后一条记录外,其他的都是查找出的进程;最后一条记录结果是grep进程本身,并非真正要找的进程

查找指定的进程信息(不包含grep进程):
ps aux | grep sshd | grep -v "grep"

查找进程个数(包含grep进程本身):
ps -ef | grep -c sshd
vim定位行:
vim 文件名 +行数

打开文件定位到第6行:
vim txtfile.txt +6
异常处理:
如果 vim异常退出,在磁盘上可能会保存有交换文件。
将后缀名为.swp的文件删除即可恢复:
rm -rf .txtfile.txt.swp
操作扩展

​ 要熟练使用vi/vim,首先应该学会怎么在命令模式下快速移动光标

编辑操作命令 能够和移动命令一起使用

上 下 左 右

命令功能手指
h向左食指
j向下食指
k向上中指
l向右无名指

也可以使用键盘上的上下左右箭头,这个更有方向感。

行内移动

命令英文功能
wword向后移动一个单词
bback向前移动一个单词
0行首
^行首, 第一个不是空白字符的位置
$行尾

行数移动

命令英文功能
gggo文件顶部
Ggo文件末尾
数字gggo移动到 数字 对应行数
数字Ggo移动到 数字 对应行数
: 数字移动到数字对应的 行数

屏幕移动

命令英文功能
Ctrl + bback向上翻页
Ctrl + fforward向下翻页
HHead屏幕顶部
MMiddle屏幕中间
LLow屏幕底部

上一页和下一页:Shift + PageUp 和 Shift + PageDown

选中文本(可视模式)

命令模式功能
v可视模式从光标位置开始按照正常模式选择文本
V可视化模式选中光标经过的完整行
Ctrl + v可视块模式垂直方向选中文本

撤销和恢复撤销(保命指令)

命令英文功能
uundo撤销上次的命令(ctrl + z)
Ctrl + ruredo恢复撤销的命令

删除文本

命令英文功能
xcut删除光标所在的字符,或者选中的文字
d(移动命令)delete删除移动命令对应的内容
dddelete删除光标所在行, 可以删除多行
Ddelete删除至行尾

删除命令可以和移动命令连用, 以下是常见的组合命令(扩展):

命令作用
dw从光标位置删除到单词末尾
d}从光标位置删除到段落末尾
ndd从光标位置向下连续删除 n 行

复制和剪切

vi/vim 中提供有一个 被复制文本的缓冲区

  • 复制 命令会将选中的文字保存在缓冲区
  • 删除 命令删除的文字会被保存在缓冲区
  • 在需要的位置, 使用 粘贴 命令可以将缓冲对的文字插入到光标所在的位置
命令英文功能
yycopy复制行
d(剪切命令)delete剪切
dd(剪切)delete剪切一行, 可以 ndd 剪切n行
ppaste粘贴

注意:vi中的文本缓冲区只有一个,如果后续做过 复制、剪切操作, 之前缓冲区中的内容会被替换。

vi中的 文本缓冲区 和 系统的 剪切板 不是同一个。所以在其他软件中使用 Ctrl + C 复制的内容, 不能再 vi 中通过 p 命令粘贴。

可以在 编辑模式 下使用 鼠标右键粘贴

替换

命令英文功能工作模式
rreplace替换当前字符命令模式
Rreplace替换当前行光标后的字符替换模式
  • R 命令可以进入 替换模式, 替换完成后, 按下ESC , 按下 ESC 可以回到 命令模式
  • 替换命令 的作用就是不用进入 编辑模式, 对文件进行 轻量级的修改
echo 命令:

​ 使用者权限:所有用户

  • echo string 将字符串输出到控制台 , 通常和 重定向 联合使用
echo hello world
# 如果字符串有空格, 为了避免歧义 请增加 双引号 或者 单引号
echo "hello world"

重定向 >(覆盖) 和 >> (追加)

  • 默认情况下 命令的结果 输出到 控制台
  • 通过 重定向 可以将结果 输出到文件
命令作用
结果 > 文件名> 表示输出, 会覆盖文件的原有内容
将命令的成功结果`覆盖`指定文件内容:
echo 你好>a.txt
命令作用
命令 >> 文件名>> 表示追加, 会将内容追加到已有文件的末尾
将命令的成功结果`追加`指定文件的后面:
echo 世界 >> a.txt
命令作用
命令 &>> 文件&>> 表示不区分错误类型 都放到 日志中
  • 命令的失败结果 追加 指定文件的后面
将命令的失败结果`追加`指定文件的后面:
cat 不存在的目录 &>> error.log

总结

  • 通过 命令 > 文件命令的成功结果 覆盖 指定文件内容
  • 通过 命令 >> 文件命令的成功结果 追加 指定文件的后面
  • 通过 命令 &>> 文件命令的失败结果 追加 指定文件的后面
awk命令(了解):

​ AWK是一种处理文本文件的语言,是一个强大的文本分析工具。

​ 之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger 和 Brian Kernighan 的 Family Name 的首字符。

具体语法如下

awk [选项参数] 'script' var=value file(s)awk [选项参数] -f scriptfile var=value file(s)

1、数据准备:test.txt文本内容如下:

zhangsan 68 99 26
lisi 98 66 96
wangwu 38 33 86
zhaoliu 78 44 36
maq 88 22 66
zhouba 98 44 46

2、搜索含有 zhang 和 li 的学生成绩:

cat test.txt | awk '/zhang|li/'

指定分割符, 根据下标显示内容

命令含义
awk -F ‘,’ ‘{print $1, $2, $3}’ 文件操作1.txt文件, 根据 逗号 分割, 打印 第一段 第二段 第三段 内容

选项

选项英文含义
-F ','field-separator使用 指定字符 分割
$ + 数字获取第几段内容
$0获取 当前行 内容
NFfield表示当前行共有多少个字段
$NF代表 最后一个字段
$(NF-1)代表 倒数第二个字段
NR代表 处理的是第几行
#查看文档内容
cat czbk-txt.txt 
#直接输出
cat score.txt | awk -F ' ' '{print $1,$2,$3}'

指定分割符, 根据下标显示内容

命令含义
awk -F ’ ’ ‘{OFS="==="}{print $1, $2, $3}’ 1.txt操作1.txt文件, 根据 逗号 分割, 打印 第一段 第二段 第三段 内容

选项

选项英文含义
OFS="字符"output field separator向外输出时的段分割字符串
转义序列含义
\b退格
\f换页
\n换行
\r回车
\t制表符
# 按照 === 进行分割, 打印 第一段 第二段 第三段
cat czbk-txt.txt | awk -F ' ' '{OFS="==="}{print $1,$2,$3}'
# 按照 制表符tab 进行分割, 打印 第一段 第二段 第三段
cat czbk-txt.txt | awk -F ' ' '{OFS="\t"}{print $1,$2,$3}'

调用 awk 提供的函数

命令含义
awk -F ‘,’ ‘{print toupper($2)}’ 1.txt操作1.txt文件, 根据 逗号 分割, 打印 第一段 第二段 第三段 内容

常用函数如下:

函数名含义作用
toupper()upper字符 转成 大写
tolower()lower字符 转成小写
length()length返回 字符长度
# 打印第一段内容
 cat czbk-txt.txt | awk -F ' ' '{print $1}'
# 将第一段内容转成大写 且 显示 
 cat czbk-txt.txt | awk -F ' ' '{print toupper($1)}'

求指定学科平均分

命令含义
awk
’BEGIN{初始化操作}
{每行都执行}
END{结束时操作}’
文件名
固定语法
BEGIN{ 这里面放的是执行前的语句 }
{这里面放的是处理每一行时要执行的语句}
END {这里面放的是处理完所有的行后要执行的语句 }
文件名

查看test.txt 文件内容

cat czbk-txt.txt 

查看总分

注意:这里计算的是第4列的总分

cat czbk-txt.txt| awk -F ' ' 'BEGIN{}{total=total+$4} END{print total}'

查看总分, 总人数

注意:这里计算的是第4列的

cat czbk-txt.txt| awk -F ' ' 'BEGIN{}{total=total+$4} END{print total, NR}'

查看总分, 总人数, 平均分

注意:这里计算的是第4列的

cat czbk-txt.txt | awk -F ' ' 'BEGIN{}{total=total+$4} END{print total, NR, (total/NR)}'

总结:

awk在使用过程中主要用作分析。

简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

软连接:

​ 软连接其实就类似于我们在Windows中的【快捷方式】

​ 在Linux中 文件名内容 是两个文件, 分开的。

​ 因为某些文件和目录的 路径很深, 所以需要增加 软链接(快捷方式)。

​ 使用者权限:所有用户

命令英文作用
ln -s 目标文件绝对路径 快捷方式路径link给目标文件增加一个软链接, 通俗讲就是快捷方式
给home/aaa/bbb/ccc.txt文件增加软连接:
ln -s /home/aaa/bbb/ccc.txt ccctxt
find命令:

​ find命令类似与在Windows中全局查找。

​ find命令用来在指定目录下查找文件。

​ 任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

find <指定目录> <指定条件> <指定内容>

将目前目录及其子目录下所有延伸档名是 gz 的文件查询出来:
(.表示当前文件夹下)
find . -name "*.gz"

将目前目录及其子目录下所有最近1天内更新过的文件查询出来:
find . -ctime -1

/代表是全盘搜索,也可以指定目录搜索:
find / -name  'aaa'

压缩

gzip命令:

​ 压缩/解压缩文件,不能压缩目录。

​ .zip格式的文件在Windows和Linux下都能使用。

​ 压缩文件,能节省磁盘空间,传输时能节省网络带宽。

gzip [参数] [文件或者目录]

压缩文件:
gizp a.txt
压缩当前目录下所有文件:
gzip *
解压文件并列出详细信息:
gzip -dv *
gunzip命令:

​ gunzip命令用于解压文件。

gunzip [参数] [文件或者目录]
gunzip a.gz 
tar命令:

​ tar的主要功能是打包、压缩和解压文件。

​ tar本身不具有压缩功能。他是调用压缩功能实现的 。

​ 使用者权限:所有用户

tar [必要参数] [选择参数] [文件]
参数:
	-c 建立新的压缩文件
	-v 显示指令执行过程
	-f<备份文件> 指定压缩文件
	-z 通过gzip指令处理压缩文件
	-t 列出压缩文件中的内容
	-x 表示解压

tar -cvf 打包文件名 文件名			   打包文件并指定打包之后的文件名(仅打包不压缩)
tar -zcvf 压缩文件名 文件名/文件夹名	压缩文件或者文件夹并指定压缩文件名(打包压缩)
tar -ztvf 压缩文件名					 查看压缩文件中有哪些文件
tar -zxvf 压缩文件名					 解压

将 a.txt 文件打包(仅打包,不压缩):
tar -cvf a.tar a.txt

将 a.txt 文件打包压缩(打包压缩(gzip)):
tar -zcvf a.tar.gz a.txt 

查看 tar 中有哪些文件:
tar -ztvf a.tar.gz

将 tar 包解压缩:
1.新建目录
 mkdir Files
2.复制
 cp a.tar.gz ./Files/
3.解压缩
 tar -zxvf /home/lichee/Files/a.tar.gz
zip命令:

​ zip命令用于压缩文件。

​ zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件。

​ 使用者权限:所有用户

zip [必要参数] [选择参数] [文件]
参数:
	-q 不显示指令执行过程。
	-r 递归处理,将指定目录下的所有文件和子目录一并处理。

压缩当前目录下所有文件和文件夹:
zip -q -r aaa.zip *
unzip命令:

​ Linux中unzip命令用于解压缩zip文件。

​ unzip为.zip压缩文件的解压缩程序。

​ 使用者权限:所有用户

unzip [必要参数] [选择参数] [文件]
参数:
	-l 显示压缩文件内所包含的文件。
	-d<目录> 指定文件解压缩后所要存储的目录。

unzip -l 压缩文件名			  查看这个压缩文件中有多少内容
unzip -d 指定文件夹 压缩文件		解压

查看压缩文件中包含的文件:
unzip -l aaa.zip
把文件解压到指定的目录下:
unzip -d ./Files aaa.zip
总结:

gz:由gzip压缩工具压缩的文件。

.tar:由tar打包程序打包的文件(tar没有压缩功能,只是把一个 目录合并成一个文件)

.tar.gz:可理解为先由tar打包,再由gz压缩。

.zip:可理解为由zip压缩工具直接压缩

网络与磁盘管理

ifconfig命令:

​ ifconfig是Linux中用于显示或配置网络设备的命令,英文全称是network interfaces configuring。

​ ifconfig命令用于显示或设置网络设备。

​ ifconfig可设置网络设备的状态,或是显示目前的设置。

​ 使用者权限:所有(设置级别的需要管理员)用户

关闭网卡(需要切换到管理员账户):
ifconfig ens37 down
启用网卡(需要切换到管理员账户):
ifconfig ens37 up

// 配置ip地址
ifconfig ens37 192.168.23.199
// 配置ip地址和子网掩码
ifconfig ens37 192.168.23.133 netmask 255.255.255.0
ping命令:

​ ping命令用于检测主机。等价于Windows的ping命令。

​ 执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

​ 使用者权限:所有用户

ping [参数选项]
参数选项:
	-c<完成次数> 设置完成要求回应的次数。

ping www.baidu.com			检测是否与百度连通
ping -c 2 www.baidu.com		指定接收包的次数

icmp_seq: ping序列,从1开始
ttl: IP生存时间值
time: 响应时间,数值越小,联通速度越快
netstat命令:

​ netstat命令用于显示网络状态。netstat指令可让得知整个Linux系统的网络情况。

​ 使用者权限:所有用户

netstat [参数选项]
参数选项:
	-a 显示所有连线中的Socket
	-i 显示网卡列表
	
netstat -a		显示详细的连接状况
netstat -i		显示网卡列表
lsblk命令:

​ 使用lsblk命令可以以tree的形式展示所有设备的信息。

​ lsblk命令的英文是“list block”,即用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。

​ 使用者权限:所有用户

lsblk [参数选项]
参数选项:
	-f  显示系统信息
	
NAME : 这是块设备名。
MAJ:MIN : 本栏显示主要和次要设备号。
RM : 本栏显示设备是否可移动设备。注意,在上面设备sr0的RM值等于1,这说明他们是可移动设备。
SIZE : 本栏列出设备的容量大小信息。
RO : 该项表明设备是否为只读。在本案例中,所有设备的RO值为0,表明他们不是只读的。
TYPE :本栏显示块设备是否是磁盘或磁盘上的一个分区。在本例中,sda和sdb是磁盘,而sr0是只读存储(rom)。
MOUNTPOINT : 本栏指出设备挂载的挂载点。
df命令:

​ df命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计。

​ 使用者权限:所有用户

df [参数选项]
参数选项:
	--total 显示所有的信息
	-h, 换算成KB,MB,GB等形式进行展示(方便阅读)

df				  显示整个硬盘使用情况
df 文件夹			显示文件夹使用情况
df -total		  显示所有的信息
df -h			  将结果变成KB,MB,GB形式展示,利于阅读
mount命令:

​ 在Linux当中所有的存储设备如u盘、光盘、硬盘等,都必须挂载之后才能正常使用。

​ mount命令是经常会使用到的命令,它用于挂载Linux系统外的文件。

​ 使用者权限:所有用户,设置级别的需要管理员

mount [参数选项] 目录
注意:“挂载点”的目录需要以下几个要求:
	目录事先存在,可以用mkdir命令新建目录;
	挂载点目录不可被其他进程使用到;
	挂载点下原有文件将被隐藏。

mkdir 文件夹							创建文件夹(也是创建一个挂载点)
mount -t auto /dev/cdrom 文件夹		开始挂载
umount 文件夹							卸载

创建挂载点:
mkdir -p aaa
开始挂载:
mount -t auto /dev/cdrom aaa
查看挂载点内容:
ls -l -a ./aaa
卸载cdrom:
umount ./aaa

软件安装

yum使用:

​ yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。

​ yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

​ 注意:必须联网

​ 使用者权限:管理员

yum常用命令:

  • 1.列出所有可更新的软件清单命令:yum check-update
  • 2.更新所有软件命令:yum update
  • 3.仅安装指定的软件命令:yum install <package_name>
  • 4.仅更新指定的软件命令:yum update <package_name>
  • 5.列出所有可安裝的软件清单命令:yum list
  • 6.删除软件包命令:yum remove <package_name>
  • 7.查找软件包 命令:yum search
  • 8.清除缓存命令:
    • yum clean packages: 清除缓存目录下的软件包
    • yum clean headers: 清除缓存目录下的 headers
    • yum clean oldheaders: 清除缓存目录下旧的 headers
    • yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers
安装tree:
yum -y install tree			安装tree
tree						执行tree,展示当前目录结构
yum remove tree				移除tree

yum查找:
找出以 tom 为开头的软件:
yum list tom*

yum源:
yum -y install wget			安装下载工具wget
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.back
							备份/etc/yum.repos.d/CentOS-Base.repo文件
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
							下载阿里云的Centos-7.repo文件
cat CentOS-Base.repo		查看下载的阿里云的Centos-6.repo文件
yum clean all				清理之前的缓存,并重新加载yum
yum makecache				建立一个缓存文件
yum search tomcat			查找软件,验证阿里云的yum源是否可以正常使用
rpm使用:

​ rpm(redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。

​ rpm 只能安装已经下载到本地机器上的rpm 包。

​ yum能在线下载并安装rpm包,能更新系统,且还能自动处理包与包之间的依赖问题,这个是rpm 工具所不具备的。

补充命令:

比较两个文件:diff 文件名1 文件名2
比较其中两个文件,将其比较结果存放到第五个文件
diff file1 file2>file5

定时任务:
at 时间
at>命令
ctrl+D

at 时间 <<<“mkdir /home/www/my123”

at now+5 weeks<<EOF

rm -rf /home/www/mydoc
EOF

at -l 查看未执行任务
at -c 【编号】打印任务的内容
at -d 【编号】删除定时任务

crontab -e 编辑 保存退出:wq

关闭at服务:systemctl stop atd.service
启动at服务:systemctl start atd.service

root下查询周期任务日志:tail -f /var/log/cron


显示所有分区信息:fdisk -l
创建分区:fdisk /dev/[sdb/hdb] (b指第一个IDE硬盘分区)

格式化:mkfs -t [缺省为ext2/ext3/xfs] /dev/sdb1


手动挂载命令格式为:
mount [options] devicename mountpoint
卸载命令格式为:
umount [options] mountpoint devicename
自动挂载(系统启动时挂载,关闭时卸载):
使用vi /etc/fstab文件:
/dev/sdb1 /mnt/mysdb1 ext3 defaults 0 0
/dev/sdb2 /mnt/mysdb2 vfat defaults 0 0

显示系统文件类型:blkid /dev/[sdb1]

挂载点创建:mkdir /mnt/[mysdb1]
挂载:mount /dev/sdb1 /mnt/mysdb1
卸载:umount /mnt/mysdb1 /dev/sdb1

查看已经挂载的磁盘:df -T

查看内核是否支持磁盘配额:[root@localhost boot]# cat config-3.10.0-327.el7.x86_64 |grep CONFIG_QUOTA

查看是否安装磁盘配额工具:rpm -qa|grep quota
装载磁盘配额工具:yum install quota

启动磁盘配额:quotaon -avug
查看用户和组配额:repquota -avug

查询如何使用命令:man [命令]

查看文件的来源:yum provides 命令文件

显示yum仓库:显示所有仓库:yum repolist all
显示可用的仓库:yum repolist enabled
显示不可用的仓库:yum repolist disabled


网卡配置:vi /etc/sysconfig/network-scripts/ifcfg-ens-33
重启网卡:service network restart 或 systemctl restart network

systemctl status firewalld 查看当前防火墙状态

systemctl stop firewalld 关闭当前防火墙。

systemctl disable firewalld 开机防火墙不启动。

  • 6
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值