Linux常用命令

一、目录切换操作

  1. cd 切换目录
  2.  当前目录:cd .
  3. 上一层目录:cd ..
  4. 当前用户所在的家目录:cd ~
  5. 前一个工作目录:cd -
  6. 查看当前工作目录:pwd

二、系统相关命令

  1. 查看IP地址:(1)ip addr   (2)ifconfig
  2. 清屏命令:clear   ctr+r
  3. 重启机器:reboot
  4. 关闭系统:poweroff
  5. 查看登录用户信息:whoami
  6. 查看终端信息的命令:tty
  7. 更改密码:passwd root
  8. 更改linux主机名:hostnamectl  set-hostname 主机名
  9. 查看当前的主机名称:hostname
  10. 查看系统内核版本信息:cat /etc/redhat-release
  11. 查看系统内核版本号:uname -r
  12. 查看系统内核的所有信息:uname -a
  13. 查看系统多少位:uname -m

三、文件和目录相关命令

linux下,文件是白色的,文件夹是蓝色的

  1. 创建文件和文件夹
    1. 创建文件夹:mkdir 文件夹名
    2. 创建文件:touch 文件名      注:touch -t  时间戳  可以更改文件或文件夹更改时间
    3. 递归创建:mkdir -p a/b c/d  在当前目录下创建a、c文件目录,在a、c下面创建bd文件
  2. 删除文件和文件夹
    1. 删除文件/文件夹:
                参数:-r 向下递归,不管有多少级目录,一并删除       -f 直接强行删除,没有任何提示。
      1. rm  文件名  删除文件
      2. rm -rf 文件夹  删除文件夹下所有的子目录和子目录中的文件
    2. 删除空文件夹r: rmdir
  3. 移动或更改文件名
    1. 更改单个文件名:mv/rename  老文件名  新文件名   如果新文件名存在,则覆盖
    2. 批量更改文件名:rename  foo foo1 foo*  将所有文件名开头为foo的文件更改为foo1...,
    3. 移动文件/文件夹:mv  文件名/目录名   目标路径或文件夹   
  4. 查看文件和文件夹
    1. 查看当前目录下所有文件和文件夹:ls
    2. 显示文件下详细信息:ls -la    -l显示详细信息,-a显示隐藏文件/文件夹
  5. 复制文件/文件夹
    1. 复制文件:cp  文件 复制的文件  
    2. 复制文件夹:cp -r  hu1  hu2  将文件夹hu1中所有的内容复制到hu2下  -r递归地复制子目录
  6. 编辑文件
    1. vi/vim 文件   打开文件
    2. 此时进入命令模式的状态,等待输入命令,一般会输入i/o/a,i是insert插入的意思;o是在光标所在行的下一行写入信息
    3. 输入i之后,进入编辑模式,就可以写入代码了
    4. 按下esc,退出编辑模式,此时回到了命令模式,输入:wq退出且写入文本信息。 :是进入底线命令模式的参数
      :wq 写入文本并退出
      :q 不保存退出
      :q! 强制退出
    5. 常用操作
      w 移动光标到下一个单词
      b 移动光标到上一个单词
      数字0/$ 移动到本行开头/结尾
      gg/G 移动光标到文档的首行/尾行
      /nihao 在整篇文档中搜索nihao字符,向下查找
      ?nihao 在整篇文档中搜索nihao字符,向上查找
      复制,删除,粘贴
      yy 拷贝光标所在行 3yy 拷贝光标坐在的3行
      p 粘贴yy所复制的内容
      x 删除光标所在的字符
      dd 删除光标所在行 5dd 删除光标所在5行
      D 删除光标到行尾的内容
      dG 删除当前行到文档尾部的内容
      u 撤销上一步的操作
       
  7. 查看文件或文件系统的状态
    1. state  hu.txt  查看hu.txt文件的状态,显示文件大小、权限、修改创建时间等信息
    2. state -c %A  hu.txt    用可读性较好的方式输出权限
  8. 文件加锁/解锁或查看文件是否加锁
    1. chattr + a  test.txt  加锁,加锁以后,只能写入数据,不能删除文件
    2. chattr  -a   test.txt  解锁 
    3. lsattr  test.txt   查看文件是否加锁
  9. 查看文件/文件夹所占磁盘空间的大小
    1. 语法: du 参数 文件或目录
      参数: - s 显示总计
                  - h 以k,M,G为单位显示,可读性强
            -a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数
  10. 查看文件内容
    1. cat 查看文本文件内容(一般用于内容较少的)
      cat -n 文件 查看文件显示行号
      cat -E 文件 在每一行的结尾加上$符号2
    2. more 用于查看内容较多的文本,会以百分比形式告知已经看了多少
      按空格 space 翻页、 按下b键是上一页、回车键向下读取内容
      less
    3. head -n 文件 显示文件内容前几行,默认前10行
      tail -n 文件 显示文件内容后几行,默认后10行
      tail -f 文件 持续刷新显示
    4. wc
      1. wc  -l 统计行数
      2. wc -w  统计字数
      3. wc - c 统计字节数

