目录

开机,重启命令

  1. shutdown -h now 立刻关机
  2. shutdown -h 1 1分钟后关机
  3. shutdown -r now 现在重启计算机
  4. reboot 重启
  5. sync 把内存中的数据同到磁盘

用户登录和注销

  1. 切换用户 su user
  2. 注销用户(登出) logout

添加用户

  1. 添加用户: useradd 用户名(默认在/home目录创建一个文件夹为该用户的工作目录)
  2. 添加用户: useradd -d 目录(在指定目录创建一个文件夹为该用户的工作目录)
  3. 为用户user设置密码: passwd user

删除用户

  1. 删除用户user,保留家目录:userdel user
  2. 删除用户user,同时删除家目录:userdel -r user

查询用户信息

  1. 查询用户user信息 : id user

查看当前用户

  1. 查看当前用户 : who am i 或 whoami

用户组

  1. 创建组 groupadd A
  2. 添加用户并放入组A useradd -g A user
  3. 修改用户的组: usermod -g B user

用户和组相关配置文件

  1. 用户配置文件 /etc/passwd 用户名:口令:用户标识号:组标识号:注释性描述:家目录:登录shell
  2. 口令配置文件 /etc/shadow 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
  3. 组配置文件 /etc/group 组名:口令:组标识号:组内用户列表

指定运行级别

运行级别说明

  1. 0 关机
  2. 1 单用户【找回丢失密码】
  3. 2 多用户状态,没有网络服务
  4. 3 多用户状态,有网络服务
  5. 4 系统未使用,保留给用户
  6. 5 图形界面
  7. 6 系统重启

通过指令切换运行级别

  1. 指令 init 【0123456】

有关运行级别的配置文件

  1. /etc/inittab
  2. 查看默认运行级别指令:systemctl get-default
  3. 设置默认运行级别指令:systemctl set-default +运行级别

帮助指令

  1. 获取帮助信息: man【命令或配置文件】拓展:以“.”开头的是隐藏文件,查看隐藏文件指令:ls -a (选项可叠加)
  2. 获取命令帮助信息: help【命令】
  3. 百度

文件目录指令

  1. pwd :查看当前目录的绝对路径
  2. ls : 【选项】例如 ls -a 查看文件包含隐藏文件,ls -l 以列表方式显示文件
  3. cd 目录 cd ~ 回到自己的家目录,cd .. 回到上级目录
  4. mkdir 创建1级目录 mkdir -p 创建多级目录
  5. rmdir 删除空目录 若目录有内容无法删除 rm -rf 目录 递归删除目录,可强制删除所删除目录的所有子目录及文件
  6. touch 创建一个空的文件
  7. cp 拷贝粘贴 格式 cp 想要copy的文件 目标文件夹
  8. cp -r 递归拷贝目录下所有文件到目标文件夹
  9. \cp -r 拷贝如果文件已存在强制覆盖不提示
  10. rm -f 强制删除一个文件,不提示是否删除
  11. mv 重命名或移动文件或目录
  12. cat 查看文件 car -n 显示行号 cat -n filename | more 分页
  13. more 查看文件并交互 enter 往下一行 q 退出 空格 下一页 =当前行号 :f显示当前行号和文件名 Ctrl+F 向下滚一屏 Ctrl+B 返回上屏
  14. less 动态查看大文件 空格键: 向向下翻页 pageup向上翻页 pagedown向下翻页 /:查找子串功能,n向下查找,N向上查找 ?:查找子串功能,N向下查找,n向上查找 q退出less
  15. echo 输出字符到控制台 例如: echo PATHechoPATH ,echo HOSTNAME , echo "hello..."
  16. head 查看文件开头,head 默认10行,head -n 5 看开头5行,以此类推..."
  17. tail 查看文件末尾,tail 默认10行,tail -n 5 看开头5行,以此类推... tail -f 文件 实时追踪该文件的更新"
  18. > 覆盖方式重定向 >>追加方式重定向
  19. cal 查看日历
  20. ln -s 原有目录 链接文件 相当于windows下的快捷方式,当程序要使用系统文件时,可以使用链接文件引用系统文件,节约空间
  21. history 查看自己执行过的指令 history 10 查看自己最近10次执行的指令 !5 执行编号为5的指令

