Linux系统常用命令总结-2022

0、Linux操作系统介绍

Linux是一套免费使用和自由传播的操作系统。 
特点如下: 
    开源免费 
    安全稳定 
    可移植性好 
    高性能

Linux常见的发行版本
    Debian
        Kali Ubuntu 
    Redhat
        Fedora CentOS(企业版) Oracle Linux(企业版) 
    OpenSUSE


Linux使用领域
    应用服务器 
    数据库服务器 
    网络服务器 
    虚拟化云计算 
    嵌入式领域 
    个人PC 
    移动手机

1、Linux目录介绍

        Linux树形结构的文件系统,其中/是系统的根目录,其他所有目录都是它的子节点。

Linux系统常用命令总结-2022_第1张图片 重要文件目录

Linux系统常用命令总结-2022_第2张图片

 2、Linux常用命令

2.1、查看命令

ll= ls -l

ls -al /home
    在linux中以 . 开头的文件都是隐藏的文件
    查看/home目录下所有文件或目录(包含隐藏的文件,隐藏文件都是.xxx)
	-a:(all)全部⽂件,包含隐藏⽂件
	-l: (list)以列表的形式显示,可以看⽂件类型、权限、⼤⼩、修改⽇期

ls -al /usr/bin/  |  more 分屏查看


常用通配符: 
	*代表任意字符。如:ls *.txt
	? :表示一个任意字符
	[abcd] :表示可以匹配a、b、c、d中的任何一个字符  例如:ls 1[ab]h.txt
	[a-f] :匹配从a到f范围内的的任意一个字符 例如:ls 1[a-b]h.txt

文件类型 

普通文件(-)  	
目录(d)  	
符号链接(l)

2.2、切换目录

cd:(change directory)
	快速回家: cd ~
    /home/用户名

2.3、文件操作

2.3.1、创建文件

 touch 234.txt 345.txt 创建多个文件

2.3.2、创建文件夹

mkdir -p 1/2/3  创建多级目录
mkdir -p /data/mariadb/{logs,conf,data} 创建多个文件夹

2.3.3、删除文件或文件夹

  rm -rf 文件或文件夹

2.3.4、复制

cp -rf 源文件 目标文件
cp -rf /home/admin/123.txt /home/admin/124.txt
cp -rf /home/admin/123.txt /home/admin
    -r: 复制文件夹下所有的内容
    -f: 强制性复制及覆盖

2.3.5、移动

mv 源文件 移动的目标地址
mv也可以重命名 如:mv 文件1 文件2
mv /home/admin/123.txt /home/admin/124.txt

2.3.6、查看文件

cat:一次打开文件全部内容(适合查看少量内容)

head: 从头开始查看指定行数内容
    默认显示日志文件前10行内容。
	参数:-n 指定行数
	head -15 xx.log 显示日志文件的前15行内容

tail: 从尾部指定 行数查看日志
    默认显示日志文件最后10行内容
	-n:读取的行数
	-f:动态查看内容
    tail -10 /etc/passwd  查看后10行数据
    tail -n 100 logs/catalina.out  看Tomcat尾部最近100行 
    tail -f catalina.log  实时显示日志的文件信息

    查看一个log文件后300行有关error的错误?如何将这些错误下载下来
	tail -300f xx.log | grep error > error.log

more/less:分屏查看(查看比较大的文件)

        more命令用于分屏显示文件内容,每次显示一页内容

        适用于查看文件内容较多的文件  

more操作键说明:
        空格键: 显示文件的下一页内容
        Enter键 : 滚动显示文件下一行内容
        b : 显示文件的上一页内容(回滚上一页)
        f : 显示文件的下一页内容
        q : 退出

查询脚本SQL总数 

在这里插入图片描述

2.3.7、编辑命令

vi 或 vim
    命令模式:输⼊命令(删除、打开插⼊模式、打开末⾏模式)
        dd:删除光标所在⾏内容
    插⼊模式:
        i、a、o 任意⼀个键就可以打开插⼊模式
        退出插⼊模式:按esc键->回到命令模式
    末⾏模式:
        从命令模式按下:冒号键盘(shi!+;)
        退出保存: :wq w->保存 ;q->退出;

显示行号
    vim打开文件之后输入:set nu