四、用户管理和文件权限

  1. GID
    1. 为了方便管理属于同一组的用户,Linux系统中引入了用户组的概念。通过使用用户组号码,我们可以把多个用户加入到同一个组中,从而方便为组中的用户统一规划权限或指定任务。
    2. Linux管理员在创建用户时,将自动创建一个与其同名的用户组,这个用户组只有该用户一个人
  2. UID
    (1)在Linux系统中,用户有自己的UID身份账号且唯一。
    (2)系统管理员UID为0
    (3)系统用户UID为1~999 Linux安装的服务程序都会创建独有的用户负责运行
    (4) 普通用户UID从1000开始:由管理员创建。
  3. .创建普通用户
    1. 添加用户:useradd 用户名
    2. 设置密码:passwd 密码
    3. 注意:root用户可以修改其他所有人的密码,且不需验证,普通用户只能修改自己的用户
  4. 强制删除用户及家目录
    1. (1)语法:userdel -r 用户名 同时删除用户以及家目录
    2. userdel -f 用户名 强制删除用户
  5. su切换用户
    1. 语法: su - username - 号很重要,意味着完全切换到新的用户,即环境变量信息也更新为新用户信息
    2. 注意:一般情况下,生产环境避免直接用root用户,除非有特殊系统维护需求,使用完立刻退回普通用户
    3. 超级用户root切换普通用户无需密码,普通用户切换root,需要输入密码。
    4. $符号是普通用户命令提示符,#是超级管理员的提示符
  6. sudo命令
    1. (1)语法:sudo 参数 选项 用来以其他身份来执行命令,默认是root。需要在/etc/sudoer中设置可执行sudo指令的用户。否则会报错。用户使用sudo时,必须先输入密码,5分钟有效期,之后需要重新输入密码。
    2. 参数 - u 用户 以指定的用户作为新身份,不加此参数,默认root为新身份   
    3. -v 延长密码有效期限5分钟
  7. Linux权限的目的是保护账户的资料
    1.Linux权限的三种身份
    (1)user/owner 属主,文件属于哪个用户
    (2)group 属组,文件属于哪个组
    (3)others 其他人,既不是users,也不是group,就是other
    2.文件的类型
    (1)- 一般文件
    (2)d 文件夹
    (3)l 软连接(快捷方式)
    (4)b 块设备,存储媒体文件为主
    (5)c 代表键盘,鼠标等设备
    3.文件权限
    (1)r read可读,可以用cat等命令查看
    (2)w write写入,可以编辑或者删除这个文件
    (3)x executable,可以执行,
    4.目录权限
    (1)r 可以对此目录执行ls 列出所有文件
    (2)w 可以在这个目录创建文件
    (3)x 可以cd进入这个目录,或者查看详细信息
    5.权限与数字的转换
    (1)r 4 (2)w 2 (3)x 1
    6.修改文件权限的属组和属主
    普通用户只能修改自己的文件名,时间与权限。修改其他用户权限,只能用root用户
    (1)chown 用户名 对象(文件或文件夹) 修改属主,只能在root下面使用
    (2)chgrp 用户名 对象(文件或文件夹) 修改属组,只能在root下面使用
    7.修改文件/文件夹权限
    (1)chmod u/g/o+rwx 文件 添加权限
    (2)chmod u/g/o - rwx 文件 减少权限
    (3)chmod 777/000 文件