日期指令

  1. date 查看当前时间 date +%Y 显示当前年份 date +%m 显示当前月份 date + %d 显示当前是该月的第几天
  2. date "+%Y-%m-%d %H:%M:%S" 显示年月日时分秒 ,中间的 - 空格 :就是分割符,可以有任意符号代替
  3. date -s “2022-3-3 10:10:10”设置时间
  4. cal 查看本月日历 cal -y 或 cal 2022 显示年历

查找文件

  1. find dir -name file 按名称查找文件 find dir -user longrichli 按用户查找文件 (查找文件是属于该用户的)find dir -size (-,+, )number(k,M,G) 按文件大小查找,-是小于某个数 +是大于某个数,省略是=某个数,k,m,g是单位
  2. locate file 在数据库中查找文件,速度快,执行前要更新数据库 updatedb 如果找不到命令执行yum install mlocate 命令
  3. which 命令 查看某个命令在哪个目录下
  4. grep 过滤查找 | 管道符号 例如: grep -n 显示行号 grep -i 忽略大小写 例如: cat /home/a.txt| grep -n "hello" ,grep -n hello /home/a.txt

压缩和解压

gip

  1. 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组

  1. ls -lha 查看文件所有者及所在组
  2. chown 用户名 文件名 修改文件所有者 chown -R 用户名 目录名 递归变更目录中所3有文件的所有者 chown new_user:new_group file/dir 同时修改文件所有者和所在组
  3. groupadd group_name 创建组
  4. useradd -g group_name user_name 创建一个用户并放进一个组
  5. chgrp group_name file_name 改变文件所在的组 chgrp -R group_name dir_name 递归修改文件所在组
  6. usermod -g group_name user_name 改变用户所在的组
  7. usermod -d dir_name user_name 改变用户登录的初始目录(用户有权限访问)

权限:以 -rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc 举例

0~9位说明

  1. 0位 :文件类型 -:普通文件 d 目录 l 链接文件 c 字符设备 键盘等 b 块设备 硬盘等
  2. 1~3位 :所有者权限 r读w写x执行
  3. 4~6位 :用户组权限 r读w写x执行
  4. 7~9位 :其他组权限 r读w写x执行

rwx 说明

作用于文件

  1. r代表可读,可以读取查看
  2. w代表可写,可以修改但不能删除
  3. x 可执行,可以被执行

作用于目录

  1. r可读,可以ls查看目录有哪些文件
  2. w 可写 ,对目录内创建,删除,重命名目录
  3. x 可执行,可以进入该目录

数字1说明

  1. 本身+子目录的数量

1213 及以后

  1. 表示文件大小
  2. 时间 文件改动时间

修改权限

  1. 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
  2. chmod 通过数字变更权限 r 4 w 2 x 1 通过chmod [1234567][1234567][1234567] file_name/dir_name 来变更权限

crond 任务调度

概述:

任务调度:是指系统在特定的时间执行特定的命令或程序. 任务调度分类:

  1. 系统工作:有些重要的工作必须周而复始的进行,如扫描病毒等
  2. 各别用户工作:个别用户可能希望执行某些程序,比如对MySQL数据库的备份

基本用法:

crontab [选项]

常用选项:

-e: 编辑crontab定时任务
-l: 查询crontab任务
-r: 删除当前用户所有的crontab任务
service crond restart 重启任务调度

入门:

  1. 设置任务调度文件: /etc/crontab
  2. 设置个人任务调度: 执行 crontab -e 命令
  3. 接着输入任务到调度文件
    例如 : */1 * * * * ls -l /etc/ > /home/to.txt命令

5个*说明:

  1. 第一个 * : 一小时当中的第几分钟 (0~59)
  2. 第二个 * : 一天当中的第几小时 (0~23)
  3. 第三个 * : 一个月当中的第几天 (1~31)
  4. 第四个 * : 一年当中的第几个月 (1~12)
  5. 第五个 * : 一周当中的星期几 (0~7)(0和7代表周日)

特殊符号说明

    • 代表任何时间 比如第一个*代表一个小时的第几分钟
  1. , 代表不连续的时间, 比如 0 8,12,16 * * * 命令/脚本 就代表在每天的8点,12点,16点都执行一次命令
    • 代表连续的时间范围,比如 0 5 * * 1-5 命令/脚本 就代表每周一到周五的5点执行命令
  2. */n 代表隔多久执行一次,比如 */10 命令/脚本 代表每隔十分钟执行一次

at定时任务

