当前位置: 首页 > 工具软件 > Linx > 使用案例 >

Linx常见基本指令

冷翼
2023-12-01

1 安装

vm下的CentOS7安装教程:https://blog.csdn.net/qq_43647707/article/details/119300748

5 Linux远程操作

XShell(远程登陆到Linux的软件)
XFtp5(远程上传下载和)

6 XShell使用

  1. 在Linux用setup指令查看ssh服务是否开启,关闭防火墙(空格确定,Tab换行)

  2. 用ifconfig指令查看ip地址

  3. 在XShell使用新建会话连接到Linux系统

  4. 输入用户名和密码

    • 【sudo service sshd start】打开ssh监听

    • 【systemctl enable sshd】开机自动启动sshd服务

      XFtp使用
      1、新建会话(主机填Linux的ip地址,协议选择SFTP)
      2、解决SFTP中文乱码(选择属性—选项—勾选使用UTF-8编码—点击确定—刷新)

7 vi和vim编辑器

三种模式:

  1. 一般模式/正常模式:以vim打开一个档案直接进入一般模式
  2. 插入模式(编辑模式):可以输入内容,按i即刻进入
  3. 命令行模式:可以完成相关指令

7.1 vi和vim模式的相互切换

  • 在命令行下输入:vim XXX
  • 进入正常模式——输入【q】或【a】(a代表把这个光标定位到当前行的下一行)进入编辑模式——输入【ESC】返回一般模式
  • 进入正常模式——输入【:】或【/】进入命令模式—输入【ESC】返回一般模式
  • 在命令行模式下——输入【wq】——保存并退出
  • 在命令行模式下——输入【q】——退出不保存
  • 在命令行模式下——输入【q!】——强制退出,就算修改也不作保存处理

7.2 vi和vim的快捷键

  1. 拷贝当前行【yy】,拷贝当前行向下的5行【5yy】,并【p】粘贴
  2. 删除当前行【dd】,删除当前行向下的5行【5dd】
  3. 在文件中查找某个单词,进入命令行模式【/关键字】, 【回车】查找,输入【n】就是查找下一个
  4. 设置文件的行号,取消文件的行号,进入命令行模式下【:set nu】 和 【:set nonu】
  5. 编辑/etc/profile文件,使用快捷键到底文档的最末行【G】和最首行【gg】(这些都是在正常模式下执行)
  6. 在一个文件中输入“hello”,然后又撤销这个动作【u】
  7. 编辑/etc/profile文件,并将光标移动到20行【shift+g】
  • 测试
    输入字符,完成后按【ESC】返回一般模式,按【yy】复制光标所在命令行,按【p】粘贴
  • 测试:
    1. vim Hello.java
    2. 输入代码之后按【ESC】,接着输入【:wq】
    3. 输入vim Hello.java查看该文件,输入【!q】命令退出(退出不保存)
    4. 取消着色记号【:noh】
    5. 光标移动到第二十行第一步:显示行号【:set nu】;第二步:输入【20】这个数字;第三步输入【Shift+g】

8 Linux关机&重启指令

  • shutdown -h now 立刻进行关机

  • shudown -h 1 “hello,1分钟后会关机了”

  • shutdown -r now "现在重新启动计算机“

  • halt 关机,作用和上面一样

  • reboot 现在重新启动计算机

  • sync 把内存的数据同步到磁盘

    注意:不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中

  • 用户登陆和注销
    在提示符下输入【logout】即可注销用户
    注意:在图形界面下使用【logout】无效,只能在运行级别3下有效

9 用户管理

  • 添加用户【useradd [选项] 用户名】
  • 给用户指定或修改密码【passwd 用户名】
  • 如果没有说明选项,则将创建一个和用户名同名的家目录
  • 也可以通过【useradd -d 指定目录 新的用户名】,给新创建的用户指定家目录
  • 删除用户保留家目录【userdel 用户名】
  • 删除用户不保留家目录【userdel -r 用户名】
  • 查询用户信息【id 用户名】
  • 切换用户【su 用户名】,输入【exit】回到之前的用户
  • 使用【whoami/who am i】指令可以查看当前用户
  • 用户组:类似于角色,系统可以对有共性的多个用户进行统一管理
    1. 新增组【groupadd】
    2. 删除组【groupdel】
    3. 新增用户时直接加上组【useradd -g 用户组 用户名】
    4. 修改用户组【usermod -g 用户组 用户名】
  • 用户和组的相关文件
    1. 用户配置文件路径(用户信息)/etc/passwd
    2. 组配置文件路径(组信息)/etc/group
    3. 口令配置文件路径(密码和登陆信息,是加密的)/etc/shadow
    4. 注意:使用vim进入查看时记得在etc前加/