五、防火墙和crond服务

  1. selinux功能(linux自带的防火墙)
    1. selinux是美国国家安全局(NSA)对于强制访问控制的实现,这个功能管理员又爱又恨,大多数生产环境也是关闭的做法,安全手段使用其他方法。大多数ssh连接不上虚拟机,都是因为防火墙和selinux阻挡了
    2. (1)getenforce 获取selinux的状态(2)setenforce 0 临时关闭selinux,重启后selinux又会生效(3)永久关闭selinux,写入到selinux配置文件:vim /etc/selinux/config,将SELINUX=disabled,重启后selinux永久关闭
  2. iptables防火墙
    1. 在企业环境中,一般只有配置外网ip的linux服务器才会开启防火墙,但是对于高并发流量的业务服务器仍然是不能开启的,会有很大性能损失,因此需要更nb的硬件防火墙
    2. (1)iptables -L 查看防火墙规则(2)iptables -F 清空防火墙规则
  3. 防火墙
    1. systemctl stop firewalld 永久关闭防火墙软件 
    2.  systemctl status firewalld #查看防火墙状态 
    3. systemctl disable firewalld#关闭防火墙开机启动     
    4. systemctl is-enabled firewalld.service#检查防火墙是否启动
  4. 后台运行,到了预定时间就会自动执行的任务叫做计划任务。
    1. crontab 参数 命令被用来提交和管理用户的需要周期性执行的任务。
      -e:编辑该用户的计时器设置;
      -l:列出该用户的计时器设置;
      -r:删除该用户的计时器设置;
      -u(用户名):指定要设定计时器的用户名称
    2. crontab 配置文件
      在/etc目录下有一个crontab文件,就是系统任务调度的配置文件
    3. crontab 任务配置基本格式
      * * * * * command
      分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天)  命令
      第1列表示分钟1~59 每分钟用*或者 */1表示
      第2列表示小时1~23(0表示0点)
      第3列表示日期1~31
      第4列表示月份1~12
      第5列标识号星期0~6(0表示星期天)
      第6列要运行的命令
      Ceontab 的符号含义
      星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
      逗号(,):可以用逗号隔开的值指定一个列表范围, 例如,“1,2,5,7,8,9”
      中杠(-):可以用整数之间的中杠表示一个整数范围, 例如“2-6”表示“2,3,4,5,6”
      正斜线(/):可以用正斜线指定时间的间隔频率, 例如“0-23/2”表示每两小时执行一次。 同时正斜线可以和星号一起使用, 例如*/10,如果用在minute字段,表示每十分钟执行一次。
    4. 执行流程:
      1. 先通过执行 crontab-e 进入当前用户的计时器则设置
      2. 写任务计划书,命令必须加上绝对路径,否则会出现这种情况:从日志中看,确实触发了计划任务的执行,但是命令却没有执行成功,比如* * * * * reboot就会出现这种情况,需要将reboot写成/usr/sbin/reboot

      3. 退出当前用户的计时器设置,通过crontab-l进行查询,查询写入的计划任务

      4. 再开启一个服务,切换到指定的目录下面,等待计时任务的执行

      5. 查看计划任务的执行:tail -f 路径