文件中查找关键字
    通过 /关键字 查找出现多个结果,使用  n  字符切换到下一个

2.3.8、搜索文件内容

grep 是一个强大的文本搜索工具,允许对文本进行模糊查找(正则表达式)
grep -n 内容 xxx.log
grep -n error p2p.log  
    -v :显示不包含匹配文本的所有行(相当于取反)
    -n:显示匹配的行及行号
    -i:忽略大小写 

grep 常用正则表在式: 
    ^a : 搜索行首内容以a文本开头的行。 例如: grep –n '^a' 1.txt 
    ke$: 搜索行尾内容以ke文本结尾的行。例如: grep –n 'ke$' 1.txt 
    [Ss]igna[Ll]: 匹配[]中的任意一个字符,搜寻匹配单词为 SignaL、Signal、signaL、signal的行; 例如: grep –n ' [Ss]igna[Ll] '
grep -v 是反向查找的意思,比如 grep -v "grep" 就是查找不含有 grep 字段的行

2.3.9、查找文件命令

find 搜索路径 -iname "⽂件名关键字"
find / -iname "abc.txt"
-i:忽略⼤⼩写  
路径省略掉表示在当前目录下查找文件
文件名可以通过通配符来表示
find . -name test.sh 查找当前目录下所有名为test.sh的文件
find . -name '*.sh' 查找当前目录下所有后缀为.sh的文件

2.3.10、文件权限

Linux系统常用命令总结-2022_第3张图片Linux系统常用命令总结-2022_第4张图片

赋权字⺟法
  chmod u+r ⽂件
    u:表示文件所属用户
    g:表示文件所属的用户组
    o:其他⽤户
    a:所有⽤户

    r->读,w->写,x->执行,-->空
    4->读,2->写,1->执行,0->空

    chmod 变更文件或目录的权限
    chmod u=rwx,g=rx,o=rx a.txt
    u代表所有者,x代表执行权限。 + 表示增加权限。
    chmod a+x /etc/init.d/nginx 赋予所有用户执行的权限
    权限设置说明: + : 增加权限 - : 撤消权限 = : 设定权限


数字法
    chmod 777 ⽂件 授最高权限
    chmod 755 a.txt  数字755代表上面属主 属组 其他用户数字加起来代表的权限
    chmod 000 a.txt 授最低权限

chown 变更文件或目录改文件所属用户和组
    chown u1:public a.txt :变更当前的目录或文件的所属用户和组
    chown -R u1:public dir	:变更目录中的所有的子目录及文件的所属用户和组
    chown mysql.mysql -R /usr/local/mysql  :修改权限为 mysql组 mysql用户

sudo  其他用户权限不够输入命令 

2.3.11、文件创建链接

软链接
    软链接只是指向源文件的一个链接,类似于windows的快捷方式
    说明:快捷⽅式,源⽂件删除,快捷⽅式不能⽤。
    语法: ln -s 源⽂件 链接文件
    源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,仍然能够正常使用
    软链接可以链接目录
    选项:-s 建⽴软连接选项
    ln -s webapp_20201222 last

硬链接(和软连接类似,这个是复制了一份)
 	说明:复制源⽂件,源⽂件删除不影响使⽤。
	语法: ln 源⽂件 ⽬标⽂件

删除软连接
rm -rf last

2.3.12、文件压缩解压