10 Linux实用指令

指令运行级别:
0:关机
1:单用户(找回丢失的密码)
2:多用户无网络服务
3:多用户有网络服务
4:保留
5:图形化界面
6:重启

  • 系统的运行级别配置文件/etc/inittab
    基本语法【init[012356]】
    centos7修改默认运行级别为命令行【systemctl set-default multi-user.target】
    修改默认运行级别为图形化界面【systemctl set-default graphical.target】
  • 如何找回丢失的root密码
    思路:进入到单用户模式,然后修改密码
    1. 开机在引导时,看到界面后输入e
    2. 进入界面后再linux16这行输入 rd.break
    3. 进入单用户只读模式switch_root:/#
    4. 输入【mount -o remount,rw /sysroot】重新挂载根目录读写权限,并使用【chroot /sysroot】(注意/前面的空格)命令更改根目录
    5. 使用【passwd】更改密码
    6. 输入【touch /.autorelabel】使selinux生效
    7. 输入【exit】退出,并【reboot】重启

10.1 帮助指令

  1. 【man [命令或配置文件]】(功能描述:活得帮助信息)
  2. help命令(功能描述:获得shell内置命令的帮助)

10.2 文件目录类指令

  1. pwd指令:显示当前工作目录路径
  2. ls指令:查看当前目录的所有信息 【ls -l】查看目录详细信息(也可以用【ll】)
  3. cd指令:切换目录(【cd…】回到当前目录的上一级目录、【cd】或【cd ~】回到自己家目录)
  4. mkdir指令:创建目录 【mkdir -p】创建多级目录
  5. rmdir指令:删除空目录 【rm -rf [路径]】删除非空目录
  6. touch指令:创建空文件(可以一次性创建多个空文件)
  7. cp指令:拷贝文件到指定目录(强制覆盖【\cp】) 【cp -r [路径]】递归拷贝
  8. rm指令:删除文件或目录 【rm -r】删除目录 【rm -f】强制删除不提示
  9. mv指令:移动文件与目录或重命名
  10. cat指令:以只读的方式查看文件内容 【cat -n】查看并显示行号
  11. more指令:以全屏方式按页显示文本文件的内容,
    空格:下翻一页;ENTER向下翻一行;q:立刻离开;
    Ctrl+F:向下滚动一屏;Ctrl+B返回上一屏;=:输出当前行号;f:输出文件名和当前行号
  12. less指令:分屏查看文件内容,根据显示需要加载内容(对于大型文件具有较高的效率)
  13. ">“和”>>"指令:
    ">"输出重定向:会将原来的文件的内容覆盖
    ">>"追加:不会覆盖原来文件的内容,而是追加到文件的尾部
    【ls -l > 文件】:列表的内容写入到文件中(覆盖写)
    【ls -al >> 文件】:列表的内容追加到文件的末尾
    【cat 文件1 > 文件2】:将文件1的内容覆盖到文件2
    【echo 内容 >> 文件】:直接添加内容到文件末尾
  14. echo指令:输出内容到控制台
  15. head指令:显示文件开头部分内容,默认情况下显示文件的前十行内容。
    【head -n 5 文件】显示文件前五行内容(5可以是任意数字)
  16. tail指令(工作中常用):输出文件中尾部的内容,默认情况下tail指令显示文件的后十行内容
    【tail -n 5 文件】:查看文件后五行的内容(5可以是任意数字)
    【tail -f 文件】:实时追踪该文档的所有更新(Ctrl+c退出)
  17. ln指令:软连接,类似于windows里的快捷方式【ln -s [原文件或目录] [软连接名]】(用rm -rf删除时不要再软连接名后加/)
  18. history指令:查看已经指令过的历史命令,也可以执行历史指令
    【history 10】显示最近执行的十个历史指令 【![123]】执行第123个历史指令

10.3 时间日期类相关指令

1、date指令:【date】显示当前日期;【date “+%Y”】显示当前年份;
【date “+%Y-%m-%d %H:%M:%S”】显示当前年月日时分秒
【date -s 1998-07-22 12:30:30】设置日期为1998年7月22日12时30分30秒
2、cal指令:查看日历指令 【cal 2021】显示2021年日历

