且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Linux常用命令总结

更新时间:2022-09-21 23:23:39

端口防火墙相关

开放指定端口:

firewall-cmd --zone=public --add-port=5601/tcp --permanent

开启/重启防火墙:

systemctl start firewalld
firewall-cmd --reload

查看端口号:

netstat -ntlp   #查看当前所有tcp端口·

netstat -ntulp |grep 1935   #查看所有1935端口使用情况·

1、基本属性:

查看文件属性

1、$ll 或者 ls -l $

2、例如在以下图片中:

  • # 代表是root用户 **$ **表示其他用户

  • 文件的第一个属性用$d$表示,$d$ 代表该文件是一个目录文件

    • 当为[d]则是目录
    • 当为[-]则是文件
    • 当为[l]则表示为链接文档
      • 链接:软链接和硬链接 命令 $ln -s 源文件名 链接文件名$(不加-s为硬链接)
  • 接下来的字符中,以三个为一组,且均为[rwx]的参数组合(read可读、write可写、execute可访问)

    • 这三个权限的位置不会改变,如果没有权限,就会出现减号[-]代替
    • 从左至右用0-9这些数字来表示

修改文件属性

  • chgrp:更改文件属主
    • chgrp【-R】属组名 文件名
      • 【-R】 递归更改文件属组,就是该目录所有文件都会更改
    • chown:更改文件属主,也可以同时更改文件属组
      • chown【-R】 属主名 文件名
      • chown【-R】 属主名:属组名 文件名
    • chmod【-R】:更改文件9个属性
      • chmod【-R】xyz 文件或目录
  • Linux文件属性有两种设置方法,一种是数字,一种是符号
  • Linux文件的基本权限就有九个,分别是owner/group/others三种身份各自有自己的read/write/execute权限

小结

  • 每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的:各自分数为:r:4 w:2 x:1
    • 例如当权限为:[-rwxrw-r--]分数为(二进制相加):764
      • owner = rwx = 4+2+1 = 7
      • group = rw- = 4+2+0 = 6
      • others = r-- = 4+0+0 = 4

2、文本操作