压缩(tar)
	命令: tar -zcvf 压缩⽂件名.tar.gz 要压缩的⽂件
	示例: tar -zcvf tpshop.tar.gz /home/admin/tpshop/*
	选项
		z:调⽤gzip压缩⼯具
        c:创建打包文件
        v:列出归档解档的详细过程,显示进度
        f:指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后    
        t:列出档案中包含的文件 
        
解压(tar)
  	tar -zxvf 压缩包.tar.gz
    tar -zxvf tpshop.tar.gz
    tar -zxvf MySQL-5.6.22-1.el6.i686.rpm-bundle.tar -C /root/mysql 解压到指定目录
    选项:x:解包
    
压缩与解压(zip)
  	压缩: zip ⽂件名.zip ⽬录/*
    解压 :unzip ⽂件名.zip
    提示 :如果要解压到指定⽬录使⽤ -d 路径⽬录;如: unzip -d /home/test ⽂件.zip

压缩与解压(xxx.tar.bz2)
    实际应用是在tar 选项中增加一个-j选项来调用biz2实现打包和压缩的过程
    压缩文件: tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径
    解压缩文件: tar -jxvf 打包文件.tar.bz2

2.4、重定向

    将左侧执行结果保存到文件    
    >:向文件写入内容,如果文件中已有内容,会进行覆盖。
    >>:向文件追加内容,不会覆盖原有内容
    ls -l /home > a.txt    

例如
	ip a > ip.txt
	echo 哈哈哈 > ip.txt echo是显示的意思,回显到控制台。
	ls -al /usr/bin/ > bin.txt 将目录下文件写入到文本。
	tail -20 ping.log | grep 30  > 1.txt

2.5、管道符

  作用:将左侧命令执行结果 通过管道符 作为右侧命令数据的来源
  提示:管道符,通常配合grep命令使用
  示例:tail -20 ping.log | grep 30
  ls -al /usr/bin/  |  more 分屏查看  

2.6、系统相关

2.6.1、系统命令

重启
	reboot 执行命令后立即重新启动操作系统。
	shutdown -r now 重新启动操作系统,shutdown会给别的用户提示
关机
    shutdown 执行命令后,提示一分钟后关闭操作系统。
	shutdown -h now 立刻关机,其中now相当于时间为0的状态
    shutdown -h 20:25 :系统在今天的20:25 会关机
    shutdown -h +10 :系统再过十分钟后自动关机


显示当前所在目录:pwd
清屏:clear
帮助:--help   例如:ls --help
⼿册: man 命令 	例如:man ls 退出:q
who或者w:显示目前登入系统的用户信息
    -q或--count : 只显示用户的登录账号和登录用户的数量 
    -u或--heading : 显示列标题
查看应用的安装路径  
    whereis nginx
hostname 查看当前主机名
cat /proc/version  查看当前操作系统版本信息
cat /etc/issue 查看版本当前操作系统发行信息
uname 显示系统信息
uname -a 显示本机详细信息
依次为:内核名称(类别),主机名,内核版本号,内核版本,内核编译日期,硬件名,处理器类型,硬件平台类型,操作系统名称

date  显示当前系统时间
date -s “2014-01-01 10:10:10“  设置系统时间

du 显示目录或文件的大小。
du –h 显示当前目录的大小 
du -sh ./logs 查看日志文件所占空间大小  
du -sh * 看日志文件的大小(进入到logs下)


free 显示内存状态
    free –m 以mb单位显示内存情况
top命令
    top命令用于实时动态查看系统进程相关信息
	top:相当于windows中的任务管理器,可以查看瞬时进程情况及CPU、内存情况。
	常⽤:性能测试使⽤
	参数:
        p: 根据CPU使用率大小降序显示进程信息
        m:根据内存的大小降序显示进程信息  
        q: 退出top命令或者按 ctrl+c也可以退出


which: 查找⼯具-查找应⽤程序或命令所在位置 
    例如:which mysql、which ls;
    不可找⽂件  
curl验证nginx启动成功
    curl IP:PORT   #端口80可以省略不写
 

远程连接: ssh ⽤户名@服务器ip地址
切换登陆: ssh -l test -p 22 192.168.19.128
远程上传⽂件: scp 要上传⽂件的本地路径及⽂件 服务器登录⽤户名@服务器IP:上传的位置
scp -r cytec [email protected]:/usr/local/src/ 


mysql -uroot -p123456 -h 172.17.18.14:mysql限制了本机登录:只能登录别的机器的

Linux查看当前操作系统版本信息 cat /proc/version

        Linux version 2.6.32-696.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) ) #1 SMP Tue Mar 21 19:29:05 UTC 2017

        2.6.32-696.el6.x86_64为内核版本
Linux查看版本当前操作系统发行信息 cat /etc/issue 或 cat /etc/centos-release

        CentOS Linux release 7.9.2009 (Core)

2.6.2、进程命令

查进程
	ps -aux
	ps -ef
	以上两个没有区别
    常用选项说明: 
         -a : 显示终端上的所有进程,包括其他用户的进程 
         -u : 显示进程的详细状态 
         -x :显示没有控制终端的进程

    ps 正在运行的某个进程的状态
    ps -ef(相当于查看window进程) | grep java寻找进程中包含java关键字的,grep的不算。
    jps 查看进程,jdk中的命令,Bootstrap就是Tomcat的进程。
    jps -l信息会全一点

 
杀进程
 	kill 进程PID
 	强制删除: kill -9 进程PID   
    -9:强制删除选项  

如何使⽤⼀条命令来完成杀java进程
    ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs kill -9
    思路:
		1、获取JAVA进程pid
		2、使用kill -9 pid

Linux系统常用命令总结-2022_第5张图片

2.6.3、端口命令

查看系统中开放哪些端⼝
    netstat 可以查看当前系统网络状态及对应软件使用的端口
 	netstat -anput 想要知道系统中有哪些端⼝已被使⽤,就使⽤此命令
    netstat -ntulp | grep 端口号 查询指定端口
    netstat -lanp | grep 6379 根据端口号得到其占用的进程的详细信息
    netstat –anopt|grep sshd 查看ssh的端口
    ss -anp | grep 21 查看端口
    常用选项说明: 
        常用参数-anplt
        -a 显示所有活动的连接以及本机侦听的TCP、UDP端口
        -l 显示监听的server port
        -n 直接使用IP地址,不通过域名服务器
        -p 正在使用Socket的程序PID和程序名称
        -r 显示路由表
        -t 显示TCP传输协议的连线状况
        -u 显示UDP传输协议的连线状况
        -w 显示RAW传输协议的连线状况

 
lsof查看系统监听端口
    lsof(list open files)是一个列出当前系统打开文件的工具,可以查看系统中正在使用端口的详细信息
    lsof -i :如果不给出条件,则默认显示所有进程打开的所有
 	lsof -i:端⼝号 列出使用端口3306的进程信息,此命令必须在root账户下使⽤  

2.6.4、账户管理

添加账户
    useradd -g 组 ⽤户名
    useradd -g root user01
    useradd test 添加test用户
    useradd test -d /home/t1  指定用户home目录

删除用户
    userdel test 删除test用户(不会删除home目录)
    userdel –r test  删除用户以及home目录

修改密码
    passwd 账户名 用于设置指定用户的密码 (执行命令的用户必须为root)
    passwd user01,为user01用户设置密码

切换⽤户
    su ⽤户名
    su - : 切换到root用户
    su root --> 需要填写root的密码
    由普通用户切换到其他用户时,需要输入密码

2.6.5、退出

命令: exit

多⽤户退出原理:

2.6.6、服务相关

将nginx服务加入chkconfig管理列表:
chkconfig --add redis
chkconfig --add /etc/init.d/nginx

检查mysqld服务是否已经生效
chkconfig --list mysqld
chkconfig --list

设置开机自动启动
    chkconfig nginx on
关闭开机自动启动
    chkconfig nginx off

设置开机启动
    systemctl enable nginx
关闭开机启动设置
    systemctl disable nginx
创建服务
    systemctl enable nginx.service
使用服务命令
    systemctl status nginx

启动redis
    service redis start 
关闭redis
    service redis stop 


开机自启文件配置位置
/etc/init.d 指向-> /etc/rc.d/init.d
    mysqld
    nginx
    redis

2.6.7、安装包相关

安装包在线下载
    wget http://download.redis.io/releases/redis-5.0.7.tar.gz


rpm查找命令
    rpm -qa | grep openssl
rpm查找安装位置
    rpm -ql keepalived
安装rpm包
    rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm
卸载nginx安装文件
    rpm -e nginx-1.20.2-1.el7.ngx.x86_64
    rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

gem包安装
    gem install redis-3.0.gem

2.6.8、\G的作用

行转列

Linux系统常用命令总结-2022_第6张图片

2.6.9、网络通讯命令

获取linux操作系统ip地址: ip a
ifconfig eth0 up 启用eth0网卡(相当于网络设置里边的开启和关闭网卡)
ifconfig eth0 down 停用eth0网卡(在客户端停用网卡,客户端就连不上了,需要到服务器开启网卡才能连接)
ping 192.168.0.1 探测网络是否畅通。
ip add show eth1 从eth1网卡中查看当前IP情况

Linux系统常用命令总结-2022_第7张图片

你可能感兴趣的:(Linux,linux,学习,运维)