linux笔记
此文章只为记录,为以后查找密令更为方便。文章较长,在PC端查看更佳(查看原文)。
shisan
linux笔记
目录虚拟文本控制台(虚拟终端)基本认识shell常用基本密令辅助操作ls命令 : 查看目录下信息mkdir 文件管理命令touch命令创建/更新文件cp命令: 可用于目录或文件的复制使用mv命令移动/重命名文件及目录(剪切并且可以重命名)rm命令删除文件rmdir命令删除目录(删除空目录,且必须在上级目录进行操作)find命令查找文件获取帮助vim编辑器复制,粘贴,删除操作文件内容查找(先按:进入末行模式)撤销编辑文件的保存及退出vi编辑器文件内容替换查看文件内容命令cat查看文件内容head/tail 显示文件头部信息/尾部信息grep查询字符串管道符重定向磁盘分区与系统文件挂载挂在文件系统kll -9 xxxx(进程编号) 杀死该进程卸载挂载点扩充系统的硬盘空间命令行下提高工作效率的方法文件系统的自动挂载用户和组用户管理用passwd命令管理用户登录密码usermod命令修改用户属性删除用户用于修改用户口令有效期限的chage命令chfn命令(修改用户的注释信息)修改用户Shell类型的chsh命令用户组的管理用groupadd命令创建用户组用groupmod命令修改用户组属性用groupdel命令删除用户组用gpasswd命令维护组中成员临时加入到某个组扩展知识查看用户信息的id命令:输出指定用户所在组groups命令:查看当前登录用户who am i 命令:查看当前用户w命令:查看登录用户who命令查看登录用户历史last命令文件的权限权限修改以字母的形式修改文件权限以数字形式修改权限提升用户的权限ACL规则强制位权限服务与进程的管理设置服务的自启动状态进程管理查看各进程的继承关系进程的终止进程的调度周期性调度名crontab,功能:周期性的运行指定的程序软件安装RPM包安装yum安装TAR包管理工具简介
虚拟文本控制台(虚拟终端)
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 | 指定文件解压后的存放路径 |
python爬虫人工智能大数据公众号