基本介绍:

  1. at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行
  2. 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行次作业
  3. at命令是一次性定时计划任务,执行完一次任务就不再执行此任务了
  4. 使用at命令时,要确保atd进程的启动,可以执行 ps -ef | grep atd 来查看atd是否正在运行

at命令格式:

at [选项] [时间] Ctrl+D结束at命令输入

at指定时间方法

  1. 当天的hh:mm (小时:分钟)式的时间指定,如果时间过去,则在第二天执行,例如:07:00
  2. 采用12小时计时制,在时间后面加上PM(下午)/AM(上午)例如:4PM
  3. 指定具体日期,指定格式: month day 或 mm/dd/yy(月/日/年) 或 dd.mm.yy (日/月/年),指定的日期必须跟在指定时间的后面,例如:04:00 2021-03-01

常用指令

  1. atq 查看at队列中的任务
  2. atrm [编号] 删除一个任务

linux分区

  1. lsblk 或 lsblk -f 查看所有设备挂载情况
  2. 分区命令 fdisk /dev/sdb
    开始对/sdb分区
    m 显示命令列表
    p 显示磁盘分区 同 fdisk -l
    n 新增分区
    d 删除分区
    w 写入并退出
    说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区,两次回车默认剩余全部空间,最后输入w写入并退出 若不保存退出输入q
  3. mkfs -t ext4 /dev/sdb1 格式化磁盘,ext4是分区类型
  4. mount 设备名称 挂载目录 挂载(将一个分区和一个目录联系起来) 例如: mount /dev/sdb1 /newdist 挂载到newdist目录
    注意当在命令行挂时,重启设备,命令将失效,即不再挂载
  5. 永久挂载: 修改/etc/fstab实现挂载 按文件中的格式就可以,添加完后执行 mount -a 即刻生效
  6. umount 设备名称/挂载目录 卸载 例如:umount /dev/sdb1 或 umount /newdist
  7. df -h 查看磁盘使用情况
  8. du -h dir :查询指定目录的磁盘占用情况
    -s 指定目录占用大小汇总
    -h 带计量单位
    -a 含文件
    --max-depth=1 子目录深度
    -c 列出明细的同时,增加汇总值
  9. 实用指令 :
    统计文件的个数: 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 查看当前进程

###常用指令:

  1. ps -u :以用户的格式显示进程信息
  2. ps -a : 显示当前终端所有进程信息
  3. ps -x :显示后台进程运行的参数
  4. ps -aux | grep "xxx" 查看xxx服务是否运行
  5. ps -e 显示所有进程
  6. ps -f 以全格式显示进程
  7. ps -ef 一全格式显示所有进程
  8. ps -ef | grep xxx 以全格式显示xxx进程
  9. kill 进程号 杀死进程 kill -9 进程号 强迫终止进程 . 例如: 杀死 例如:kill 1065 杀死 pid为1065的进程 假如进程是sshd 启用指令为:/bin/systemctl start sshd.service
  10. killall 进程名称 杀死进程,子进程也将被杀死
  11. pstree [选项] 查看进程树 -p 显示进程pid -u 显示进程用户

ps -aux指令说明:

  1. System V 展示风格
  2. user 用户名称
  3. pid 进程号
  4. %cpu cpu占用率
  5. %mem 进程占用物理内存百分比
  6. vsz 进程占用的虚拟内存大小 (单位: kb)
  7. rss 进程占用的物理内存大小 (单位: kb)
  8. tt 终端名称,缩写
  9. stat 进程状态,S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通进程更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或被停止等
  10. started 进程的启动时间
  11. time cpu时间,即进程使用cpu的总时间
  12. command 启动进程所用的命令和参数,太长会截断显示

ps -ef指令说明

  1. uid 用户id
  2. pid 进程id
  3. ppid 父进程id
  4. c cpu用于计算执行优先级的因子,数值越大,表示进程是cpu密集型运算,执行优先级会降低,数值越小,表明 cpu是I/O密集型运算,执行优先级会提高
  5. stime 进程启动时间
  6. tty 完整的终端名称
  7. time cpu时间
  8. cmd 启动进程所用的命令和参数

服务(service)管理

介绍 :

服务(service)本质就是进程,但是是运行在后台的,通常是会监听某个端口,等待其他程序的请求,比如 (mysqld,sshd,防火墙 等),因此我们又称为守护进程

service管理指令

  1. service 服务名 [start | stop | restate | reload | status]
  2. 在centos7.0 后,很多服务不在使用service,而是systemctl
  3. service 服务管理在/etc/init.d查看

