Linux常用命令

本篇文章记录常见的Linux命令,以CentOS7.6演示。

目录结构

Vim编辑器快捷键

  • 正常模式下,yy:拷贝当前行,5yy:拷贝当前行向下的5行,并粘贴(p)
  • 正常模式下,dd:删除当前行,5dd:删除当前行向下的5行
  • 查找某个单词,命令行模式下,/关键字,回车查找,输入n是查找下一个
  • 设置行号,取消行号。命令行模式下:set nu和set nonu
  • 到文件最后一行:G,到文件首行:gg
  • 撤销动作:正常模式下输入u
  • 将光标移到20行:
    • 显示行号:set nu
    • 正常模式下输入20
    • shift+g

Linux开关机/用户登录注销

  • sync:把内存数据同步到磁盘,在关机或者重启时,都应该先执行sync命令,防止数据丢失。
  • shutdown -h now:立即关机
  • shutdown -h 1:一分钟后关机
  • init 0或halt:立即关机
  • shutdown -r now:立即重启
  • init 6或reboot:立即重启

用户管理

基本介绍

Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

Linux的用户需要至少属于一组。

常用命令

  • 添加用户:useradd [选项] 用户名,useradd -d 指定目录 用户名,如useradd -d /home/twilight twilight
  • 指定/修改密码:passwd 用户名
  • 删除用户:userdel 用户名(删除用户,但保留家目录),userdel -r 用户名(删除用户以及用户家目录)
  • 查询用户信息:id 用户名
  • 切换用户:su - 用户名,exit退出
  • 常看当前用户:whoami/who an i
  • 增加组:groupadd 组名
  • 增加用户时直接加上组:useradd 用户名 -g 组名
  • 删除组:groupdel 组名
  • 修改用户所在组:usermod 用户名 -g 组名,如usermod xh -g police,把xh改到police组下
  • 用户和组相关文件
    • /etc/passwd:用户的配置文件,记录用户各种信息,每行含义:用户名:口令:用户标识号:组标识号:注释行描述:组目录:登陆shell
    • /etc/shadow:口令配置文件
    • /etc/group:组的配置文件,记录Linux包含组的信息。每行含义:组名:口令:组标识号:组内用户列表

实用命令

运行级别

  • 常用运行级别是3和5,修改默认运行级别可改文件/etc/inittab中id:3:initdefault:中的数字
  • 切换到指定运行级别:init [0123456]

帮助指令

  • man [命令或配置文件]:获取该命令或者配置文件的帮助信息
  • help 命令:获取shell内置命令的帮助信息

文件目录类

  • pwd:显示正在工作的目录绝对路径
  • ls [选项] [目录或文件]:显示目录或文件
    • -a:显示当前目录所有文件和目录,包括隐藏的
    • -l:以列表方式显示信息
  • cd 目录:切换到指定目录,cd ~或者cd:回到自己的家目录,cd ..回到上一级目录
  • mkdir [选项] 要创建的目录名:创建目录
    • -p:创建多级目录,如mkdir -p /home/animal/tiger
  • rmdir [选项] 要删除的空目录,如果目录下有内容,则无法删除,删除非空目录:rm -rf 删除的目录名
  • touch 文件名:创建新文件
  • cp [选项] 要复制的文件 指定目录名:把文件拷贝到指定目录下
    • -r:递归复制整个文件夹,如cp -r xh/ twilight/
  • rm [选项] 要删除的文件或目录
    • -r:递归删除整个文件夹
    • -f:强制删除不提示
  • mv 老名字 新名字:修改文件名,mv 文件名 指定目录:把文件移动到指定目录下
  • cat [选项] 查看的文件名,一般都会带上管道命令:|more(分页浏览)
    • -n:显示行号
  • more 要查看的文件名
    • space:向下翻页
    • Enter:向下翻一行
    • q:离开
  • less 查看的文件名,对显示大型文件效率较高
  • 内容 > 文件:把内容写到文件中(覆盖),如ls -l > a.txt
    • ls -al >> 文件:把列表内容追加到文件末尾
    • cat 文件1 > 文件2:将文件1覆盖到文件2
    • echo 内容 >> 文件:输入内容到文件尾
  • echo 输出内容:输出内容到控制台,如echo $PATH
  • head 文件名:查看文件头10行内容,head -n 5:查看文件头5行内容
  • tail 文件名:查看文件后10行,tail -n 5:查看文件后5行,tail -f 文件名:追踪该文件所有更新
  • ln -s 源文件或目录 软链接名:给源文件创建一个软链接
  • history n:查看最近使用过的n个命令

