赞
踩
常用命令
什么是命令?
指在Linux终端(命令行)中输入的内容就称之为命令.
命令的格式:
一个完整的命令的标准格式:Linux通用的格式
#指令主体(空格) [选项](空格) [操作对象]
一个指令可以包含多个选项
操作对象也可以是多个
功能描述:显示文件目录
语法: ls 选项 【-ald】
-a 显示所有文件,包括隐藏文件 (all)
-l 详细信息显示
-d 查看目录属性 (一般和l连用 可以查看详细信息)
-h 以可读性较高的形式显示 一般和l连用 ls -lh
功能描述:切换目录
范例: cd / 切换到根目录
cd .. 回到上一级目录
路径可以是相对路径也可以是绝对路径 ~代表的是当前用户的家目录
功能描述:显示当前所在的工作目录
范例: pwd
功能描述:创建空文件
范例: touch newfile
newfile可以是一个文件名也可以是一个包含文件路径的文件名
使用touch来同时创建多个文件 touch 文件1 文件2
注意:不能创建多层文件
功能描述:创建新目录
范例: mkdir newdir
创建多层文件夹的时候使用的是 mkdir -p 文件夹/文件夹1
当一次性创建多层不存在的目录的时候,添加-p参数,否则会报错
一次性创建多个目录 mkdir 目录1 目录2 目录3 ….
注意:文件颜色的含义
功能描述:复制文件或目录
语法: cp -R [源文件或目录][目的目录]
-R 复制目录
cp [被复制的文档路径] [文档被复制到的路径]
当使用cp命令进行文件夹复制操作的时候需要添加选项“-r”【-r表示递归复制】,
否则目录将被忽略
复制的时候文件可以重新命名 但是如果非必须 不建议
功能描述:移动文件 更名
- 语法: mv [源文件或目录][目的目录]
-
-
-
- 范例: mv file1 file
- 将当前目录下文件file1更名为file
-
-
- $ mv file2 dir2
- 将文件file2 移动到目录dir2下
-
-
- mv 重新命名
- mv 【原文件名】【新文件名】
- -------
f force 强制
功能描述:删除文件
- 语法: rm -r [文件或目录]
- -r 删除目录
- 范例:$ rm file3
- 删除文件file3
- $ rm -r dir1
- 删除目录dir1
功能描述:显示文件内容
语法: cat [文件名] 范例:$ cat /etc/issue $ cat /etc/services cat还可以对文件进行合并 语法2:#cat 待合并的文件路径1 待合并的文件路径2 …. 文件路径n > 合并之后的文件路径 cat testyyl.txt test2.txt > ./test3.txt
功能描述:分页显示文件内容
- 语法: more[文件名]
- (空格)或f 显示下一页
- (Enter)显示下一行
- Q或q退出
- 范例:$ more /etc/issue
功能描述: 查看文件的前几行
- 语法: head -num [文件名]
- -num 显示文件的前num行
- 范例:$ head -20 /etc/issue
功能描述:查看文件的后几行
- 语法: tail -num [文件名]
- -num 显示文件的后num行
- -f 动态显示文件内容
- 范例:$ tail -30 /etc/issue
功能描述:统计文本的行数、字数、字符数
- 语法: wc -mwl [文件名]
- -m 统计文本字符数
- -w 统计空格字数
- -l 统计文本行数
功能描述:产生链接文件
- 语法: ln -s [源文件][目标文件]
-
- -s 创建软链接 (soft)
-
- 范例:$ ln -s /etc/issue /issue.soft
-
- 创建文件/etc/issue的软连接/issue.soft
-
-
- 硬连接 (hard)
-
- $ ln /etc/issue /issue.hard
-
- 创建文件/etc/issue的硬连接/issue.hard
功能描述:查找文件或目录
语法:find [搜索路径] [选择项] [搜寻关键字] 范例:$ find /etc -name init 在目录/etc中查找文件init $ find / -size +104800 在根目录下查找大于100MB的文件 $ find / -user root 在根目录下查找所有者为root的文件 $ find /etc -ctime -1 在/etc查找24小时内被修改过属性的文件和目录 $find /etc -size +163840 -a -size -204800 在/etc查找大于80MB小于100MB的文件 $find /etc -name init -exec ls -l {} \; 在/etc下查找init文件并显示其详细信息 -type:按照文档的类型进行搜索 文档类型:“-”表示文件(在使用find的时候需要用f来替换),“d”表示文件夹 find /etc/sane.d/ -type f 搜索/etc/sane.d/目录下所有的文件
功能描述:在文件中搜寻字符串匹配的行并输出
- 语法:grep [指定字串] [源文件]
-
- 范例:grep ftp /etc/service
-
- grep -i aaa不区分大小写aaa
-
- grep -v aaa排除关键字aaa
-
- grep -w aaa 完全匹配aaa关键字
功能描述:压缩文件
语法:gzip 选项 [文件]
压缩后文件格式: .gz
功能描述:解压缩 .gz 的压缩文件
语法:gunzip 选项 [压缩文件]
范例: $ gunzip file1.gz
功能描述:打包目录
语法:tar 选项[zcvf] [压缩文件的名字] [目录] tar -zcvf nginx.tar.gz ./ -c 产生.tar打包文件 -v 显示详细信息 -z 打包同时压缩 -f 指定压缩后的文件名 解压缩语法 tar -zxvf [指定的压缩文件] -C [目的目录] -x 解压.tar文件 -v 显示详细信息 -f 指定解压文件 -z 解压缩 压缩后文件格式: .tar.gz 指定文件夹 -C tar -zxvf 压文件的名字 -C 指定的目录
功能描述:压缩文件或目录
- 语法:zip 选项[-r][压缩后文件名称][文件或目录]
-
- -r 压缩目录
-
- 压缩后文件格式: .zip
功能描述:解压.zip的压缩文件
语法:unzip [压缩文件]
范例:$ unzip test.zip
功能描述:压缩文件
语法:bzip2 选项-k
-k 产生压缩文件后保留原文件
压缩后文件格式: .bz2
功能描述:解压缩文件
语法:bunzip2 选项-k
-k 解压缩文件后保留原文件
功能描述:改变文件或目录权限
语法:chmod [{ugo}{+-=}{rwx}] [文件或目录] [mode=421][文件或目录] r 4 读 read w 2 写 write x 1 执行 execute 范例:$ chmod g+w file1 赋予文件file1所属组写权限 $chmod 777 dir1 第一位表示文件类型。如果是—表示文件,d表示是文件夹。。。 第2-4表示当前用户对该文件具有的权限r是read读,w是write写,x表示可以执行 root root 第5-7表示当前用户所在组对该文件/文件夹的权限 第8-10表示出了这个组以外的人对该文件的权限 775
功能描述:获得帮助信息
语法:man [命令或配置文件]
范例:$ man ls
功能描述:获得帮助信息
语法:man [任何关键字]
范例:$ info ls
功能描述:获得索引的简短说明信息
语法:whatis apropos[任何关键字]
范例:$ whatis ls
$ apropos fstab 相当于 man -k
### makewhatis
建立whatis和apropos搜索使用的数据库,当使用这两个命令发生错误时,就是数据库没有建立
- rpm (Redhat Package Manager)
- -a:查询所有套件;
- -b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
- -c:只列出组态配置文件,本参数需配合"-l"参数使用;
- -d:只列出文本文件,本参数需配合"-l"参数使用;
- -e<套件档>或--erase<套件档>:删除指定的套件;
- -f<文件>+:查询拥有指定文件的套件;
- -h或--hash:套件安装时列出标记;
- -i:显示套件的相关信息;
- -i<套件档>或--install<套件档>:安装指定的套件档;
- -l:显示套件的文件列表;
- -p<套件档>+:查询指定的RPM套件档;
- -q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
- -R:显示套件的关联性信息;
- -s:显示文件状态,本参数需配合"-l"参数使用;
- -U<套件档>或--upgrade<套件档>:升级指定的套件档;
- -v:显示指令执行过程;
- -vv:详细显示指令执行过程,便于排错。
- 安装
- rpm -ivh xxx.rpm # 直接安装
- rpmrpm --force -ivh xxx.rpm # 忽略报错,强制安装
- 卸载
-
- [root@localhost ~]# rpm -ql tree # 查询
- [root@localhost ~]# rpm -e tree # 卸载
- [root@localhost ~]# rpm -ql tree # 查询
- 列出所有安装过的包
-
- [root@localhost ~]# rpm -qa
- 如何获得某个软件包的文件全名
-
- [root@localhost ~]# rpm -q tree
- rpm包中的文件安装的位置
-
- [root@localhost ~]# rpm -ql tree
- 哪个软件包包含这个程序
-
- [root@localhost ~]#rpm -qf `程序名` #返回软件包的全名
- [root@localhost ~]#rpm -qif `程序名` #返回软件包的有关信息
- [root@localhost ~]#rpm -qlf `程序名` #返回软件包的文件列表
- [root@localhost ~]# rpm -qf `shd`
一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。
>:覆盖输出,会覆盖掉原先的文件内容
>>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
语法:#正常执行的指令 > / >> 文件的路径
注意:文件可以不存在,不存在则新建
案例:使用覆盖重定向,保存ls -la 的执行结果,保存到当前目录下的ls.txt
指令:ps
作用:主要是查看服务器的进程信息
选项含义:
-e:等价于“-A”,表示列出全部的进程
-f:显示全部的列(显示全字段)
yum -y install vim
vim是Unix / Linux上最常用的文本编辑器而且功能非常强大。
vim的这些优势主要体现在以下几个方面:
1.vim拥有所有vi命令功能;
2.vi只能在Unix / Linux,vim可以在Unix / Linux,windows系统上使用
3.vim编辑器,自动根据文件你内容显示不同的颜色
进入方式 vim filename
进入编辑模式 i
从编辑模式退出 按esc 再输入:wq 单击回车键
基本上vim可以分为三种状态,分别是命令模式 (command mode)、插入模式 (Insert mode) 和底行模 式 (last line mode).
命令行模式:在该模式下是不能对文件直接编辑,可以输入快捷键进行一些操作(控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last )
插入模式:也称为编辑文本模式 只有在Insert mode下,才可以做文字输入,按 「ESC」键可回到命令行模式。
底行模式: 将文件保存或退出vi,也可以设置编辑环境,如搜索、替换、保存、退出、撤销、高亮等等
不过一般我们在 使用时把vi简化成两个模式,就是将底行模式 (last line mode)也算入命令行模式command mode)。
i 在光标前插入
I 在光标当前行开始插入
a 在光标后插入
A 在光标当前行末尾插入
o 在光标当前行的下一行插入新行
O 在光标当前行的上一行插入新行
:set nu 显示行号
:set nonu 取消行号
gg 到文本的第一行
G 到文本的最后一行
:n 到文本的第n行
$ 当前行的最后一个字符
u 取消上一步操作 Ctrl+r 返回到undo之前
r 替换光标所在处字符
R 从光标所在处开始替换,按esc结束
x 删除光标所在字符
nx 删除光标所在处后n个字符
dd 删除光标所在行,ndd删除n行
dG 删除光标所在行到末尾行的所有内容
D 删除光标所在处到行尾的内容
:5,7d 删除指定范围的行,从第5行到第7行
Shift+ zz 保存退出,与“:wq”作用相同
v 进入字符可视模式
V 或 Shift + v 进入行可视模式
Ctrl + v 进入块可视模式
Linux中vi编辑器的使用详解,下面的引号和括号不算啊
光标的移动除了键盘上的上下左右键.也可以是小写模式下,按键盘上的"h,j,k,l",
"ctrl+b":屏幕往后移动一页
"ctrl+f":屏幕往前移动一页
"ctrl+u":屏幕往后移动半页
"ctrl+d":屏幕往前移动半页
输入任何一个整数,然后输入"shift+G" 就可以到这一页的开头了.
按键盘上的大写"G"移动到文章的最后.
按"$"符号将光标移动到行尾
"^"将光标移到行头
"w":将光标移到下一行头
b":跟"w"相反.移到上一行行头
"e":将光标移到下一行尾.
如果想让文本显示行号.就在【命令行】 模式下,在文本最后输入":set nu"命令.就可以了
「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「yy」:复制光标所在行到缓冲区。
「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。
将缓冲区内的字符贴到光标所在位置。
注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴 功能。
用"/"加上要查找的内容.例如"/hello"或者是"?hello"也是可以的.
替换
「r」:替换光标所在处的字符。 ,按一下"r"然后输入要即可.
「R」:替换光标所到之处的字符,直到按下「ESC」键为止。
「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。
按多次"u"可以执行多次恢复.就相当于"CTRL +Z"的操作.
替换
在命令模式下使用“s/原字符/新字符/g” 代表当前行所有
如果想全局替换,s变为%s
:%s#abc#123#g (如文件内有#,可用/替换,:%s/abc/123/g)
--注:把abc替换成123
(或者: %s/str1/str2/g 用str2替换文件中所有的str1)
:20,30s#abc#123(如文件内有#,可用/替换,:%s/abc/123/g)
--注:把20行到30行内abc替换成123
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个惟一的用户名和各自的密码。
用户在登录时键入正确的用户名和密码后,就能够进入系统和自己的主目录。
要想实现用户账号的管理,要完成的工作主要有如下几个方面:
用户账号的添加、删除、修改以及用户密码的管理。
用户组的管理。
注意三个文件:
/etc/passwd 存储用户的关键信息
/etc/group 存储用户组的关键信息
/etc/shadow 存储用户的密码信息
显示当前登录的用户: whoami
使用cat命令来查看一下保存用户信息的文件 ,保存用户信息的文件保存在 /etc/passwd文件里面
cat /etc/passwd
yyl:x:1000:1000:yyl:/home/yyl:/bin/bash
root 用户名 : x 密码:0 :0 :root :/root :/bin/bash
域分割符这个文件有7个域分别是:
用户名:密码:用户ID:用户组ID:注释:家目录:解释器shell
用户名:创建新用户名称,后期登录的时候需要输入;
密码位:此密码位置一般情况都是“x”,表示密码的占位;
用户标示号:用户的识别符
默认组标示号:该用户所属的主组ID;
注释:用于描述用户的信息
家目录:用户登陆系统的默认目录,默认是在/home/下、
解释器:等待用户进入系统之后,用户输入指令之后,该解释器会收集用户输入的指令,传递给内核处理;
根用户都是从0开始的(第三个域)
除了第一行root外,下面的都是操作系统的伪用户(除普通用户外)
超级用户:(root,UID=0)
普通用户:(UID在500到60000)
伪用户:(UID在1到499)
伪用户不能登录系统,而且没有宿主目录
为什么需要伪用户:没有用户登录时,linux系统依然要运行,有很多进程在跑着,所以必须需要一些伪用户来执行那些命令
保存密码的文件:/etc/shadow
root:$6$SZEY4if7AdQloPZp$qCYvpjK9DQedV.vA/Da7oWciD7BvMJ.gMc7VJ7bDBrIrsawuGAOKZS1CqWQA0Gm3.G45J6iNiALw2Ypu5k422.::0:99999:7:::
用户名:密码:更改密码的日期:密码不可被更改的天数(0随时可以更改):密码需要更新的时间:
提前几天进行提醒
:号的含义
保留:最后一个栏位是保留的,看以后有没有新功能加入。
保存用户组的文件:/etc/group
保存用户组密码的文件:/etc/gshadow
用户配置文件:/etc/default/useradd
useradd [选项] 用户名
常用选项:
-g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
-G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名
-u:uid,用户的id(用户的标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义
-c comment:添加注释
案例:创建用户 yyl 不带任何选项
验证是否成功:
a. 验证/etc/passwd的最后一行,查看是否有yyl的信息;
b. 验证是否存在家目录(在Centos下创建好用户之后随之产生一个同名家目录);
注意:在不添加选项的时候,执行useradd之后会执行一系列的操作
a. 创建同名的家目录;
b. 创建同名的用户组;
创建一个用户 yzh 主组是root 附加组是yyl id是2000 注释是 yzh班级
案例:添加选项,创建用户lisi,让lisi属于501主组,附加组500,自选号666,注释是 lisi。
useradd -g 501 -G 500 -u 666 lisi
注意:查看用户的主组可以查看passwd文件,查看附加组可以查看group文件。
usermod [选项] 用户名
Usermod:user modify,用户修改
常用选项:
-g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
-G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名
-u:uid,用户的id(用户的标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义号
-l:修改用户名
案例:修改yyl用户主组为500,附加组改为501
usermod -g 500 -G 501 yyl
案例:修改yyl用户用户名,改为yuyongli
usermod -l 新的用户名 旧的用户名
#usermod -l yuyongli yyl
注意:已经登录的用户不能修改
groups 用户名 --- 用户所在的组
Linux不允许没有密码的用户登录到系统,因此前面创建的用户目前都处于锁定状态,需要设置密码之后才能登录计算机。
passwd 用户名
案例:设置yuyongli用户的密码
设置密码之后在shadow文件中能够看出用户是否有密码。
在设置用户密码之后可以登录帐号,例如此处需要登录yuyongli
切换用户命令:su [用户名] (switch user)
从root往普通用户切换不需要密码,但是反之则需要root密码;
常用语法:userdel [选项] 用户名
常用选项:
-r:表示删除用户的同时,删除其家目录;
案例:删除yuyongli用户
注意:已经登录的yuyongli用户删除的时候提示删除失败,但是没有登录的lisi用户可以正常删除
如果想要删除yuyongli这个用户可以强制删除
a. ps -ef|grep yuyongli
b. kill -9 xxx
提示:所有跟用户操作的命令(除passwd外)只有root超级管理员有权限执行。
ls /home
usermod -L 用户名
usermod -L yyl
usermod -U 用户名
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
文件结构:
用户组名:密码:用户组ID:组内用户名
密码:X表示占位符,虽然用户组可以设置密码,但是绝大部分的情况下不设置密码;
组内用户名:表示附加组是该组的用户名称
常用语法:#groupadd [选项] 用户组名
常用选项:
-g:类似用户添加里的“-u”,-g表示选择自己设置一个自定义的用户组ID数字,如果自己不指定,则默认从1000之后递增;
案例:使用groupadd指令创建一个新的用户组,命名为xxx
groupadd xxx
groupmod [选项] 新组名 老组名
常用选项:
-g:类似用户修改里的“-u”,-g表示选择自己设置一个自定义的用户组ID数字
-n:类似于用户修改“-l”,表示设置新的用户组的名称
案例:修改Administrators用户组,将组ID从502改成520,将名称改为admins
groupmod -g 520 -n admins Administrators
groupdel 组名
注意:当如果需要删除一个组,但是这个组是某个用户的主组时,则不允许删除;如果确实需要删除,则先从组内移出所有用户。
usermod -g 用户组 用户名
注:-g|–gid,修改用户的gid,该组一定存在
多组:
usermod -G 组名,组名 用户名
usermod -G test,root yyl
-- change group premission
chgrp 组名 文件名
chgrp g1 /home/test
chmod 770 /home/test
750
用数字来表示权限(r=4,w=2,x=1,-=0)
查看当前时间
[root@localhost ~]# date
格式化当前的时间
[root@localhost ~]# date "+%Y-%m-%d %H:%M:%S"
2021-02-21 21:57:00
date "+%F %T"
获取之前或者之后的某个时间(备份)
#date -d "-1 day" "+%Y-%m-%d %H:%M:%S"
符号的可选值:+(之后) 或者 - (之前)
单位的可选值:day(天)、month(月份)、year(年)
%F:表示完整的年月日
%T:表示完整的时分秒
%Y:表示四位年份
%m:表示两位月份(带前导0)
%d:表示日期(带前导0)
%H:表示小时(带前导0)
%M:表示分钟(带前导0)
%S:表示秒数(带前导0)
查看硬件时间
[root@localhost ~]# hwclock
Sun 21 Feb 2021 09:59:01 PM PST -0.992879 seconds
设置当前的时间
[root@localhost ~]# date -s "2021-2-22 14:00"
Mon Feb 22 14:00:00 PST 2021
将系统时间同步到硬件时钟
[root@localhost ~]# hwclock --systohc
[root@localhost ~]# date && hwclock
时间不一致的问题:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ls ll (ls -l) cd pwd cp mv rm touch mkdir find grep tar ps -ef head tail
clear kill -9
i 插入模式 命令模式 底行模式
:set nu
:wq
: %s/yu/new/g
G
$
/etc/passwd
useradd
usermod
userdel
/etc/group
groupadd
groupmod
groupdel
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。