10.4 搜索查找类

  1. find指令:从指定目录向下递归遍历各个文件【find [范围] [选项] [文件]】
    【find /home -name hello.txt】查找home目录下名为hello的txt文件
    【find /opt -user jtxw】查找opt目录下文件拥有者是root的文件
    【find / -size +20M】查找根目录下文件大小大于20M的文件(+n大于 -n小于 n等于
  2. locate指令:快速定位文件路径(第一次运行前必须使用updatedb指令创建locate数据库)
  3. grep指令:过滤查找 【cat hello.txt | grep yes】查找hello.txt文件中的“yes”
  4. 管道符号|:将前一个命令的处理结果传递给后面的命令处理 【cat hello.txt | grep -ni yes】(-n显示行号 -i不区分大小写)

10.5 压缩和解压

gzip/gunzip指令

【gzip 文件】压缩文件成为*.gz文件(压缩文件后不保留源文件) 【gunzip 文件.gz】解压缩文件

zip/unzip指令

【zip [选项]】压缩文件和目录 【unzip】解压缩
【zip -r mypackage.zip /home/】压缩home目录下所有文件到新建的mypackage.zip文件
【unzip -d /opt/tmp/ mypackage.zip】解压mypackage.zip文件到指定目录/opt/tmp下

tar指令

打包指令,打包后的文件是.tar.gz文件
【tar [选项] XXX.tar.gz 文件内容】
【-c】产生.tar打包文件;【-v】显示详细信息;
【-f】指定压缩后的文件名;【-z】打包同时压缩;
【-x】解包.tar文件
【tar -zcvf a.tar.gz a1.txt a2.txt】新建一个a.tar.gz文件,将a1.txt和a2.txt打包压缩到该文件并显示压缩详细信息
【tar -zxvf a.tar.gz】解压a.tar.gz文件到当前目录下
【tar -zcvf myhome.tar.gz /home/】将/home目录下所有文件打包压缩到myhome.tar.gz文件下
【tar -zxvf myhome.tar.gz -C /opt/tmp/】将myhome.tar.gz解压到指定目录/opt/tmp下(解压到的目录需要事先存在)

11 组管理和权限管理

文件所有者:一般为文件的创建者,查看文件的所有者【ls -ahl】;【chown 用户名 文件名】修改文件所有者
修改文件所在组【chgrp 组名 文件名】
改变用户所在组【usermod -g 组名 用户名】
改变该用户登陆的初始目录【usermod -d 目录名 用户名】
- rw- r - - r - -. 1 tom police 6 3月 18 19:24 ok.txt
【-】文件的类型:-普通文件 d:目录 l:软连接 c:字符设备 b:块文件,硬盘
【rw】文件所有者的权限
【r - -】文件所在组的用户拥有的权限
【r - -】文件其他组的用户的权限
【1】如果是文件,表示硬链接的数,如果是目录则表示该目录的子目录的个数
【6】文件的大小(如果是目录就为4096)
【3月 18 19:24】文件最后的修改时间

- rwx权限详解:

- 作用到文件:【r】代表可读:可以读取查看
      【w】代表可写:可以修改但不可以删除,对该文件所在的目录有写权限才可以删除
      【x】代表可执行

- 作用到目录:【r】代表可读;【w】代表可写:可以修改,目录内创建+删除+重命名目录
      【x】代表可执行:可以进入该目录

11.1 修改权限 【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)—(111=7,110=6,101=5)
【chmod 751】相当于【chmod u=rwx,g=rx,o=x 文件目录名】

【-R】如果是目录,则使其下所有子文件或目录递归生效
【chown -R tom kkk】将kkk目录下所有的文件,包括子目录和子文件下的文件,递归地将文件和目录的所有者修改成tom
【chgrp -R shaolin kkk】将kkk目录下所有的文件,包括子目录和子文件下的文件,递归地将文件和目录的所有组修改成shaolin
crond任务调度:【crontab [选项]】
(-e 编辑crontab定时任务;-l查询crontab任务;-r删除当前用户所有的crontab任务)
如果是简单任务可以直接在crontab中加入任务即可,对于复杂的任务需要写脚本(shell编程)
第一个代表分钟(0-59),第二个代表时(0-23),第三个代表日(1-31),第四个代表月(1-12),第五个代表一周当中的星期几(0-7(0和7都代表星期日))
【crontab -e】—>>【/1 * * * * ls -l /etc >> /tmp/to.txt】每一分钟在/tmp目录下的to.txt文件中追加/etc目录详情
】代表任何时间
【,】代表不连续的时间,比如【0 8,12,16 * * * 命令】,就代表在每天的8点0分,12点0分,16点0分都执行一次命令
【-】代表连续的时间范围,比如【0 5 * * 1-6 命令】,代表在周一到周六的凌晨5点0分执行命令
/n】代表隔多久执行一次,比如【/10 * * * * 命令】,代表每隔10分钟就执行一遍命令

查看系统的分区和挂载的情况【lsblk -l】