时间日期类

  • date:显示当前时间
  • date -s 字符串时间:设置当前时间
  • cal [年]:查看日历

搜索查找类

  • find [搜索范围] [选项]:从指定目录向下递归各个子目录
    • -name 文件名:按照指定文件名查找,如find /home -name hello.txt(*.txt)
    • -user 用户名:按照属于用户查找,如find /home -user twilight
    • -size 文件大小:按照文件大小查找,如find /home -size -20(+20)k,查找小于(大于)20k的文件
  • locate 文件名:快速定位文件位置。
    • locate指令基于数据库进行查询,第一次运行前,需要先updatedb创建locate数据库
  • grep:过滤查找,|:管道符,表示将前一个命令的处理结果传递给后面的命令处理
    • grep [选项] 查找内容 源文件 ,如cat hello.txt | grep -n yes
    • -n:显示匹配行及行号
    • -i:忽略字母大小写

压缩和解压类

  • gzip 文件名:压缩文件(只能压缩为*.gz文件),使用这个命令压缩,不会保留原来的文件
  • gunzip 文件.gz:解压缩
  • zip [选项] xxx.zip 要压缩的内容:压缩文件
    • -r:递归压缩整个目录
  • unzip [选项] xxx.zip:解压缩
    • -d 目录:指定解压缩后文件的存放目录,如unzip -d /home/test/ mypackage.zip
  • tar:打包命令,打包文件是.tar.gz文件,tar [选项] xxx.tar.gz 打包的内容
    • -c:产生.tar打包文件夹
    • -v:显示详细信息
    • -f:指定压缩后的文件名
    • -z:打包同时压缩
    • -x:解包.tar文件
    • 打包:-zcvf,如tar -zcvf mypackage.tar.gz a.txt b.txt,把a.txt和b.txt打包
    • 解压:-zxvf,如tar -zxvf my.tar.gz -C /home/,把压缩包解压到/home/下

组管理与权限管理

组的管理

  • Linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。
  • ls -ahl:查看文件所有者
  • chown 用户名 文件名:修改文件所有者为该用户
  • charp 组名 文件名:修改文件所在的组为该组
  • 除文件的所有者和所在组的用户外,系统的其它用户都是文件的其他组
  • usermod -g 组名 用户名:改变用户所在组
    • usermod -d 目录名 用户名:改变用户登陆的初始目录

权限管理

  • ll查看内容如下

0~9位说明:

  • 第0位确定文件类型:-(文件),d(目录),l(链接)
  • 第1-3位确定该文件所有者拥有该文件的权限。
  • 第4-6位确定同用户组其他用户拥有该文件的权限。
  • 第7-9位确定其它用户拥有该文件的权限。

rwx作用到文件

  • 【r】代表可读:可以读取、查看
  • 【w】代表可写:可以修改,但是不代表可以删除该文件,删除文件的前提是对该文件所在目录有写权限
  • 【x】代表可执行:可以被执行,./文件名执行

rwx作用到目录

  • 【r】代表可读:可以读取,ls查看目录
  • 【w】代表可写:可以修改目录内创建、删除、重命名目录
  • 【x】代表可执行:可以进入该目录