文本的复制与粘贴

  • 命令模式下的文本复制(复制+粘贴)
    • yw:将光标所在位置到字尾的字符复制到缓冲区。
    • nyw:将从光标所在位置开始的n个字复制到缓冲区。
    • yy:将光标所在的行复制到缓冲区。
    • nyy:将光标所在的行开始连续n行复制到缓冲区。
    • p:将缓冲区的字符粘贴到光标所在位置。
  • 末行模式下的文本复制
  • $:行x,行y co 行z$
    • 即将文本x-y行的内容,复制到z行下。例如:
      • :1, 4 co 5
      • 当前编辑的文件1-4行复制到5行下,即原来文件内容新增了4行。
  • 寄存器操作
    • 自定义寄存器
      • 从当前光标复制n行到指定寄存器a下:命令模式下:输入["anyy]

3、shell编程

  • shell基础

    • 标准输入(stdin) 编号为0
      • 输入重定向 wc < /etc/passwd 命令解释:表示读取用户的密码文件的行数、字符数、字节数
    • 标准输出(stdout) 编号为1
      • 输出重定向ls > ls.out :将当前目录下所有文件名输出到ls.out文件
      • 输出重定向追加>> command [参数] >> 文件名 wc < /etc/passwd >> ls.out
    • 标准错误(stderr) 编号为2
    • 管道 |
    • 特殊字符
      • 引号
        • 单引号 '' 表示普通字符串
        • 双引号 """ $、\、'、" "几个特殊字符保留特殊功能外,其余都为普通字符串
        • 反引号 (``) 被反引号括起来的命令
      • 注释符
        • # 开头的正文行表示注释行
    • 别名
      • alias alias-name = 'original-command' 可以简写命令
      • unalias alias-name 取消别名
    • 命令历史
      • history 显示机器的历史命令
      • !历史命令编号 即可执行历史命令
  • shell脚本

    • 执行方式
      • ./shell 脚本文件名
      • sh shell脚本文件名
      • . shell脚本名
  • shell变量

    • 一个变量就是内存中被命名的一块存储空间

    • 可以包含数字、字母、下划线,只允许是字母和数字开头

    • 大小写敏感、理论上长度无限制

    • 有四种变量:用户自定义、环境、位置、特殊

      • 用户自定义变量:var=hello var="he llo" echo $hello 定义变量时等号两边不能有空格,若中间有空格要用双引号

        • 清除变量unset variable-name
      • 环境变量:大写字母作为变量名

        • 常用:PATH、HOME、PS1
      • 位置变量(参数):在执行脚本时用于存放shell脚本名及参数

        • test.sh脚本文件内容如下:
        echo $0
        echo $1 $2 $3 $4 $5 $6 $7 $8 $9
        shift
        echo $1 $2 $3 $4 $5 $6 $7 $8 $9
        shift
        echo $1 $2 $3 $4 $5 $6 $7 $8 $9
        
        • 执行脚本文件sh test.sh 1 2 3 4 5 6 7 8 9
        • 执行结果如下:
        test.sh
        1 2 3 4 5 6 7 8 9
        2 3 4 5 6 7 8 9 0
        3 4 5 6 7 8 9 0 0
        
      • 特殊变量

        • $@$*:当 $@$* 不被双引号 " " 包围时,它们之间没有任何区别,都是将接收到的每个参数看做一份数据,彼此之间以空格来分隔$* 会将所有的参数从整体上看做一份数据,而不是把每个参数都看做一份数据。 $@仍然将每个参数都看作一份数据,彼此之间是独立的。
        [root@malongfei /]# set aa bb cc
        [root@malongfei /]# echo "$@"
        aa bb cc
        [root@malongfei /]# echo "$*"
        aabbcc
        
    • shell编程基础

      • 脚本输入/输出

        • 输出命令:echo

        • 导出命令:export 实例如下所示:

          [root@malongfei tmp]# cat export1.sh 
          var1="this is first variable(var)"
          export var2="the is export variable"
          sh export2.sh
          [root@malongfei tmp]# cat export2.sh 
          echo "$var1"
          echo "$var2"
          [root@malongfei tmp]# sh export1.sh
          
          the is export variable
          [root@malongfei tmp]#
          
      • shell的逻辑运算

        • 条件测试
          • test 条件表达式
          • [ 条件表达式 ] 注意:括号前后需要保留空格,否则会报错error
        • 算术运算
          • ···

4、系统管理基础

4.1. 系统启动、运行、关闭

  • 系统启动
    • GRUB
  • 系统运行级别
    • Linux提供7种运行级别(0~6)
      • 0:系统停机状态,系统默认运行级别不能设置为0,否则不能正常启动
      • 1:单用户工作状态
      • 2:多用户状态(没有NFS支持)
      • 3:完全的多用户状态(有NFS),标准运行级别,登陆后进入命令行模式
      • 4:系统未使用,保留。
      • 5:多用户模式,x11控制台,登陆后进入GUI模式。
      • 6:系统正常关闭并重启,默认运行级别不能设置为6,否则不能正常启动
    • 运行级别配置文件
      • vim /etc/inittab
      • id:3:initdefault:
    • 运行级别切换
      • 查看运行级别runlevel
      • init N
    • 系统关闭
      • 命令shutdown halt reboot init
      • 示例:
        • 立即关机重启shutdown -r now
        • 立即关机shutdown -h now
        • 定时5分钟后关机,且发警告消息shutdown +5 "system will shutdown after 5 minutes"

4.2 用户管理

  • 用户类型
    • Linux系统中的用户三种类型:可登录的用户类型两种
      • 超级用户 root
      • 普通用户
      • 特殊用户(系统用户):默认情况无法登录
  • 用户管理方法
    • 通过GUI方式管理
    • 通过修改相关配置文件管理
    • 通过命令管理
  • 用户管理相关配置文件
    • /etc/passwd文件:存放关于账户相关信息
    • /etc/shadow文件:/etc/shadow 的影子文件
    • /etc/group文件:存放用户组相关信息
  • 用户管理相关命令
    • useradd示例:
      • 创建用户时指定mlf用户主目录为/mlf:useradd -d /mlf mlf
      • 创建用户时,指定mlf用户属于student组:useradd -g student mlf
    • usermod示例:
      • 将用户mlf组名改为userusermod -g user mlf
      • 将用户mlf主目录改为/home/testusermod -d /home/test mlf
      • 将用户mlf的登录shell改为/bin/cshusermod -s /bin/csh mlf
    • usedel示例:
      • 删除用户及全部用户主目录userdel -r username
    • groupadd
    • groupmod
    • groupdel
    • groups查看自己属组

4.3 设备管理

  • 设备标识

    • 两部分构成:主设备号次设备号
  • 设备管理命令

    • 磁盘和分区管理命令fdisk

      • fdisk -l /dev/sda2
    • 磁盘分区格式命令mkfs

      • mkfs -t 文件系统类型 分区设备
    • 文件系统检查和修复fsck

    • 查看文件系统的磁盘空间df

    • 统计目录或文件所占磁盘空间的大小du

    • 显示用户或者工作组的磁盘配额信息quata

    • 挂载或卸载设备mount/umount

      • 设置自动挂载:在$/etc/fstab$文件末尾添加:

        /dev/cdrom /mnt/cdrom ext3 defaults 0 0
        

4.4 进程管理

  • 进程分为两类:系统进程和用户进程
  • 进程启动
    • 手工启动
    • 调度启动(at命令、cron命令)
  • 管理进程相关命令
    • ps命令:观察进程状态
    • top命令:动态实时显示系统进程状态
    • renice命令:调整进程优先级
      • renice -number PID
    • sleep命令:进程休眠
      • sleep time
    • at命令:指定时刻执行指定的命令
      • 示例:指定/pwd_script 在3:15执行 at -f /pwd_script 03:15
    • &命令:后台运行进程
    • kill命令:杀死后台进程