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 [参数选项]
参数
-d<字符串> 显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串> 根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u 显示GMT;
--help 在线帮助;
--version 显示版本信息
用于控制系统时间和日期。可以用来查询和更改系统时钟于设定,同时可以设定和修改时区信息。
在实际开发过程中,系统时间的显示会和实际出现不同步;我们一般为了校正服务器时间、时区的时候会使用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 [选项] [用户名称]
选项:
-g或--group 显示用户所属群组的ID。
-G或--groups 显示用户所属附加群组的ID。
-n或--name 显示用户,所属群组或附加群组的名称。
-r或--real 显示实际ID。
-u或--user 显示用户ID。
--help 显示帮助。
--version 显示版本信息。
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 更改为其他人)执行的指令
用于实时显示 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
用于显示当前进程 (process) 的状态信息。
使用者权限:所有用户
显示当前正在运行的进程信息:ps
显示进程信息:ps -A
显示指定用户信息:ps -u 用户名
显示所有进程信息:ps -ef 或者 ps aux
用于删除执行中的程序或工作(可强制中断)。
使用者权限:所有用户
查看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 : 在重开机之前先把所有网络相关的装置先停止
用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 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
用于退出目前的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 [选项] 目录名称
选项:
-a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
-d :仅列出目录本身,而不是列出目录内的文件数据(常用)
-l :长数据串列出,包含文件的属性与权限等等数据;(常用)
将根目录下的所有文件列出来(含属性与隐藏档):
ls -al ~
查看文件夹下文件的详细信息:
ls -l
从左到右 依次是:
权限(A区域), 第一个字符如果是 d 表示目录
硬链接数(B区域), 通俗的讲就是有多少种方式, 可以访问当前目录和文件
属主(C区域), 文件是所有者、或是叫做属主
属组(D区域), 文件属于哪个组
大小(E区域):文件大小
时间(F区域):最后一次访问时间
名称(G区域):文件的名称
总结:
ls 显示不隐藏的文件与文件夹
ls -l 显示不隐藏的文件与文件夹的详细信息
ls -al 显示所有文件与文件夹的详细信息
pwd 是 Print Working Directory 的缩写,也就是显示目前所在当前目录的命令。
使用者权限:所有使用者都可使用
查看当前所在目录:pwd -P
cd [相对路径或绝对路径]
绝对路径:
路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录
相对路径:
路径的写法,不是由 / 写起,例如:由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法
注意:
cd ~ 表示回到根(root)目录
'绝对路径':在输入路径时, 最前面是以 '/' 开始的, 表示从 '根目录' 开始的具体目录位置
'相对路径':在输入路径时, 最前面不是以 '/' 开始的 , 表示相对 '当前目录' 所在的目录位置
用于建立名称为 dirName 的子目录。
使用权限:于目前目录有适当权限的所有使用者
mkdir [选项] dirName
选项:
-p 确保目录名称存在,不存在的就建一个
在工作目录下的 aaa目录中,建立一个名为 bbb的子目录,若aaa目录原本不存在,则建立一个:
mkdir -p aaa/bbb
rmdir命令删除空的目录。
使用权限:于目前目录有适当权限的所有使用者
rmdir [选项] dirName
选项:
-p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
在工作目录下的aaa目录中,删除名为 bbb的子目录,若 bbb删除后,aaa目录成为空目录,则aaa同时也会被删除:
rmdir -p aaa/bbb
rm命令用于删除一个文件或者目录。
使用权限:于目前目录有适当权限的所有使用者
rm [options] name...
options:
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
注意:文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。
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 命令用来为文件或目录改名、或将文件或目录移入其它位置。(Ctrl+X)
mv [options] source... directory
options:
-i: 若指定目录已有同名文件,则先询问是否覆盖旧文件
-f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示
-n: 不覆盖已存在文件
注意:如果指定了-i、-f、-n 中的多个,仅最后一个生效。
chgrp命令用于变更文件或目录的所属群组。
文件或目录权限的拥有者由所属群组来管理。可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。
chgrp [选项] 用户组名 文件名
示例:
chgrp staff /u 将 /u 的属组更改为"staff"。
chgrp -hR staff /u 将 /u 及其子目录下所有文件的属组更改为"staff"。
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"。
Linux的文件调用权限分为三级 : 文件属主、属组、其他。利用 chmod 可以控制文件如何被他人所调用。
Linux文件属性有两种设置方法,一种是数字,一种是符号。
使用权限 : 所有使用者
数字权限:
权限 | 英文 | 缩写 | 数字序号 |
---|---|---|---|
读 | read | r | 4 |
写 | write | w | 2 |
执行 | execute | x | 1 |
无权限 | - | 0 |
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx—] 分数则是:
格式: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命令用于创建文件、修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
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是 visual interface
的简称, 是linux中最经典的文本编辑器。
vi的特点
vim:是从 vi (系统内置命令)发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。
vim 则可以说是程序开发者的一项很好用的工具。
命令 | 英文 | 功能 | 常用 |
---|---|---|---|
i | insert | 在当前字符前插入文本 | 常用 |
I | insert | 在行首插入文本 | 较常用 |
a | append | 在当前字符后添加文本 | |
A | append | 在行末添加文本 | 较常用 |
o | 在当前行后面插入一空行 | 常用 | |
O | 在当前行前面插入一空行 | 常用 |
退出模式:
:q 当vim进入文件没有对文件内容做任何操作可以按"q"退出
:q! 当vim进入文件对文件内容有操作但不想保存退出
:wq 正常保存退出
:wq! 强行保存退出,只针对于root用户或文件所有人
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | cat 文件名 | concatenate | 查看小文件内容 |
02 | less -N 文件名 | less | 分频 显示大文件内容 |
03 | head -n 文件名 | 查看文件的前一部分 | |
04 | tail -n 文件名 | 查看文件的最后部分 | |
05 | grep 关键字 文件名 | grep | 根据关键词, 搜索文本文件内容 |
总结:
以上5个命令都可以查询文件的内容,他们的功能如下
通过 cat
会一次显示所有的内容, 适合 查看内容较少 的文本文件
less
命令适合查看 内容较多 的文本文件
通过 head
命令查看文档的前几行内容
通过 tail -10f 文件
命令 查看文档(日志)的后几行内容
通过 grep
命令 搜索存在 关键字 的行
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分页显示:
history | less
1.全屏导航
2.单行导航
3.其它导航
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 [选项] [范本样式] [文件或目录]
搜索存在关键字`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 文件名 +行数
打开文件定位到第6行:
vim txtfile.txt +6
如果 vim异常退出,在磁盘上可能会保存有交换文件。
将后缀名为.swp的文件删除即可恢复:
rm -rf .txtfile.txt.swp
要熟练使用vi/vim
,首先应该学会怎么在命令模式下
快速移动光标
编辑操作命令 能够和移动命令一起使用
上 下 左 右
命令 | 功能 | 手指 |
---|---|---|
h | 向左 | 食指 |
j | 向下 | 食指 |
k | 向上 | 中指 |
l | 向右 | 无名指 |
也可以使用键盘上的上下左右箭头,这个更有方向感。
行内移动
命令 | 英文 | 功能 |
---|---|---|
w | word | 向后移动一个单词 |
b | back | 向前移动一个单词 |
0 | 行首 | |
^ | 行首, 第一个不是空白字符的位置 | |
$ | 行尾 |
行数移动
命令 | 英文 | 功能 |
---|---|---|
gg | go | 文件顶部 |
G | go | 文件末尾 |
数字gg | go | 移动到 数字 对应行数 |
数字G | go | 移动到 数字 对应行数 |
: 数字 | 移动到数字对应的 行数 |
屏幕移动
命令 | 英文 | 功能 |
---|---|---|
Ctrl + b | back | 向上翻页 |
Ctrl + f | forward | 向下翻页 |
H | Head | 屏幕顶部 |
M | Middle | 屏幕中间 |
L | Low | 屏幕底部 |
上一页和下一页:Shift + PageUp 和 Shift + PageDown
选中文本(可视模式)
命令 | 模式 | 功能 |
---|---|---|
v | 可视模式 | 从光标位置开始按照正常模式选择文本 |
V | 可视化模式 | 选中光标经过的完整行 |
Ctrl + v | 可视块模式 | 垂直方向选中文本 |
撤销和恢复撤销(保命指令)
命令 | 英文 | 功能 |
---|---|---|
u | undo | 撤销上次的命令(ctrl + z) |
Ctrl + r | uredo | 恢复撤销的命令 |
删除文本
命令 | 英文 | 功能 |
---|---|---|
x | cut | 删除光标所在的字符,或者选中的文字 |
d(移动命令) | delete | 删除移动命令对应的内容 |
dd | delete | 删除光标所在行, 可以删除多行 |
D | delete | 删除至行尾 |
删除命令可以和移动命令连用, 以下是常见的组合命令(扩展):
命令 | 作用 |
---|---|
dw | 从光标位置删除到单词末尾 |
d} | 从光标位置删除到段落末尾 |
ndd | 从光标位置向下连续删除 n 行 |
复制和剪切
vi/vim 中提供有一个 被复制文本的缓冲区
命令 | 英文 | 功能 |
---|---|---|
yy | copy | 复制行 |
d(剪切命令) | delete | 剪切 |
dd(剪切) | delete | 剪切一行, 可以 ndd 剪切n行 |
p | paste | 粘贴 |
注意:vi中的文本缓冲区只有一个,如果后续做过 复制、剪切操作, 之前缓冲区中的内容会被替换。
vi中的 文本缓冲区 和 系统的 剪切板 不是同一个。所以在其他软件中使用 Ctrl + C
复制的内容, 不能再 vi
中通过 p
命令粘贴。
可以在 编辑模式 下使用 鼠标右键粘贴
替换
命令 | 英文 | 功能 | 工作模式 |
---|---|---|---|
r | replace | 替换当前字符 | 命令模式 |
R | replace | 替换当前行光标后的字符 | 替换模式 |
R
命令可以进入 替换模式, 替换完成后, 按下ESC
, 按下 ESC
可以回到 命令模式 使用者权限:所有用户
echo string
将字符串输出到控制台 , 通常和 重定向 联合使用echo hello world
# 如果字符串有空格, 为了避免歧义 请增加 双引号 或者 单引号
echo "hello world"
重定向 >
(覆盖) 和 >>
(追加)
命令 | 作用 |
---|---|
结果 > 文件名 | > 表示输出, 会覆盖文件的原有内容 |
将命令的成功结果`覆盖`指定文件内容:
echo 你好>a.txt
命令 | 作用 |
---|---|
命令 >> 文件名 | >> 表示追加, 会将内容追加到已有文件的末尾 |
将命令的成功结果`追加`指定文件的后面:
echo 世界 >> a.txt
命令 | 作用 |
---|---|
命令 &>> 文件 |
&>> 表示不区分错误类型 都放到 日志中 |
将命令的失败结果`追加`指定文件的后面:
cat 不存在的目录 &>> error.log
总结
命令 > 文件
将 命令的成功结果 覆盖 指定文件内容命令 >> 文件
将 命令的成功结果 追加 指定文件的后面命令 &>> 文件
将 命令的失败结果 追加 指定文件的后面 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 |
获取 当前行 内容 | |
NF |
field | 表示当前行共有多少个字段 |
$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命令类似与在Windows中全局查找。
find命令用来在指定目录下查找文件。
任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
find <指定目录> <指定条件> <指定内容>
将目前目录及其子目录下所有延伸档名是 gz 的文件查询出来:
(.表示当前文件夹下)
find . -name "*.gz"
将目前目录及其子目录下所有最近1天内更新过的文件查询出来:
find . -ctime -1
/代表是全盘搜索,也可以指定目录搜索:
find / -name 'aaa'
压缩/解压缩文件,不能压缩目录。
.zip格式的文件在Windows和Linux下都能使用。
压缩文件,能节省磁盘空间,传输时能节省网络带宽。
gzip [参数] [文件或者目录]
压缩文件:
gizp a.txt
压缩当前目录下所有文件:
gzip *
解压文件并列出详细信息:
gzip -dv *
gunzip命令用于解压文件。
gunzip [参数] [文件或者目录]
gunzip a.gz
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 [必要参数] [选择参数] [文件]
参数:
-q 不显示指令执行过程。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
压缩当前目录下所有文件和文件夹:
zip -q -r aaa.zip *
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是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命令用于检测主机。等价于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指令可让得知整个Linux系统的网络情况。
使用者权限:所有用户
netstat [参数选项]
参数选项:
-a 显示所有连线中的Socket
-i 显示网卡列表
netstat -a 显示详细的连接状况
netstat -i 显示网卡列表
使用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命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计。
使用者权限:所有用户
df [参数选项]
参数选项:
--total 显示所有的信息
-h, 换算成KB,MB,GB等形式进行展示(方便阅读)
df 显示整个硬盘使用情况
df 文件夹 显示文件夹使用情况
df -total 显示所有的信息
df -h 将结果变成KB,MB,GB形式展示,利于阅读
在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( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
注意:必须联网
使用者权限:管理员
yum常用命令:
安装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(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< rm -rf /home/www/mydoc at -l 查看未执行任务 crontab -e 编辑 保存退出:wq 关闭at服务:systemctl stop atd.service root下查询周期任务日志:tail -f /var/log/cron 显示所有分区信息:fdisk -l 格式化:mkfs -t [缺省为ext2/ext3/xfs] /dev/sdb1 手动挂载命令格式为: 显示系统文件类型:blkid /dev/[sdb1] 挂载点创建:mkdir /mnt/[mysdb1] 查看已经挂载的磁盘:df -T 查看内核是否支持磁盘配额:[root@localhost boot]# cat config-3.10.0-327.el7.x86_64 |grep CONFIG_QUOTA 查看是否安装磁盘配额工具:rpm -qa|grep quota 启动磁盘配额:quotaon -avug 查询如何使用命令:man [命令] 查看文件的来源:yum provides 命令文件 显示yum仓库:显示所有仓库:yum repolist all 网卡配置:vi /etc/sysconfig/network-scripts/ifcfg-ens-33 systemctl status firewalld 查看当前防火墙状态 systemctl stop firewalld 关闭当前防火墙。 systemctl disable firewalld 开机防火墙不启动。
EOF
at -c 【编号】打印任务的内容
at -d 【编号】删除定时任务
启动at服务:systemctl start atd.service
创建分区:fdisk /dev/[sdb/hdb] (b指第一个IDE硬盘分区)
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
挂载:mount /dev/sdb1 /mnt/mysdb1
卸载:umount /mnt/mysdb1 /dev/sdb1
装载磁盘配额工具:yum install quota
查看用户和组配额:repquota -avug
显示可用的仓库:yum repolist enabled
显示不可用的仓库:yum repolist disabled
重启网卡:service network restart 或 systemctl restart network