目录
开机,重启命令
- shutdown -h now 立刻关机
- shutdown -h 1 1分钟后关机
- shutdown -r now 现在重启计算机
- reboot 重启
- sync 把内存中的数据同到磁盘
用户登录和注销
- 切换用户 su user
- 注销用户(登出) logout
添加用户
- 添加用户: useradd 用户名(默认在/home目录创建一个文件夹为该用户的工作目录)
- 添加用户: useradd -d 目录(在指定目录创建一个文件夹为该用户的工作目录)
- 为用户user设置密码: passwd user
删除用户
- 删除用户user,保留家目录:userdel user
- 删除用户user,同时删除家目录:userdel -r user
查询用户信息
- 查询用户user信息 : id user
查看当前用户
- 查看当前用户 : who am i 或 whoami
用户组
- 创建组 groupadd A
- 添加用户并放入组A useradd -g A user
- 修改用户的组: usermod -g B user
用户和组相关配置文件
- 用户配置文件 /etc/passwd 用户名:口令:用户标识号:组标识号:注释性描述:家目录:登录shell
- 口令配置文件 /etc/shadow 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
- 组配置文件 /etc/group 组名:口令:组标识号:组内用户列表
指定运行级别
运行级别说明
- 0 关机
- 1 单用户【找回丢失密码】
- 2 多用户状态,没有网络服务
- 3 多用户状态,有网络服务
- 4 系统未使用,保留给用户
- 5 图形界面
- 6 系统重启
通过指令切换运行级别
- 指令 init 【0123456】
有关运行级别的配置文件
- /etc/inittab
- 查看默认运行级别指令:systemctl get-default
- 设置默认运行级别指令:systemctl set-default +运行级别
帮助指令
- 获取帮助信息: man【命令或配置文件】拓展:以“.”开头的是隐藏文件,查看隐藏文件指令:ls -a (选项可叠加)
- 获取命令帮助信息: help【命令】
- 百度
文件目录指令
- pwd :查看当前目录的绝对路径
- ls : 【选项】例如 ls -a 查看文件包含隐藏文件,ls -l 以列表方式显示文件
- cd 目录 cd ~ 回到自己的家目录,cd .. 回到上级目录
- mkdir 创建1级目录 mkdir -p 创建多级目录
- rmdir 删除空目录 若目录有内容无法删除 rm -rf 目录 递归删除目录,可强制删除所删除目录的所有子目录及文件
- touch 创建一个空的文件
- cp 拷贝粘贴 格式 cp 想要copy的文件 目标文件夹
- cp -r 递归拷贝目录下所有文件到目标文件夹
- \cp -r 拷贝如果文件已存在强制覆盖不提示
- rm -f 强制删除一个文件,不提示是否删除
- mv 重命名或移动文件或目录
- cat 查看文件 car -n 显示行号 cat -n filename | more 分页
- more 查看文件并交互 enter 往下一行 q 退出 空格 下一页 =当前行号 :f显示当前行号和文件名 Ctrl+F 向下滚一屏 Ctrl+B 返回上屏
- less 动态查看大文件 空格键: 向向下翻页 pageup向上翻页 pagedown向下翻页 /:查找子串功能,n向下查找,N向上查找 ?:查找子串功能,N向下查找,n向上查找 q退出less
- echo 输出字符到控制台 例如: echo HOSTNAME , echo "hello..."
- head 查看文件开头,head 默认10行,head -n 5 看开头5行,以此类推..."
- tail 查看文件末尾,tail 默认10行,tail -n 5 看开头5行,以此类推... tail -f 文件 实时追踪该文件的更新"
- > 覆盖方式重定向 >>追加方式重定向
- cal 查看日历
- ln -s 原有目录 链接文件 相当于windows下的快捷方式,当程序要使用系统文件时,可以使用链接文件引用系统文件,节约空间
- history 查看自己执行过的指令 history 10 查看自己最近10次执行的指令 !5 执行编号为5的指令
日期指令
- date 查看当前时间 date +%Y 显示当前年份 date +%m 显示当前月份 date + %d 显示当前是该月的第几天
- date "+%Y-%m-%d %H:%M:%S" 显示年月日时分秒 ,中间的 - 空格 :就是分割符,可以有任意符号代替
- date -s “2022-3-3 10:10:10”设置时间
- cal 查看本月日历 cal -y 或 cal 2022 显示年历
查找文件
- find dir -name file 按名称查找文件 find dir -user longrichli 按用户查找文件 (查找文件是属于该用户的)find dir -size (-,+, )number(k,M,G) 按文件大小查找,-是小于某个数 +是大于某个数,省略是=某个数,k,m,g是单位
- locate file 在数据库中查找文件,速度快,执行前要更新数据库 updatedb 如果找不到命令执行yum install mlocate 命令
- which 命令 查看某个命令在哪个目录下
- grep 过滤查找 | 管道符号 例如: grep -n 显示行号 grep -i 忽略大小写 例如: cat /home/a.txt| grep -n "hello" ,grep -n hello /home/a.txt
压缩和解压
gip
- gzip 将文件压缩成.gz压缩包 gunzip 解压 例如:
gzip /home/hello.java gunzip /home/hello.java.gz
zip
1.zip 将目录压缩成.zip压缩包 zip -r(递归压缩) xxx.zip 压缩的目录 unzip 解压 unzip -d 解压后文件存放目录 解压的压缩包
如果zip命令找不到 执行:
yum list |grep zip/unzip
yum install zip
yum install unzip
命令
tar 打包指令 打包后的文件是 .tar.gz 文件
功能描述:
-c 产成 .tar 打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
案例:
压缩多个文件: 将test.java 和test.class压缩成test.tar.gz 文件 :
tar -zcvf test.tar.gz test.java test.class
将home的文件夹压缩成myhome.tar.gz :
tar -zcvf myhome.tar.gz /home
将test.tar.gz解压至当前目录 :
tar -zxvf test.tar.gz
将myhome.tar.gz解压至/opt目录下 :
tar -zxvf myhome.tar.gz -C /opt
linux组
- ls -lha 查看文件所有者及所在组
- chown 用户名 文件名 修改文件所有者 chown -R 用户名 目录名 递归变更目录中所3有文件的所有者 chown new_user:new_group file/dir 同时修改文件所有者和所在组
- groupadd group_name 创建组
- useradd -g group_name user_name 创建一个用户并放进一个组
- chgrp group_name file_name 改变文件所在的组 chgrp -R group_name dir_name 递归修改文件所在组
- usermod -g group_name user_name 改变用户所在的组
- usermod -d dir_name user_name 改变用户登录的初始目录(用户有权限访问)
权限:以 -rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc 举例
0~9位说明
- 0位 :文件类型 -:普通文件 d 目录 l 链接文件 c 字符设备 键盘等 b 块设备 硬盘等
- 1~3位 :所有者权限 r读w写x执行
- 4~6位 :用户组权限 r读w写x执行
- 7~9位 :其他组权限 r读w写x执行
rwx 说明
作用于文件
- r代表可读,可以读取查看
- w代表可写,可以修改但不能删除
- x 可执行,可以被执行
作用于目录
- r可读,可以ls查看目录有哪些文件
- w 可写 ,对目录内创建,删除,重命名目录
- x 可执行,可以进入该目录
数字1说明
- 本身+子目录的数量
1213 及以后
- 表示文件大小
- 时间 文件改动时间
修改权限
- chmod 修改权限 u用户 g 组 o其他组 可以使用+ - = 进行权限管理
例如:
chmod u=rwx,g=rw,o=r
file_name/dir_name
chmod u-x,g-w file_name/dir_name chmod
o+w file_name/dir_name - chmod 通过数字变更权限 r 4 w 2 x 1 通过chmod [1234567][1234567][1234567] file_name/dir_name 来变更权限
crond 任务调度
概述:
任务调度:是指系统在特定的时间执行特定的命令或程序. 任务调度分类:
- 系统工作:有些重要的工作必须周而复始的进行,如扫描病毒等
- 各别用户工作:个别用户可能希望执行某些程序,比如对MySQL数据库的备份
基本用法:
crontab [选项]
常用选项:
-e: 编辑crontab定时任务
-l: 查询crontab任务
-r: 删除当前用户所有的crontab任务
service crond restart 重启任务调度
入门:
- 设置任务调度文件: /etc/crontab
- 设置个人任务调度: 执行 crontab -e 命令
- 接着输入任务到调度文件
例如 : */1 * * * * ls -l /etc/ > /home/to.txt命令
5个*说明:
- 第一个 * : 一小时当中的第几分钟 (0~59)
- 第二个 * : 一天当中的第几小时 (0~23)
- 第三个 * : 一个月当中的第几天 (1~31)
- 第四个 * : 一年当中的第几个月 (1~12)
- 第五个 * : 一周当中的星期几 (0~7)(0和7代表周日)
特殊符号说明
-
- 代表任何时间 比如第一个*代表一个小时的第几分钟
- , 代表不连续的时间, 比如 0 8,12,16 * * * 命令/脚本 就代表在每天的8点,12点,16点都执行一次命令
-
- 代表连续的时间范围,比如 0 5 * * 1-5 命令/脚本 就代表每周一到周五的5点执行命令
- */n 代表隔多久执行一次,比如 */10 命令/脚本 代表每隔十分钟执行一次
at定时任务
基本介绍:
- at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行
- 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行次作业
- at命令是一次性定时计划任务,执行完一次任务就不再执行此任务了
- 使用at命令时,要确保atd进程的启动,可以执行 ps -ef | grep atd 来查看atd是否正在运行
at命令格式:
at [选项] [时间] Ctrl+D结束at命令输入
at指定时间方法
- 当天的hh:mm (小时:分钟)式的时间指定,如果时间过去,则在第二天执行,例如:07:00
- 采用12小时计时制,在时间后面加上PM(下午)/AM(上午)例如:4PM
- 指定具体日期,指定格式: month day 或 mm/dd/yy(月/日/年) 或 dd.mm.yy (日/月/年),指定的日期必须跟在指定时间的后面,例如:04:00 2021-03-01
常用指令
- atq 查看at队列中的任务
- atrm [编号] 删除一个任务
linux分区
- lsblk 或 lsblk -f 查看所有设备挂载情况
- 分区命令 fdisk /dev/sdb
开始对/sdb分区
m 显示命令列表
p 显示磁盘分区 同 fdisk -l
n 新增分区
d 删除分区
w 写入并退出
说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区,两次回车默认剩余全部空间,最后输入w写入并退出 若不保存退出输入q - mkfs -t ext4 /dev/sdb1 格式化磁盘,ext4是分区类型
- mount 设备名称 挂载目录 挂载(将一个分区和一个目录联系起来) 例如: mount /dev/sdb1 /newdist 挂载到newdist目录
注意当在命令行挂时,重启设备,命令将失效,即不再挂载 - 永久挂载: 修改/etc/fstab实现挂载 按文件中的格式就可以,添加完后执行 mount -a 即刻生效
- umount 设备名称/挂载目录 卸载 例如:umount /dev/sdb1 或 umount /newdist
- df -h 查看磁盘使用情况
- du -h dir :查询指定目录的磁盘占用情况
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
--max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值 - 实用指令 :
统计文件的个数: ls -l dir_name | grep "^-" | wc -l
统计目录的个数: ls -l dir_name | grep "^d" | wc -l
统计目录内文件的个数包括子目录文件: ls -lR dir_name | grep "^-" | wc -l
统计目录内目录的个数包括子目录的目录: ls -lR dir_name | grep "^d" | wc -l
以树状结构显示文件 tree dir_name (如果没有这个命令 通过 : yum install tree 安装)
linux 进程
ps 查看当前进程
###常用指令:
- ps -u :以用户的格式显示进程信息
- ps -a : 显示当前终端所有进程信息
- ps -x :显示后台进程运行的参数
- ps -aux | grep "xxx" 查看xxx服务是否运行
- ps -e 显示所有进程
- ps -f 以全格式显示进程
- ps -ef 一全格式显示所有进程
- ps -ef | grep xxx 以全格式显示xxx进程
- kill 进程号 杀死进程 kill -9 进程号 强迫终止进程 . 例如: 杀死 例如:kill 1065 杀死 pid为1065的进程 假如进程是sshd 启用指令为:/bin/systemctl start sshd.service
- killall 进程名称 杀死进程,子进程也将被杀死
- pstree [选项] 查看进程树 -p 显示进程pid -u 显示进程用户
ps -aux指令说明:
- System V 展示风格
- user 用户名称
- pid 进程号
- %cpu cpu占用率
- %mem 进程占用物理内存百分比
- vsz 进程占用的虚拟内存大小 (单位: kb)
- rss 进程占用的物理内存大小 (单位: kb)
- tt 终端名称,缩写
- stat 进程状态,S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通进程更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或被停止等
- started 进程的启动时间
- time cpu时间,即进程使用cpu的总时间
- command 启动进程所用的命令和参数,太长会截断显示
ps -ef指令说明
- uid 用户id
- pid 进程id
- ppid 父进程id
- c cpu用于计算执行优先级的因子,数值越大,表示进程是cpu密集型运算,执行优先级会降低,数值越小,表明 cpu是I/O密集型运算,执行优先级会提高
- stime 进程启动时间
- tty 完整的终端名称
- time cpu时间
- cmd 启动进程所用的命令和参数
服务(service)管理
介绍 :
服务(service)本质就是进程,但是是运行在后台的,通常是会监听某个端口,等待其他程序的请求,比如 (mysqld,sshd,防火墙 等),因此我们又称为守护进程
service管理指令
- service 服务名 [start | stop | restate | reload | status]
- 在centos7.0 后,很多服务不在使用service,而是systemctl
- service 服务管理在/etc/init.d查看
查看服务名:
- 方式1 : 使用setup 查看全部服务
- 方式2 : /etc/init.d 看到service 指令管理的服务(找不到命令需要安装setuptool 指令为: yum install setuptool 还要安装网络服务,防火墙,系统服务等 指令为 yum install ntsysv ,yum install iptables ,yum install system-con fig-securitylevel-tui即可)
服务的运行级别(上面有)
开机流程:
开机->BIOS->/boot->systemd进程1->运行级别->进行对应的服务
chkconfig指令
- 介绍:
1.通过chkconfig命令可以给各个运行级别设置 on/off
2.chkconfig指令管理服务在/etc/init.d查看
3.centos7.0后,很多服务使用systemctl管理 - chkconfig 基本语法
1.查看服务 chkconfig --list [ | grep xxx]
2.chkconfig 服务名 --list
3.chkconfig --level 运行级别 服务名 on/off - 案例:对network服务进行各种操作,把network 在3 运行级别,关闭自启动
chkconfig --level 3 network off
chkconfig --level 3 network on - 使用细节: chkconfig重新设置自启动或关闭,需要重启机器reboot生效
systemctl 相关指令
- systemctl管理指令
1.基本语法:systemctl [start | stop |restart | status] 服务名
2.systemctl指令管理的服务在 /usr/lib/systemd/system目录中 - systemctl设置服务的自启动状态
1.systemctl list-unit-files [| grep 服务名] (查看服务开机启动状态,grep可以进行过滤)
2.systemctl enable 服务名(设置服务开机自启动)
3.systemctl disable 服务名 (关闭自启动)
4.systemctl is-enable 服务名 (查询某个服务是否是自启动的) - 应用案例: 查看防火墙状况,关闭防火墙和重启防火墙
systemctl status firewalld;
systemctl stop firewalld ;
systemctl start firewalld; - 细节 :
1.关闭或启用防火墙后,立即生效
2.这种方式只是临时生效,重启后,还是回归以前对服务的设置
3.如果希望设置某个服务自启动和关闭永久生效,要使用 systemctl [enable | disable] 服务名
firewall指令
- 打开端口:firewall-cmd --permanent --add-port=端口号/协议
- 关闭端口:firewall-cmd --permanent --remove-port=端口号/协议
- 重新载入,才能生效:firewall-cmd --reload
- 查询端口是否开放: firewall-cmd --query-port=端口号/协议
动态监控进程
- 介绍:top与ps命令相似.它们都用来显示正在执行的进程.不同在于top在执行一段时间可以更新正在运行的进程
- top选项:
-d 秒数: 指定top命令每隔几秒更新.默认3秒
-i : 使top不显示任何闲置或僵死进程
-p : 通过指定监控进程id来仅仅监控某个进程的状态 - 交互操作说明:
P : 以cpu使用率排序,默认就是此选项
M : 以内存使用率排序
N : 以pid排序
q : 退出top
u : 输入u回车 在输入用户名,可以查看特定用户的进程使用情况
k : 输入k回车,再输入要结束的进程id号,可以结束进程 - 监控网络状态:
选项 : -an 按一定顺序排列输出 -p 显示哪个进程在调用
案例:查看服务名为sshd的信息:netstat -anp | grep sshd - 检测主机连接命令
ping 对方ip地址
rpm包
- rpm用于互联网下载包的打包及安装,它包含在某些linux的分发版中 (suse,redhat,centos等), 生成具有.RPM扩展名的文件
- rpm包的简单查询指令
1.rpm -qa | grep xxx 查询已安装的rpm列表
2.rpm -qa 查询所安装的所有rpm软件包
3.rpm -q 软件包名: 查询软件包是否安装
4.rpm -qi 软件包名: 查询软件包信息
5.rpm -ql 软件包名: 查询软件包中的文件
6.rpm -qf 文件全路径名 : 查询文件所属的软件包
7.rpm -e rpm包名 卸载rpm包 //e:erase
8.如果其他软件包依赖你要卸载的软件包,则会提示错误信息:removing these packages would break dependencies:软件包名 is needed by
软件包名 ,可以强制卸载:rpm -e --nodeps xxx
9.安装rpm包 : rpm -ivh rpm包全路径名称
参数说明:i=install 安装;
v=verbose 提示;h=hash 进度条; - rpm包基本格式:
一个rpm包名: firefox-60.2.2-1.el7.centos.x86_64
名称: firefox
版本号: 60.2.2-1
适用的操作系统: el7.centos.x86_64 表示centos7.x的64为系统 如果是i686,i386表示32位系统,noarch表示通用 - yum 是一个shell前端软件包管理器,基于rpm包管理.能够从指定的 服务器自动下载rpm包并安装,可以自动处理依赖关系
yum list | grep xx软件 查看是否有此软件
yum install xx软件 下载安装
jdk安装安装步骤
- mkdir /opt/jdk
- 通过xftp6将jdk的tar.gz文件上传到/opt/jdk目录中
- cd /opt/jdk
- 解压文件: tar -zxvf jdk...tar.gz
- mv /opt/jdk/jdk... /usr/local/java
- 配置环境变量: vim /etc/profile
- export JAVA_HOME=/usr/local/java(文件位置)
- export PATH=PATH
- source /etc/profile 让文件生效
- 测试是否安装成功 写个java文件执行
Tomcat的安装步骤
- 上传安装文件,并解压缩到/opt/tomcat
- 进入解压目录/bin,启动tomcat : ./startup.sh
- 开放端口8080
- 测试是否安装成功 用浏览器访问:http://ip地址:8080