万字长文,一文读懂Linux的常规操作(墙裂建议收藏)
Posted 文宇肃然
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了万字长文,一文读懂Linux的常规操作(墙裂建议收藏)相关的知识,希望对你有一定的参考价值。
前言
以下是我为大家准备的几个精品专栏,喜欢的小伙伴可自行订阅,你的支持就是我不断更新的动力哟!
虚拟文本控制台(虚拟终端)
Centos操作系统有5个虚拟终端 (tty1-tty5)
通过快捷键ctrl+alt+f2-f6,可以进行多个控制台之间的切换
ctrl + alt + f1 切换到图形界面。使用tty查看自己登录哪个虚拟终端
基本认识
-
注销当前用户登录 : logout / exit
-
[root@localhost~]#:当前用户为root ,本机登录。
~代表为root用户主目录 #代表当前登录用户为管理员
用户名 哪个机子 哪个目录 用户身份 -
su AAA 切换到AAA用户
-
[AAA@localhost root]
$
:用户为AAA-本机登录-当前目录为root目录$
代表当前用户为普通用户
shell常用基本密令
-
执行流程=> (操作系统->shell命令->内核执行->机器执行)
命令解释器,将当前命令进行解释后交给内核去执行,
格式: 命令名 [选项] [参数1] [参数2] [参数3] … -
ls -a /etc
列出etc目录的命令名查看所有文件和文件夹 -
重启或关机: reroot / shutdown -h now
-
关机 : halt / shutdown -h now
-
帮助手册 : man 命令名 --> man uname
-
退出帮助手册 : 按esc 输入 :q
-
uname - 参数 查看系统信息
-
查看系统磁盘大小和剩余大小 : df
-
查看系统运行多久了: uptime
-
任务管理器: top 按 q 退出
-
查看历史登录信息: last
-
查看哪些用户登录系统 : w
-
查看日历或年历: cal
-
显示当前日期: date
-
清屏:ctrl + l
-
看主机和虚拟机是否连接 : ping 192.168.0.101 (自己电脑ip)
-
中断命令执行: ctrl + c
-
查看ip : ip add
-
切换盘符: cd /etc。。。 TAB键可以有提示
-
查看当前目录完整路径 : pwd
-
返回上一级目录: cd ..
-
查看该目录有哪些文件 : ls //列出当前目录下所有文件及目录
蓝色 代表目录/文件夹
黑色 代表普通文件 -
进入某个目录: cd 文件名
-
返回主目录 : cd
-
切换到前一个目录(切换用户之前的哪一个) : cd -
-
特殊目录:
1、. 代表当前工作目录
2、.. 代表上一级工作目录(父目录)
3、~ 代表用户主目录
4、- 代表前一个工作目录
辅助操作
1、 上下方向键: 找出曾经执行的命令
2、 清空至行尾: ctrl + k
3、 清空至行首: ctrl + u
4、 清屏 : ctrl + l
5、 终止命令执行: ctrl + c
ls命令 : 查看目录下信息
格式 : ls [选项] [目录名称]
选项 功能说明
1、 -a 列出目录下所有文件,包括以 . 开头的隐藏文件(all)
2、 -l 列出文件详情信息(long)
3、 -h 与-l一起,以易于阅读格式输出文件大小
4、 -help 显示帮助信息
5、 ls -l 简写 ll 直接列出文件详情信息
文件颜色及其含义
1、蓝色: 目录(文件夹)
2、绿色: 可执行文件
3、灰色: 普通文件
4、红色: 压缩文件
5、天蓝色: 链接文件(快捷方式)
mkdir 文件管理命令
格式: mkdir [选项] 目录名称
1、mkdir 文件名 : 直接在当前目录新建一个文件
2、mkdir /home/AAA/s1 : 在指定目录下新建一个文件
3、mkdir 文件1 文件2 文件3 创建多个文件
4、同时创建多级目录: mkdir -p xx/yy/uu
选项 | 功能 |
---|---|
-m | 在创建目录时设定权限模式 |
-p | 在创建目录结构中指定每一个目录,如果目录不存在则创建目录,如果目录已经存在也不会被覆盖 |
-v | 或-verbise : 每次创建新目录都显示信息 |
-help | 显示帮助信息 |
注意:
1、文件名和命令都要区分大小写
2、文件名不能包含特殊字符: /[]:等
touch命令创建/更新文件
例如:touch 1.txt
cp命令: 可用于目录或文件的复制
格式: cp [选项] 源文件 目标文件
选项 | 功能说明 |
---|---|
-a | 保留链接,文件属性,赋值目录时可递归复制目录 |
-f | 如果目标文件或目录已经存在,则将其覆盖,并不作提示(force) |
-i | 如果目标文件或目录已经存在,则对用户进行提示,可以用字母y/进行确认 |
-r | 复制目录,实现将源目录下的文件和子目录一起赋值到目标目录中 |
-
cp 1.txt uu/ 将1.txt复制到uu下 ,如果存在,按y进行覆盖
-
cp -r uu sss/ 复制一个文件夹需要加上-r
使用mv命令移动/重命名文件及目录(剪切并且可以重命名)
格式: mv [选项] 源文件 目标文件
mv命令: 用于移动或重命名目录或文件
mv 1.txt 2.txt 在当前目录下直接重命名
mv /mnt/xx/1.txt /mnt/2.txt 如果不加2.txt则名字不变,如果加上则改名为2.txt
rm命令删除文件
格式: rm [选项] 目标文件
rmdir命令删除目录(删除空目录,且必须在上级目录进行操作)
格式:rmdir [选项] 目录名
选项 | 功能 |
---|---|
-p | 删除指定的目录树 |
-v | -verbose删除目录过程中输出诊断信息 |
--help | 显示命令帮助信息 |
find命令查找文件
find命令:用于在相应路径下查找满足条件的文件
命令格式:find 查找目录的路径 查找条件选项 对查找条件的设定
选项 | 功能说明 |
---|---|
-name | 通过文件名查找文件 |
-user | 通过用户名查找文件 |
-type | 通过文件类型查找文件 |
-size | 通过文件大小查找文件 |
-atime | 通过文件的最后访问日期查找文件(单位;天) |
-mtime | 通过文件最后修改日期查找文件(单位:天) |
-newer | 查找比指定文件更新的文件 |
-amin | 查找在指定时间内曾经被存取过的文件(单位:分钟) |
-cmin | 查找在指定时间内被更改过的文件(单位:分钟) |
-perm | 查找符合指定权限数值的文件 |
例子: find / -name student 在/(根目录下)查找名字为student的文件
获取帮助
在字符界面下常使用man命令获取帮助
在命令行下使用info获取帮助
vim编辑器
-
vim 1.txt(文件名)打开文件,如果不存在则创建
-
a.I.o等键进入输出模式esc键返回命令模式
-
末行模式下: w(write) 保存 :q(quit) 退出
操作类型 | 操作键 | 功能 |
---|---|---|
光标移动 | 上下左右 | 上下左右 |
翻页 | Page Down 或 ctrl + f | 向下翻动一整页内容 |
Page up 或 ctrl + b | 向上翻动一整页内容 | |
行内快速跳转 | Home,^, 0 | 跳转至行首 |
End,$ | 跳转至行尾 | |
#→ | 向右移动#个字符 | |
#← | 向左移动#个字符 | |
行间快速跳转 | 1G或gg | 跳转到文件首行 |
G | 跳转到文件尾行 | |
#G | 跳转到文件#行 | |
行号显示 | :set nu | 在编辑器中显示行号 |
:set nonu | 取消编辑器显示行号 |
复制,粘贴,删除操作
操作类型 | 操作键 | 功能 |
---|---|---|
删除 | x或Del | 删除光标处的单个字符 |
dd | 删除光标所在行 | |
#dd | 删除从光标开始的#行内容 | |
d^ | 删除光标之前到首行的所有字符 | |
d$ | 删除当前光标至行尾的所有字符 | |
复制 | yy | 复制当前行整行所有内容 |
#yy | 复制从光标开始的#行内容 | |
粘贴 | p | 将缓冲区内容复制到光标之后 |
文件内容查找(先按:进入末行模式)
操作键 | 功能 |
---|---|
/word | 从上而下查找字符串word |
?word | 从下而上查找字符串word |
n | 定位下一个匹配的被查找字符串 |
N | 定位上一个匹配的被查找字符串 |
撤销编辑
操作键 | 功能 |
---|---|
u | 按一次取消最近一次操作,多次按,回复已进行的多步操作 |
U | 用于取消对当前所作的所有编辑 |
文件的保存及退出vi编辑器
功能 | 命令 | 备注 |
---|---|---|
保存文件 | :w | 保存文件 |
:w /root/xx/a.txt | 另存为其他文件 | |
退出vi | :q | 未修改退出 |
:q! | 放弃对文件内容的修改,并退出vi | |
保存文件退出vi | :wq |
文件内容替换
命令 | 功能 |
---|---|
:s /old/new | 将当前行中查找到的第一个字符串old替换为new |
:s /old/new/g | 将当前行中查找到的所有字符串old替换为new |
:#,# s/old/new/g | 在行号#,#范围内替换所有的字符,old替换为new |
:% s/old/new/g | 在整个文件范围内替换所有字符,old替换为new |
:s /old/new/c | 在替换命令末尾加入c命令,将对每个替换动作提示,用户进行确认 |
查看文件内容命令
-
more 文件名(浏览文件全部内容)按空格进行翻页,回车是一行一行显示 当到最后一行就退出
-
less 文件名(浏览文件全部内容)到最后一行也不会退出 :q退出
cat查看文件内容
格式: cat [选项] 文件名
选项 | 功能说明 |
---|---|
-n | 从1开始对所有输出的行数进行编号 |
-b | 从1开始对所有输出的非空白行的行数进行编号 |
-s | 当遇到连续两行以上的空白行时,用一个空白行来代替 |
head/tail 显示文件头部信息/尾部信息
head命令用来查看文件前若干行,tail命令用来查看文件后若干行
格式
-
head [选项] 文件名 head -5 1.txt 默认查看前10行 -x代表查看几行
-
tail [选项] 文件名 默认查看后十行
grep查询字符串
grep命令可以在指定文本文件中匹配字符串
格式: grep 关键字 查找范围 grep stu /etc/passwd
管道符
格式: cmd1 | cmd2 | cmd3…
作用:将一个命令的执行结果作为另一个命令输入来执行
例1:查看/etc目录下的内容
ls /etc | less
例2:显示/etc目录中文件名以pass开头的文件
ls /etc | grep pass*
重定向
所谓重定向,指不使用系统的标准输入,输出,错误端口进行信息的获取或输出,而是通过重新的指定,让命令从非默认的输入输出设备中获取信息,所以重定向分为:输入重定向,输出重定向,错误重定向.
命令 | 说明 |
---|---|
> | 输出重定向,如果原来目标文件存在,则新的内容会覆盖文件中原有的内容 |
>> | 输出重定向,如果原来目标文件存在,则新的内容会追加在原来文件内容的后面,不覆盖文件中原有的内容 |
< | 输入重定向,即命令的输入不通过键盘来完成,而是通过其他方式 |
2> | 错误重定向 |
&> | 输出重定向和错误重定向同时实现 |
磁盘分区与系统文件挂载
所谓的挂载点就是文件系统中存在的一个目录,通常情况下,创建再/mnt目录下,挂载成功后,访问挂载点就是访问新的存储设备挂载点应该是空目录,否则原来挂载点中存在的文件将会被隐藏,而且载点再实施挂载操作之前就应该存在。
出磁盘分区: fdisk -l
挂载文件系统
挂载:由mount命令完成,可以灵活的挂在各种类型的文件系统
命令格式: mount [选项] [设备名] [挂载点]
选项 | 功能说明 |
---|---|
-t fstype | 指定要挂在的文件系统类型,如果不清楚,可以使用 -t auto 让系统自己选择最合适的文件系统类型挂载 |
-r | 以只读的方式挂载文件系统 |
-w | 以读写的方式挂在文件系统(默认选项) |
-o | 设置挂载属性 |
-a | 挂载/etc/fstab文件中记录的设备 |
mount -t /dev/sr0 /mnt/cdrom 将sr0这个光驱挂载到cdrom上
-
使用mount查看是否挂载成功 有 on代表成功了
-
卸载挂载点: umount /mnt/cdrom(挂载点路径)
-
查看谁在使用挂载点: fuser -a /mnt/cdrom (显示所有在命令行中指定的文件系统信息,默认情况下,至少被一个进程访问的文件才会显示)
-
杀死使用挂载点的进程: fuser -k /mnt/cdrom (杀死访问文件的进程)
-i在杀死前进行提示确认
-u显示使用文件系统的进程的所有者信息
kll -9 xxxx(进程编号) 杀死该进程
卸载挂载点
格式 : umount [设备名或挂载点]
移动硬盘(u盘)插入时系统默认挂载,可以先卸载再挂载到指定的目录,然后拷贝文件 cp /xx/xx /xx/xx
卸载时要退出挂载的目录才能卸载。
扩充系统的硬盘空间
磁盘的分区挂载使用
先添加一块硬盘,进行分区,格式化,挂载,使用
命令行下提高工作效率的方法
1、tab键提示
2、上下键查看使用过的命令
3、history 查看使用过的所有命令(有行号)
4、!行号 直接使用历史查看的命令
5、alias xxx="xxx命令" 给命令起别名
6、unalias xxx 取消别名
文件系统的自动挂载
vim /etc/fstab
第一个字段:需要挂载的设备文件名
第二个字段:挂载点,必须是一个目录,而且必须用绝对路径
对于交换分区,这个字段定义为swap
第三个字段:文件系统的类型,如果是ext3文件系统,则写成ext3;如果是FAT32文件系统,则写成vfat,如果是光盘,可以写auto
第四个字段:挂载选项,一般都是采用"defaults"
第五个字段:文件系统是否需要dump备份,1表示需要,0表示忽略
第六个字段:在系统启动时是否检查这个文件系统以及检查的顺序 0不检查 1 优先检查 2其次检查
用户和组
/etc/xxx 没创建一个用户系统自动给该用户创建一个组
用户管理
用useradd命令创建用户
格式: useradd [选项] 用户名
选项 | 功能说明 |
---|---|
-d | 指定用户主目录 |
-g | 指定用户组 |
-m | 若主目录不存在,则创建 |
-s | 指定登陆时使用的Shell类型,默认为.bin/bash,如果为.bin/nologin就是虚拟用户 |
-c | 设置对该账号的注释说明文字 |
-r | 创建系统账号(用户id小于1000,从999起按照递减的顺序创建),默认不创建对应的主目录 |
用passwd命令管理用户登录密码
格式: passwd [选项] [用户名称]
选项 | 功能说明 |
---|---|
-l | 锁定用户密码 |
-u | 解锁用户密码 |
-S | 查询用户密码状态 |
-d | 删除用户密码 |
例子:useradd -s /bin/bash zhangsan
passwd zhangsan 之后会弹出设置密码提示
usermod命令修改用户属性
格式: usermod 选项 用户名
选项 | 功能 |
---|---|
-l | 修改用户名 |
-c | 修改描述信息 |
-d | 修改主目录 |
-L | 锁定账号,临时禁制用户登录 |
-U | 对账号解锁 |
-g | 修改用户所属组 |
-G | 修改用户附加组 |
-s | 修改shell类型 |
-u | 修改id号 |
-e | 修改用户有效期 |
-f | 修改用户密码在多少天后过期 |
例子: usermod -l jack tom
删除用户
格式: userdel [-r] 用户名 加-r代表主目录也删除 主目录在 /home/xxx 下
用于修改用户口令有效期限的chage命令
格式: chage [选项] 用户名
选项 | 说明 |
---|---|
-m | 密码可更改的最小天数,为0代表任何时候都可以修改 |
-W | 用户密码到期前.收到警告信息的天数 |
-M | 密码保持有效的最大天数 |
-E | 账号到期的日期,过了这天,此账号将不可用 |
-d | 上一次更改的日期 |
-I | 停滞时期,如果一个密码已经过期这些天,该账户将不可用 |
-l(L小写) | 列出当前的设置,由非特权用户来确定他们的密码或账号何时过期 |
chage -M 18045 -W 9 -E 18046 jack 设置用户密码最大有效期为30天,提前9天警告,失效期40天
chfn命令(修改用户的注释信息)
格式: chfn [选项] [用户名]
选项 | 功能 |
---|---|
-f | 设置真实姓名 |
-h | 设置家中的电话号码 |
-o | 设置办公室的地址 |
-p | 设置办公室的电话号码 |
修改用户Shell类型的chsh命令
格式: chsh [s] [用户名]
chsh -s /sbin/nologin jack 将用户改为虚拟用户
用户组的管理
用groupadd命令创建用户组
格式: groupadd [r] 用户组名称
用groupmod命令修改用户组属性
格式: groupmod 选项 组名 -n (修改组名) -g (修改组标识号GID)
用groupdel命令删除用户组
格式:groupdel 组名
用gpasswd命令维护组中成员
格式: gpasswd 选项 用户名 组名 -a(添加用户到组) -d(将用户从组中删除) -A(设置用户为组管理员)
临时加入到某个组
格式: newgrp 组名 (回车输入密码)
扩展知识
查看用户信息的id命令:
id 用户名
输出指定用户所在组groups命令:
groups 用户名
查看当前登录用户who am i 命令:
who am i
查看当前用户w命令:
w
查看登录用户who命令
who
查看登录用户历史last命令
last
文件的权限
r(读) w(写) x(执行) 九个字符 前三个是文件创建者的权限,中间三个是组用户对该文件的权限,后三个是其他用户对该文件的权限,-代表没有该权限
权限修改
以字母的形式修改文件权限
u:文件所有者 g:文件属组 o:其他用户 a:所有用户
chmod a-rwx 1.txt a-(该用户减去某个权限) a+(该用户加上某个权限rwx)
chmod o=--- 文件名 (直接赋值权限,可以使用+-=计算权限)
以数字形式修改权限
4 2 1 加起来是7
r w x 7:rwx 5:rx 1:x 0:-
chmod 750 文件名
提升用户的权限
查看是否安装sudo: rpm -qa | grep sudo
ACL规则
给指定用户指定文件的权限: setfacl -m u:s1:rwx files/
-m选项:设定或修改一个ACL规则
-x选项:取消一个ACL规则
-b选项:取消所有ACL规则
通过getfacl命令查看ACL权限
通过setfacl -m 修改ACL权限
格式 -m:参数 s1:用户名 rwx:权限 files 文件名
getfacl files/ 获取该文件的facl规则
强制位权限
设置方法:chmod o+t 目录名 (设置之后除了文件所有者,其他用户不能删除非自己创建的文件)
服务与进程的管理
使用systemctl管理服务
查看某个服务状态 systemctl status 服务名
停止服务 systemctl stop 服务名
开启某个服务 sysyemtrl start 服务名
重启服务 restart
设置服务的自启动状态
使用ntsysv命令设置服务的自启动
格式:ntsysv [--back] [--level] 为图形界面,加back可以显示返回按钮,--level可以设置哪些启动级别启动哪些服务 --level0123456 (直接跟上级别)
使用systemctl命令设置服务自启动
查看服务的自启动状态:systemctl is-enabled [服务名称]
开启服务自启动:systemctl enable 服务名称
关闭服务自启动:systemctl disable 服务名称
进程管理
查看电脑ip: ifconfig
查看当前用户运行了哪些进程: ps / ps - l
格式 : ps [选项]
-A : 显示系统中所有进程的信息 -a:显示所有用户进程的信息 -f : 完整的显示进程的所有信息
-l:以长格式显示进程信息 -r:只显示正在运行的进程
查看各进程的继承关系
格式: pstree [选项] [pid user]
-a:显示该进程的完整继承关系,如果是被内存置换出去的进程则会加上括号
-c:如果由重复的进程名,则分开列出(默认值会在前面加上*)
进程的终止
格式:kill [信号代码] pid (信号代码为PID号)
killall 【信号代码】 进程名
kill -9 pid 强制终止进程
进程的调度
延迟性调度命令,功能:指定时间运行指定的程序
格式:at [-f 文件] [-m ] 时间
-f 指定存放计划执行命令的文件
-m 作业结束后发送邮件给执行at命令的用户
时间:任务执行的时间,可以采用相对和绝对两种方法
绝对表示法:MMDDYY或MM/DD/YY,today或tomorrow来表示今天或明天
相对表示法:now+num+时间单位,其中的时间间隔可以是minutes,hours,days,weeks
at nuw+1 minutes (输完按下回车进入at命令的编辑)
at>echo "hello" > /dev/pst0 一分钟后pst0终端输出hello,如果有其他命令,按下回车继续输入at>ctrl+d 退出at命令的编辑
周期性调度名crontab,功能:周期性的运行指定的程序
crontab [ -u] user(哪个用户,不写默认为当前用户) [选项-e]
-u:为指定的用户设置计划任务
-e:编辑计划任务列表
-l:查看指定用户的计划任务列表
-r:删除用户的计划任务列表
crontab -u user file (其中file代表任务列表文件)
任务列表文件的格式: minute hour day month day-of-the-week run_command
软件安装
RPM包安装
RPM工具具有5种基本功能:查询.安装,升个级,刷新,卸载
格式:rpm [选项] 文件
选项 | 说明 |
---|---|
-a | 显示所有软件包 |
-q | 查询功能 |
-i | 安装指定的软件包,通常和-v,-h选项结合使用 |
-e | 删除指定的软件包 |
-f | 查询拥有指定文件的软件包 |
-i | 显示软件包的相关信息,通常和-q选项结合使用 |
-l | 显示软件包的文件列表 |
-p | 查询待安装的软件包 |
-R | 显示软件包的关联信息 |
-s | 显示文件状态,通常结合-l使用 |
-U | 升级指定的软件包 |
yum安装
删除yum.repos.d目录下所有文件
rm -f /etc/yum.repos.d/*
然后重新下载阿里的:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
清理缓存:
yum clean all
测试下载安装:
yum install gcc
卸载
yum remove gcc
TAR包管理工具简介
TAR是linux下的包管理工具.有5种功能: 打包,查询,释放,更新,追加
格式: tar [主选项+辅助选项] [文件或目录]
选项 | 说明 |
---|---|
-c | 创建新的tar包 |
-t | 列出tar包文件列表 |
-x | 从tar包中释放文件 |
-r | 把备份文件追加到已备份文件的末尾 |
辅助选项 | 说明 |
---|---|
-f | 备份文件或设备,必选项 |
-v | 显示命令执行的详细信息 |
-z | 用gzip来压缩/解压文件 |
-j | 用bzip2来压缩/解压文件 |
-C | 指定文件解压后的存放路径 |
以上是关于万字长文,一文读懂Linux的常规操作(墙裂建议收藏)的主要内容,如果未能解决你的问题,请参考以下文章