11.2 如何增加一块硬盘

 1. 虚拟机添加硬盘【虚拟机—设置
  1. 分区【fdisk /dev/sdb】
    3. 格式化【mkfs -t ext4 /dev/sdb】
    4. 挂载(先创建newdisk文件,挂载【mount /dev/sdb /home/newdisk】
    5. 设置可以自动挂载
    1. 【vim /etc/fstab】
    2. 添加【/dev/sdb /home/newdisk ext4 defaults 0 0】并保存【mount -a】
    6. 卸载【umount /dev/sdb1】
    7. 永久挂载:通过修改/etc/fstab实现挂载,添加完成后执行【mount -a】即刻生效

11.3 磁盘情况

磁盘情况查询【df -h】
查询指定目录的磁盘占用情况【du -h】
【-s】 指定目录占用大小汇总
【-h】 带计量单位
【-a】 含文件
【–max-depth=1】子目录深度
【-c】列出明细的同时,增加汇总值
统计/home文件夹下文件的个数【ll /home | grep “-” | wc - l】
统计/home文件夹下目录的个数,包括子文件夹里的【ll -R /home | grep “d” | wc -l】
以树状显示目录结构【tree】(如果未安装可以使用【yum tree】安装

12 Linux网络配置

12.1 第一种(自动获取)

网络连接设置—勾选自动连接
缺点:启动后会自动获取IP地址可能不一样,不适用于作服务器,因为服务器的ip是固定的

12.2 第二种(指定固定ip地址)

​ 1、命令行输入【vi /etc/sysconfig/network-scripts/ifcfg-ens3】
​ 2、添加【IPADDR=192.168.243.128】(指定ip)
​ 【GETWAY=192.168.243.2】(网关)
​ 【DNS1=192.168.243.2】(和网关保持一致即可)
​ 修改【BOOTPROTO=static】(以静态的方式获取ip))、
​ 【ONBOOT=yes】(启用boot)
​ 3、重启服务【service network restart】

13 进程管理

13.1 进程

查看目前系统中正在执行的进程【ps】
-a:显示当前终端的所有进程
-u:以用户的格式显示进程信息
-x:显示后代进程运行的参数
USER用户名;PID进程id;%CPU占用的cup;%MEM占用的内存;VSZ使用的虚拟内存;
RSS使用物理内存情况;TTY使用的终端;STAT进程的状态(s:休眠 r:运行);START启动时间;
TIME占用cpu的总时间;COMMAND进程执行时的命令行
查看进程的父进程【ps -ef】
查看sshd的父进程【ps -ef | grep sshd】

通过进程号杀死进程【kill [选项] 进程号】(-9:强制杀死进程)
通过进程名称杀死进程,也支持通配符【killall】
查看进程树【pstree】(-p:显示进程的PID;-u:显示进程的所属用户)

13.2 服务(service)管理

【service 服务名 strat|stop|restart|reload|status】(CentOS7.0之后用的是systemctl)
关闭防火墙状态【service firewalld stop】(只是临时生效,重新启动后恢复默认设置)
通过【telnet ip 端口】检查Linux的某个端口是否在监听,并且可以访问
查看服务名:1、使用setup—系统服务(*自动启动)
2、/etc/init.d/服务名称

【systemctl list-unti-files】可以给每个服务的各个运行级别设置自启动/关闭

【top】动态监控进程
u:监视特定用户
k:杀死进程(输入PID)
P:按照进程PID大小排序
M:按照内存使用大小排序
【top -d 10】指定系统状态更新的时间,十秒刷新一次

【netstat】查看系统网络情况
-an:按照一定顺序排列输出
-p:显示哪个进程在调用

14 rpm和yum

【rpm -qa】查询所安装的所有rpm软件包
【rpm -qi 软件包名】查询软件包信息
【rpm -ql 软件包名】查询软件包中的文件
【rpm -qf 文件全路径名】查询文件所属的软件包
【rpm -e rpm包的名称】卸载rpm包
【rpm -e -nodeps XXX】强制删除(不推荐)

【rpm -ivh RPM包全路径名称】安装rpm包
(i:install 安装;v:verbose说明;h:hash进度条)
1、先找到firefox的安装包rpm包,需要挂载上安装centos的iso文件,然后到/media/下去找rpm
2、进入package文件夹【cd /run/media/jtxw/CentOS 7 x86_64/Package】找到火狐的rpm文件
3、拷贝文件到/opt目录下【cp firefox-52.2.0-2.el7.centos.x86_64.rpm /opt/】
4、进入/opt目录安装firefox【rpm -ivh firefox-52.2.0-2.el7.centos.x86_64.rpm】

yum是一个shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载rpm包并安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包(前提是可以联网)
【yum list|grep XXX】查询yum服务器是否有需要安装的软件
【yum install XXX】安装指定的yum包

 类似资料: