Linux命令提示符
[root@localhost ~]#
- root:代表当前登录的用户名
- localhost:代表当前登录的服务器主机名
- ~:代表当前目录,(用户主目录)
-
#
:超级用户提示符,普通用提示符是$
基本操作
Linux的系统相关操作:
- shutdown -h now:立即关机
- shutdown -r now:立即重启
- reboot:立即重启
- logout:注销
- clear:清屏
用户相关:
- whoami:我是谁
[root@localhost ~]# whoami
root
- su 用户名:切换到另一个用户
目录的常见操作
- Linux的目录结构为树形结构,最顶级目录为/
- 绝对路径:由根目录开始,例如:/home/user
- 相对路径:
1)路径的写法,不是由 / 写起,而是相对当前所在的目录开始。例如:由/usr/share/doc要到/usr/share/man底下时,可以写成:cd ../man这就是相对路径的写法。这里的../表示当前目录的上一级目录。
2)/:表示根目录
3)~:表示当前家目录
目录的相关命令
- ls:列出目录
- cd:切换目录
- pwd:显示当前的目录
- mkdir:创建一个新的目录
- rmdir:删除一个空的目录
- rm:移除文件或目录
- cp:复制文件或目录
- mv:移动文件或目录
ls查看目录
- 查看目录的命令有两个,一个ls,一个ll,ls以list(列表)方式浏览,ll以详情方式浏览。
- ls可以添加参数
1)-a:表示显示所有文件,包括隐藏该文件。例:ls -a
2)-l:表示以详情方式显示,和ll功能一样。例:ls -l,ls -al
3)-r:表示以反序显示,默认以文件名称升序排列。例:ls -s
4)-t:将按时间顺序显示。ls -t
5)-lh:将文件大小的单位进行换算 - ls可以查看指定的目录和支持模糊匹配
1)ls -l /bin:以详情方式查看/bin目录下的文件
2)ls -l /bin/a:以详情方式查看/bin目录下以a开头的文件
3)ll /bin/.txt:查看bin下以txt结尾的文件
目录操作命令
- pwd:显示当前目录
[root@localhost ~]# pwd
/root
- cd(Change Directory):更改目录
1)cd 相对路径/绝对路径
2)cd..:返回上一级
3)cd -:返回上一次所在的目录
4)cd /:返回根目录
5)cd ~:返回家目录
mkdir创建新目录
- 语法:mkdir [-mp] 目录名称
- 参数说明:
1)-p:可以一次直接创建多层级目录
2)-m:配置文件的权限 直接配置 - 举例:
[root@localhost tmp]# mkdir test1
[root@localhost tmp]# mkdir -p test2/1/2
[root@localhost tmp]# mkdir -m 750 tt
[root@localhost tmp]# mkdir -p -m 750 t1/t2
rmdir删除空目录
- 语法:rmdir [-p]目录名称
- 参数说明:-p:连同上一级目录[空目录]也一起删除
- 实例:
[root@localhost tmp]# rmdir test1/
[root@localhost tmp]# rmdir -p test2/r1/r2
- 如果目录不为空,则删除会失败,如果要删除非空目录,则使用rm命令进行删除。
[root@localhost tmp]# rmdir test/
rmdir: failed to remove `test/': Directory not empty
rm删除文件或子目录
- 语法:rm [-fir] 文件或子目录
- 参数说明:
1)-f:就是force的意思,强制删除
2)-i:互动模式,在删除前会询问使用者是否动作
3)-r:递归删除,可以删除目录和文件 - 示例:
[root@localhost tmp]# rm -r aa
rm: remove regular empty file `aaa'? y
[root@localhost tmp]# rm -rf test
rm -rf / Linux自杀命令绝对不能执行
cp复制文件
- 语法
1)cp [-adfilpr] 来源 目标档 - 选项与参数:
1)-a:此选项通常在复制目录时使用,它保留连接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合
2)-d:复制时保留链接(相当于windows系统中的快捷方式)
3)-f:覆盖已经存在的目标文件而不给出提示
4)-i:与-f选项相反,在覆盖目标之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖
5)-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
6)-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件
7)-l:不复制文件,只是生成链接文件
移动或重命名
- 语法
1)mv 来源 目标档
链接命令
- 链接分为软链接(symbolic link)和硬链接(hard link),硬链接的意思是一个档案可以有多个名称,而软连接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置,类似window中的快捷方式
- 语法:ln [参数] [目标] [文件或目录]
- 参数说明: -s:软链接,添加-s为创建软链接,不要则为硬链接
[root@localhost tmp]# ln -s a.txt bb.txt
- 这里要注意:如果软链接的源文件和链接文件在同一个目录下,可以使用相对路径,但是如果不在同一个目录下,必须使用绝对路径
- 硬链接示例:
[root@localhost test2]# ln -s /test2/t4 /test1/t44
软链接和硬链接的区别
软链接
- 软链接以路径的形式存在,类似window操作系统中的快捷方式
- 软链接的文件类型会被表示为l
- 当删除软链接原始文件,软链接将无法使用
- 软链接可以对一个不存在文件名进行链接
- 软链接可以堆目录进行链接
- 软链接可以跨分区使用,硬链接不可以
硬链接
- 硬链接,以文件副本形式存在,不占用实际空间
- 硬链接文件类型为普通文件类型
- 删除任何一个硬链接文件不会影响另一个文件
- 不允许给目录创建硬链接
- 硬链接不能跨分区使用
推荐使用软链接,硬链接和原始文件区分大小,无法区分
文件相关操作
Linux系统中使用以下命令来查看文件的内容:
- cat 由第一行开始显示文件内容
- tac 从最后一行开始显示,可以看出tac时cat的倒着写
- nl 显示的时候,顺道输出行号
- more 一页一页的显示文件内容
- less 与 more 类似,但是比more更好,它可以往前翻页
- head 只看头几行
- tail 只看尾巴几行
cat 和 tac
- cat 由第一行开始显示文件内容,tac 从最后一行开始显示内容。语法完全一致
- 语法:cat [AbEnTv]
[root@localhost tmp]# cat a
asdfghjk;
- 选项与参数:
1)-A:相当于-vET的整合选项,可列出一些特殊字符而不是空白而已
2)-b:列出行号,仅针对非空白行号显示,空白行不标行号
3)-E:将结尾的断行字节$显示出来
4)-n:列印出行号,连同空白行也会有行号,与-b的选项不同
5)-T:将[tab]键以I 显示出来
6)-v:列出一些看不出来的特殊字符
more
- more一页页翻看
- 语法:more 文件名
- 在程序运行时,可以按以下几个键:
1)enter:下翻一行
2)space:下翻一夜
3)/字符串:指向搜索指定的字符串
4):f:立即显示出档名以及目前显示的行数
5)q:代表立刻离开more,不再显示该文件内容
6)b:或[ctrl] -b:代表往回翻页
less
- 翻页浏览
- 语法:less 文件名
- 在程序运行时,可以按以下几个键:
1)空白键:向下翻动一页
2)[pagedown]:向下翻动一页
3)[pageup]:向上翻动一页
4)/内容:向下搜索【内容】
5)?内容:向上搜索【内容】
6)n:重复前一个搜索(与/或?有关)
7)N:反向的重复前一个搜索(与/或?有关)
8)q:离开less这个程序 - 选项
1)-e:文件内容显示完毕后,自动退出
2)-f:强制显示文件
3)-g:不加亮显示搜索到的所有关键字,仅显示当前显示的关键字,以提高显示速度
4)-l:搜索时忽略大小写的差异
5)-N:每一行行首显示行号
6)-s:将连续多个空行压缩成一行显示
7)-S:在单行显示较长的内容,而不换行显示
head/tail
- head取出文件前面几行,tail取后面几行
- 语法:head [-n number] 文件
- 参数说明:-n:后面的number表示取的行数
- 示例:
[root@localhost tmp]# head /etc/sudo.conf
[root@localhost tmp]# head -n 20 /etc/sudo.conf
[root@localhost tmp]# tail /etc/sudo.conf
[root@localhost tmp]# tail -n 20 /etc/sudo.conf
文件基本属性
- 使用ll命令或者ls -l 浏览文件信息时,会显示文件详情 image.png
- 其中drwxrwxr-x 表示文件的类型和权限。第一个字母表示文件类型
[d] 代表目录
[-] 代表文件
[l] 表示为链接文档(link file)
[b]表示为装置文件里面的可供存储的接口设备(可随机存取装置)
[c]表示装置文件里面的串行端口设备,例如鼠标、键盘(一次性读取设备)
文件的权限
- 接下来的字符表示权限。且均为[rwx]这三个参数的组合。其中,[r] 代表可读(read)、[w] 代表科协(write)、[x] 代表可执行(execute)。注意,这三个权限的位置不会改变,如果没有权限,就会出现减号[-] image.png
image.png从左至右用0-9这些数字来表示
第0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有该文件的权限。第4-6位确定属组(所有者的同组用户)拥有该文件的权限。第7-9位确定其他用户拥有该文件的权限
第1、4、7位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限
第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-"字符表示,则没有写权限
第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权限
- 对于每一个文件来说,它都有一个特定的拥有着,也就是对该文件具有所有权。同时Linux中,用户是按照组来进行划分的。一个用户属于一个或多个组
- 最后一个
.
,在centos6以后添加进去的,代表ACL权限 - 后面的1、3、2,代表该文件的引用计数
- 后面两个root一个代表用户,另一个代表用户组
- 后面1857代表的是文件夹中的文件数量,或者文件大小 image.png
- 后面03:06是文件最后一次修改时间
- 最后一个是文件或目录名称,会以不同颜色修饰
对于root用户来说,这些权限不起作用,root用户的权限不受限制
更改文件权限
- 使用chmod命令可以对这9个权限进行修改。修改方式有两种,一种是数字方式,一种是字母方式
- 文件的权限字符为:[-rwxrwxrwx],这九个权限是三个三个一组的。其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4,w:2,x:1
- 每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:[-rwxrwx---]分数则是:
owner = rwx = 4 + 2 + 1 = 7
group = rwx = 4 + 2 + 1 = 7
others = --- = 0 + 0 + 0 = 0
- 所以等我们设定权限的变更时,该文件的权限数字就是770
chmod 修改权限
- 语法:
chmod [-R] xyz 文件或目录
- 参数说明:
-R:进行递归变更,修改该目录下所有的子目录和文件。xyz:对应前面提到的数字权限,比如770。
- 示例:
chmod 751 mydir # 将mydir文件的权限改为drwxr-x--x
更改文件所属组
chgrp:更改文件所属组
- 语法:
chgrp [-R] 用户组名称 文件名
- 参数:
-R表示递归更改某个目录文件的属性,如果加上这个参数,表示该文件夹下的所有文件都会同时被修改
- 示例:
chgrp root mydir #将mydir的用户组改为root
更改文件所有者
chown:更改文件所有者
- 语法:
chown [-R] 所有者 文件名
- 参数:
-R表示递归更改某个目录文件的属性,如果加上这个参数,表示该文件夹下的所有文件都会同时被修改
- 示例:
chown root mydir #将mydir的所有者改为root用户
vi/vim编辑器
- Linux中内建了一个vim文本编辑器,通过这个编辑器,可以在Linux中编辑文件
- vim分为三种模式:
命令模式:用户刚进入vim就是命令模式
输入模式:在命令模式输入 i 进入输入模式
底部命令模式:在命令模式下按:
进入底部命令模式
vi常用快捷键
- x 删除光标处的字符
- dd 删除整行
- dw 删除一个字(word)
- u 撤销最后一次修改
- 0 当前行下插入新行
- /pattern:从光标开始处向文件尾搜索pattern
- ?pattern:从光标开始处向文件首搜索pattern
- yy:将当前行的内容放到临时缓冲区
- p 将临时缓冲区中的文本放到光标后
命令模式
- 此状态下的敲击键盘动作会被vim识别为命令,而非输入字符。比如此时按下i,并不会输入一个字符,i被当作了一个命令。
- 几个常见的命令:
i 切换到输入模式,以输入字符
x 删除当前光标所在处的字符
: 切换到底部命令模式,在最后一行输入字符
输入模式
在此模式下,对文件内容进行编辑。再输入模式下可以使用以下按键:
- 字符按键以及Shift组合,输入字符
- Enter,回车键、换行
- Backspace,退格键,删除光标前一个字符
- Delete,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- Home/End,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
底部命令模式
- 在命令模式下按下:(英文冒号)就进入了底部命令模式
- 常用底部命令:
1):w:保存
2):q:退出,:wq保存并退出
3):q!:强制退出,不保存
4):e file:打开文件
文件搜索命令
我们经常需要在系统中检索需要的文件,在Windows中可以使用F3进行搜索。在Linux中提供了多种文件搜索方式
- locate
- find
- grep
locate
- 语法:locate 文件名
- locate是在后台数据库中,按文件名进行检索,速度非常快。但是最新的数据不一定能搜索出来
- locate的后台数据库:/var/lib/mlocate
- locate数据库默认一天一更新,也看使用命令手动更新数据库:updatedb,需要root权限 image.png
- 如果执行locate出现locate:can not stat()
/var/lib/mlocate/mlocate.db': No such file or directory
错误,执行updatedb
命令更新Linux检索索引
locate的配置文件
- /etc/updatedb.conf 文件是locate命令搜索的配置文件,在这个文件中,定义了locate搜索的规则
- PRUNE_BIND_mOUNTS="yes":表示以下配置是否有效
- PRUNEFS="":表示搜索时,不搜索的文件系统
- PRUNENAMES="":表示搜索时,不搜索的文件类型
- PRUNEPATHS="":表示搜索时,不搜索的文件路径
find
- 语法:
find [搜索范围] [搜索条件] 文件名
- find模式会按照完整文件名进行搜索,如果要进行模糊搜索,可以使用通配符,LInux中的通配符常用的有三种
*:匹配任意多个字符
?:匹配任意一个字符
[]:匹配任意一个中括号中的字符
find /home -name a.txt # 在/厚么目录下按照名称搜索a.txt
find /home -iname a.txt # -iname指不区分文件名大小写
find /etc -name *.conf # 在/etc目录下搜索以.conf结尾的文件
find -user qiu # 查找属于qiu的文件
find -type d/f # 根据文件类型查找,f普通文件,d目录
find -mtime -1/+1 # 查找1天以前或之后跟新的文件
find -ctime -1/+1 # 查找1分钟以前或之后创建的文件
- find相对于locate会更慢,因为find扫描硬盘进行文件搜索,但是find功能更加强大,locate只能根据文件名进行搜索,find可以添加其他的参数,也可以支持通配符搜索,但是注意,使用find避免在大范围进行搜索,效率太低
locate和find的区别
- 效率:find相对于locate会更慢,因为find扫描硬盘进行文件搜索
- 功能:但是find功能更加强大,可以添加其他的参数,也可以支持通配符搜索,locate只能根据文件名进行搜索
- 即时性:find搜索的数据是即时的,locate不是
- 模糊匹配:find默认时精确搜索,locate时模糊搜索
用户和用户组
- Linux时一个多用户多任务的系统,管理员可以添加多个用户来帮助管理Linux系统
- 用户管理主要包括以下内容:
1)用户的添加、修改和删除
2)用户口令的管理
3)用户组的管理
添加用户
- 语法:
useradd 选项 用户名
- 参数说明
-c:comment 指定一段注释性描述
-d:目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
-g:永驻 指定用户所属的用户组
-s:Shell文件 指定 用户的登录Shell
-u:用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
- 示例:
useradd -u user1 # 添加新用户user1
useradd -d /home/user1 -u user2 # 添加新用户,并指定用户家目录
设置用户密码
- 语法:
password 选项 用户名
- 选项说明
-l:锁定口令,即禁用账号
-u:口令解锁
-d:使账号无口令
-f:强迫用户下次登陆时修改口令
- 如果时第一次修改密码,直接输入密码即可,如果时修改密码,则需要输入旧密码
password user1 # 修改用户 user1的密码
修改和删除用户
修改用户
- 语法:
usermod 选项 用户名
- 选项说明和useradd一致
- 实例:
usermod -l newtest test # 修改test的用户名为newtest
usermod -G staff newuser2 # 将newuser2添加到组staff中
删除用户
- 语法:
userdel 选项 用户名
- 选项说明
-r:将用户所在的目录一起删除
- 示例:
userdel -r user1 # 删除用户user1
添加用户组
- 添加用户时,如果不指定用户组,会创建和用户名相同的一个用户组
- 语法:
groupadd 选项 组名
- 选项说明:
-g:GID指定信用住的组标识号(GID)
-o:一般与-g选项同时使用,表示信用住的GID可以与系统已有用户组的GID相同
- 示例:
groupadd usergroup1 # 添加用户组 usergroup1
groupadd -g 101 usergroup1 # 添加用户组usergroup1,并制定gid
删除用户组
- 语法:
groupdel 用户组
- 示例:
groupdel usergroup1 # 删除用户组 usergroup1
- 将用户加入到组中示例
group add -g 1010 test # 添加一个用户组,组id为1010,组名称为test
useradd -u 1001 -g test -d /home/aaa aaa # 添加一个用户aaa到test组,用户id为1001,组名称为test,所在目录为/home/aaa目录
id aaa # 查看aaa用户的id信息
与用户相关的文件
- /etc/passwd:存放用户和用户组的关系,用户对应的目录,指令集等。
以用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
格式存储 - /etc/shadow:/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。它的存储格式:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
- /etc/group:用户组的所有信息都存放在/etc/group文件中,存储格式:
组名:口令:组标识号:组内用户列表
网友评论