六、其他常用命令

  1. 搜索命令-grep
    1. 一种强大的文本搜索工具,他能使用正则表达式搜索文本,并把匹配的行打印出来。
    2. 语法: grep 参数 --color=auto 字符串 filename
      -i :忽略大小写
      -n :输出行号
      -v :反向选择,即排除我输入的内容
      --color=auto:给关键词部分添加颜色
  2. 别名命令-alias
    1. alias 查看系统别名
      例: alias rm = 'echo do not use rm' 设置rm别名
      alias rm = ‘rm -i’ 把别名设置为初始的样式
  3. 跨机拷贝命令
    1. scp 用于Linux之间复制文件和目录,远程文件拷贝命令
      (2)语法: scp 参数 本地源文件 远程文件标记
      参数: -r :递归复制整个目录
      -v :详细方式输出
      -q :不显示传输进度条
      -c :允许压缩
      例子:scp root@192.168.1.11:/home/test.txt/ /tmp/hu.txt 复制远程文件到本地
      scp /tmp/chao.py root@192.168.1.11:/home/test.txt/ 传输本地文件到远程地址
  4. linux时间同步
    1. (1)date 显示当前时间
      date + ‘%Y-%m-%d %T’格式化输出时间
      date +%F 按照年月日格式输出
      (2)Linux下系统时间和硬件时间不会自动同步,在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。
      (3)hwclock 查看硬件时间
      hwclock -w 以系统时间为基准,修改硬件时间
      hwclock -s 以硬件时间为基准,修改系统时间
  5. top命令 --用于动态得监视进程活动与系统负载等信息
  6. wget:(1)语法: wget 参数 下载地址 用于在终端下载网络文件
  7. df命令
    1. df命令用于显示磁盘分区上的可使用磁盘空间。默认单位为KB,可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息
    2. df 参数
      -h 以可读性较高的方式来显示信息。
      -k 指定区块大小为1024字节
  8. kill命令
    1. kill命令用来删除执行中的程序或工作。
    2. kill 进程号 杀死进程以及相关进程信息
      kill -9 进程号 强制杀死进程,无论进程运行在什么状态,一定会杀死。
  9. tar解压命令
    1. Linux的文件打包工具最出名的是tar。tar命令用来压缩和解压文件。tar本身不具有压缩功能,他是调用压缩功能实现的。
    2. 语法:tar -xf 压缩文件 ->解压文件
      例:tar -cf ./oldboy.tar oldboy.txt
                tar -cf 压缩路径 被压缩的文件 ->压缩文件
    3. tar -tf 压缩文件 查看缩文件里面的内容
  10. ps -ef查看进程状态
    • ps -ef 查看系统中的进程状态
      -a 显示所有进程
      -u 用户以及其他详情信息
  11. netstate:(1)netstat -tunlp 用于打印Linux中网络系统状态和端口信息
  12. 软链接
    1. 软连接也叫作符号链接。类似于windows的快捷方式,常用于安装软件的快捷方式配置,如python,nginx等。
    2. 语法: ln -s 目标文件 软链接名 设置软连接之后可以直接通过软连接名访问
    3. 软连接只是一个别名,删除软连接不会影响源文件,但删除了源文件,软连接就没用了
  13. tree命令:  tree 目录名 以树状图列出目录的内容
  14. free命令
    1. free 令会显示内存的使用情况
      -b  以Byte为单位显示内存使用情况。
      -k  以KB为单位显示内存使用情况。
      -m  以MB为单位显示内存使用情况。
      -h  以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。
  15. find命令 -在目录结构中根据指定条件查找文件
    1. 基本用法
      1. 列出当前目录和子目录下的所有文件: find . 
      2. 查找特殊的目录或路径 
        1. find ./test  列出./test目录和子目录下的所有文件
        2. find ./test -name abc.txt   或者 find ./test -name "*.txt" 查找指定名称的文件
      3. 限制目录查询的深度
        1. find ./test -maxdepth 2 -name "abc.txt"  
      4. 反向查找-查找不满足条件的文件
        1. find ./test -not -name abc.txt   其中-not 可以用!代替,
      5. 结合多个条件查找
        1. find ./test -name "abc*" ! -name"*.php"
        2. find ./test -name "abc*" -o ! -name"*.php"  OR操作符可以用-o代替
      6. 只查找文件或目录
        1. 只查找文件:find ./test -type f -name "abc*"
        2. 只查找目录:find ./test -type d -name  "abc*"
      7. 同时在多个目录中查找
        1. find ./test ./dir2 -type f -name "abc*"
    2. 基于文件权限和属性的查找
      1. find .  -type f  -perm  0664 查找所有具有0664权限的文件
      2. find . -maxdepth 1 -perm /u=r 查找只读文件 
    3. 基于文件拥有者和用户组的查找
      1. find . -user hsj  查找属于hsj用户的文件
      2. find . -group ddd   查找属于ddd用户组的文件
  16. awk命令

    awk是处理文本文件的一个应用程序,几乎所有 Linux 系统都自带这个程序。

    它依次处理文件的每一行,并读取里面的每一个字段。对于日志、CSV 那样的每行格式相同的文本文件,awk可能是最方便的工具。

  17. sed命令
    1.  是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值