查看服务名:

  1. 方式1 : 使用setup 查看全部服务
  2. 方式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. 介绍:
    1.通过chkconfig命令可以给各个运行级别设置 on/off
    2.chkconfig指令管理服务在/etc/init.d查看
    3.centos7.0后,很多服务使用systemctl管理
  2. chkconfig 基本语法
    1.查看服务 chkconfig --list [ | grep xxx]
    2.chkconfig 服务名 --list
    3.chkconfig --level 运行级别 服务名 on/off
  3. 案例:对network服务进行各种操作,把network 在3 运行级别,关闭自启动
    chkconfig --level 3 network off
    chkconfig --level 3 network on
  4. 使用细节: chkconfig重新设置自启动或关闭,需要重启机器reboot生效

systemctl 相关指令

  1. systemctl管理指令
    1.基本语法:systemctl [start | stop |restart | status] 服务名
    2.systemctl指令管理的服务在 /usr/lib/systemd/system目录中
  2. systemctl设置服务的自启动状态
    1.systemctl list-unit-files [| grep 服务名] (查看服务开机启动状态,grep可以进行过滤)
    2.systemctl enable 服务名(设置服务开机自启动)
    3.systemctl disable 服务名 (关闭自启动)
    4.systemctl is-enable 服务名 (查询某个服务是否是自启动的)
  3. 应用案例: 查看防火墙状况,关闭防火墙和重启防火墙
    systemctl status firewalld;
    systemctl stop firewalld ;
    systemctl start firewalld;
  4. 细节 : 1.关闭或启用防火墙后,立即生效
    2.这种方式只是临时生效,重启后,还是回归以前对服务的设置
    3.如果希望设置某个服务自启动和关闭永久生效,要使用 systemctl [enable | disable] 服务名

firewall指令

  1. 打开端口:firewall-cmd --permanent --add-port=端口号/协议
  2. 关闭端口:firewall-cmd --permanent --remove-port=端口号/协议
  3. 重新载入,才能生效:firewall-cmd --reload
  4. 查询端口是否开放: firewall-cmd --query-port=端口号/协议

动态监控进程

  1. 介绍:top与ps命令相似.它们都用来显示正在执行的进程.不同在于top在执行一段时间可以更新正在运行的进程
  2. top选项:
    -d 秒数: 指定top命令每隔几秒更新.默认3秒
    -i : 使top不显示任何闲置或僵死进程
    -p : 通过指定监控进程id来仅仅监控某个进程的状态
  3. 交互操作说明:
    P : 以cpu使用率排序,默认就是此选项
    M : 以内存使用率排序
    N : 以pid排序
    q : 退出top
    u : 输入u回车 在输入用户名,可以查看特定用户的进程使用情况
    k : 输入k回车,再输入要结束的进程id号,可以结束进程
  4. 监控网络状态:
    选项 : -an 按一定顺序排列输出 -p 显示哪个进程在调用
    案例:查看服务名为sshd的信息:netstat -anp | grep sshd
  5. 检测主机连接命令
    ping 对方ip地址

rpm包

  1. rpm用于互联网下载包的打包及安装,它包含在某些linux的分发版中 (suse,redhat,centos等), 生成具有.RPM扩展名的文件
  2. 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 进度条;
  3. 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表示通用
  4. yum 是一个shell前端软件包管理器,基于rpm包管理.能够从指定的 服务器自动下载rpm包并安装,可以自动处理依赖关系
    yum list | grep xx软件 查看是否有此软件
    yum install xx软件 下载安装

jdk安装安装步骤

  1. mkdir /opt/jdk
  2. 通过xftp6将jdk的tar.gz文件上传到/opt/jdk目录中
  3. cd /opt/jdk
  4. 解压文件: tar -zxvf jdk...tar.gz
  5. mv /opt/jdk/jdk... /usr/local/java
  6. 配置环境变量: vim /etc/profile
  7. export JAVA_HOME=/usr/local/java(文件位置)
  8. export PATH=JAVAHOME/bin:JAVA_HOME/bin:PATH
  9. source /etc/profile 让文件生效
  10. 测试是否安装成功 写个java文件执行

Tomcat的安装步骤

  1. 上传安装文件,并解压缩到/opt/tomcat
  2. 进入解压目录/bin,启动tomcat : ./startup.sh
  3. 开放端口8080
  4. 测试是否安装成功 用浏览器访问:http://ip地址:8080