修改权限-chmod

  • u:所有者,g:同组其他用户,o:其它用户,a:所有人(u、g、o的总和)

  • chmod u=rwx,g=rx,o=x 文件目录名,给三种用户权限

  • chmod o+w 文件目录名:给其他用户该文件的写权限

  • chmod a-x 文件目录名:移除所有用户对该文件或目录的执行权限

  • 通过数字变更权限:r=4,w=2,x=1,rwx=4+2+1=7

    • chmod u=rwx,g=rx,o=x 文件目录名相当于chmod 751 文件目录名
  • chown newowner file:改变文件所有者

    • chown [-R] newowner:newgroup file改变文件的所有者和所有组,-R 如果是目录,其下所有子文件递归权限管理

定时任务调度(crontab)

  • 任务调度就是指系统在某个时间执行的特点的命令或程序

    系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
    • 个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份
  • crontab [选项]
    • -e 编辑crontab定时任务
    • -l 查询crontab任务
    • -r 删除当前用户所有的crontab任务
    • service crond restart:重启任务调度

特殊符号:

执行案例:

  • 举例:*/1 * * * * ls -l /etc/>/tmp/to.txt,意思是:每小时的每分钟执行ls -l /etc/ > tmp/to.txt命令
  • crontab -e进行编辑任务,保存后即生效

应用举例

每隔一分钟,将当前的日期信息追加到/tmp/mydate文件中

  • 先编写一个文件 /home/mytask.sh,内容为date >> /tmp/mydate.
  • 给mytask.sh一个可执行权限
  • crontab -e编辑定时任务
  • 添加*/1 * * * * /home/mytask.sh,保存退出
  • 查看/tmp/mydate即可发现日期

进程管理

查看进程

  • ps命令是用来查看目前系统中,有哪些正在进行的进程,以及他们的执行情况,可以不加任何参数,一般使用参数 -aux
    • a:显示当前终端的所有进程信息
    • u:以用户的格式显示进程的信息
    • x:显示后台进程运行的参数
  • ps -ef | more:可查看到父进程
  • ps -aux | grep 进程名 或者 ps -ef | grep 进程名

终止进程kill和killall

  • kill [选项] 进程号:通过进程号杀死进程,-9:强制杀死
  • killall 进程名称:通过进程名杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用
  • 踢掉非法登陆用户:ps -aux | grep sshd查看进程,kill 进程号

查看进程树pstree

  • pstree [选项]:以树状形式查看进程信息
    • -p:显示进程PID
    • -u:显示进程所属用户

服务管理

  • systemctl [start|stop|restart|reload|status] 服务名
    • 查看防火墙状态:systemctl status firewalld.service
    • 关闭防火墙:systemctl stop firewalld.service
    • 开启防火墙:systemctl start firewalld.service

监控

  • top与ps命令很相似,他们都是用来显示正在执行的进程,top与ps命令最大的不同之处,在于top在执行一段时间可以更新正在运行的进程
  • top -d 5:每隔5秒自动更新状态
  • 输入u,再输入用户名,查看某个用户的进程
  • 输入k,再输入进程号,杀死某个进程
  • netstat -anp:查看所有网络服务,|grep 服务名,监听某个服务

包管理器

yum包管理器

  • 基于RPM包管理器,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次性安装所有依赖的软件包。前提是要能联网。
    • yum list | grep xxx:查询yum服务器是否有需要安装的这个软件
    • yum install xxx:安装指定的yum包
  • yum [options] [command] [package]
    • options:可选:-y(安装过程中提示选择全部为yes),-q(不显示安装过程)等
    • command:要进行的操作
    • package:安装的包名
  • yum remove package_name:删除包

配置JDK环境

  • 上传jdk到/opt目录下,解压

  • 添加环境变量

    • vim /etc/profile
    • 在末尾添加:
  • 重启

编写java程序运行:

Author

叶润繁

Posted on

2022-02-21

Licensed under