Linux命令学习总结(持续更新)

Linux命令学习总结

基本命令

  • ls 查看当前目录
    • -l 显示详细信息
    • -a 显示所有文件(.开头的隐藏文件)
  • pwd 查看当前位置的绝对路径
  • clear 清空屏幕
  • cd 改变当前目录
  • mkdir 创建目录
    • -p 递归创建目录
  • touch 创建文件
    • 创建带空格的文件 touch "a b.txt"
  • rmdir 删除空目录
  • rm 删除文件或目录
    • -r 删除目录
    • -f 强制删除
  • cp 复制文件
  • mv 移动文件,可以用来重命名文件
  • 查看文件内容
    • cat 查看文件所有内容
    • more 支持向下翻页
    • less 支持双向翻页
    • head 查看文件的前几行(默认前10行)
      • head -5 test.txt 查看前5行
    • tail 查看文件的后几行(默认后10行)
      • tail -3 test.txt
      • tail -f test.log 通常用来查看日志文件,文件内容改变后直接输出到屏幕上

目录结构

  • /: 表示系统根目录,系统最外层的顶层目录,系统的初始目录
  • ~: 表示用户的主目录,每一个用户都有一个用户名相同的主目录
  • /root: 超级管理员的主目录
  • /home/***: 普通用户的主目录,每次系统登录都会先进入到主目录中
  • /bin: 该目录下为系统所需要的命令
  • /boot: 启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
  • /dev: dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
  • /etc: 系统中的配置文件
  • /home: 用户的主目录
  • /lib: 存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库
  • /lost+found: 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
  • /media: 光盘、U盘的挂载点
  • /mnt: 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt上,然后进入该目录就可以查看光驱里的内容了
  • /opt: 软件包安装的目录
  • /tmp: 临时的文件目录,在用户系统运行过程中会产生临时文件 (重启之后该目录清空)
  • /usr: 用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录
  • /var: 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

用户和用户组

  • 添加新用户 useradd [选项] <用户名>
    • -c: 指定一段描述性注释
    • -d: 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
    • -g: 指定用户所属用户组
    • -G: 指定用户所属的附加组
    • -s: 指定用户登录使用的Shell
    • -u: 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
  • 删除用户 userdel [选项] <用户名>
    • -r: 同时连用户主目录、系统文件中的记录(/etc/passwd/etc/shadow /etc/group)一起删除
  • 修改用户 usermod [选项] <用户名>
    • 选项与useadd一致
  • 修改密码 passwd [选项] <用户名>
    • -l: 锁定口令,即禁用账号
    • -u: 口令解锁
    • -d: 使账号无口令
    • -f: 强迫用户下次登录时修改口令
  • 添加用户组 groupadd [选项] <用户组名>
    • -g: 指定新用户组的组标识号(GID)
    • -o: 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
  • 删除用户组 userdel [选项] <用户组名>
  • 修改用户组 usermod [选项] <用户组名>
    • -g: 为用户组指定新的组标识号(GID)
    • -o: 与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
    • -n: 将用户组的名字改为新的名字
  • 切换用户组,如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。newgrp <目标用户组>
  • /etc/passwd文件
    • master:x:500:0:Master:/home/master:/bin/bash
    • 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
  • 切换用户 su
    • su root 切换到root用户
    • su - root 切换到root用户,并加载该用户的环境变量

文件权限相关

文件权限

  • 权限属性
    • 0: d代表目录,-代表文件
    • 123: 文件所有者 user u
    • 456: 所属组 group g
    • 789: 其他用户 other o
    • 数字表示
      • r: 4
      • w: 2
      • x: 1
  • 修改权限
    • 只有文件所有者和超级管理员才可以修改
    • 数字方式修改: chmod 755 aaa.txt
    • 字母方式修改: chmod u+rwx,g+rx,o+rx aaa.txt
  • 修改所有者
    • 只有超级管理员可以修改
    • 修改用户 chown
    • 修改用户组 chgrp
    • chown -R user1:user1 test 递归修改文件所有者,包括用户和用户组

vi编辑器

  • 三种模式
    • 命令模式
    • 编辑模式
    • 最后行模式
  • 进入编辑模式
    • a 附加
    • i 插入
  • 保存、退出
    • 最后行模式下:
      • w 保存
      • q 退出
      • x 保存&退出
      • q! 强制退出
    • 命令模式下:
      • ZZ 保存&退出
  • 显示行号: 最后行模式下 set nu
  • 删除
    • 删除行
    • 单行 dd
    • 多行 3dd(向下3行)
    • 自选方向多行 d 3 up/down
    • 向上删除单行 d up
    • 删除单个字符 x
  • 撤销 u
  • 粘贴 p
  • 复制当前行 yy
  • 移动光标
    • 至尾行 G
    • 至首行 gg
    • 在最后行模式下,输入行号
  • 查找
    • 最后行模式下 /关键词
  • 替换
    • 2,$s/login/666/g
    • 从第2行至最后一行
    • s代表替换
    • 将login替换为666
    • g代表通行
  • 附快捷键图

vim快捷键

网络管理

配置网络

  • 查看本机IP ifconfig
  • 修改主机名
    • 临时 hostname <主机名>
    • 永久 vim /etc/hostname
  • 修改网络映射
    • vim /etc/hosts
    • IP 主机名
  • 静态IP配置 vim /etc/sysconfig/network-scripts/ifcfg-eth0
  • 重启网络配置 service network restart

查看网络状态

  • netstat [命令选项]
  • -t TCP
  • -u UDP
  • -l 监听
  • -r 路由表
  • -n IP
  • 实例
    • netstate -tlun 查看系统已经启用监听端口号
    • netstat -an 查看系统已经启用的端口号 以及连接的应用程序
    • netstat -rn 查看网关信息

其他常用指令

查找

  • find: 指定目录下查找
    • 按文件名查找
    • find /etc -name "init*" 不忽略大小写
    • -iname 忽略大小写
    • 通配符
      • *: 零个及以上
      • ?: 一个
    • 按文件大小查找
    • find <查找目录> -size [+/-] <文件大小>[b/c/k/w]
      • +:大于,-:小于
      • b: 512位元组的区块,c: 表示字元数,k:表示 kilo bytes,w是二个位元组
    • 按文件类型查找
    • -type <文件类型符号>
      • d: 目录
      • f: 普通文件
      • b: 字型装置文件
      • c: 区块装置文件
      • p: 具名贮列
      • l: 符号连结
      • s: socket
    • 按文件所有者&所属组
    • -user <用户名>
    • -group <用户组名>
    • -a: and 连接两个条件
  • whereis: 只能用于查找二进制文件、源代码文件和man手册页
    • whereis <文件名>
  • which: 在$PATH声明的目录中查找符合条件的文件
    • which <文件名>
  • locate: 用于查找符合条件的文档,他会去保存文档和目录名称的数据库内
    • locate <文件名>

给普通用户赋予管理员权限

# 1.方式一
vim /etc/sudoers
# 2.方式二
visudo
# ----------------
# add this 
hduser  ALL=(ALL)   ALL

符号指令

  • |: 管道符号,将前一个命令的输出传递给后一个命令处理
    • cat /etc/passwd | grep 'root'
  • >>: 追加符号,将前一个命令的输出追加写入一个文件中
    • grep 'root' /etc/passwd >> root.txt
  • >: 覆盖符号,将前一个命令的输出覆盖写入一个文件中
    • grep 'root' /etc/passwd > root.txt

统计指令wc

  • wc [命令可选项] <文件名>
  • 命令选项
    • -c: 字节数
    • -m: 字符数
    • -l: 行数
    • -L: 最长行的长度
    • w: 词数

grep过滤器

  • grep <条件> <内容>
  • 过滤出包含关键词的行

查看系统进程ps

  • -A Select all processes. Identical to -e.
  • -e Select all processes. Identical to -A.
  • -f does full-format listing.

压缩 & 解压

  • gzip
    • 压缩时不保留原文件
    • 不能压缩目录
  • tar
    • z filter the archive through gzip
    • x extract files from an archive
    • c create a new archive
    • v verbosely list files processed
    • C change to directory DIR
    • 压缩
    • tar -cvf aa.tar aa.txt
    • tar -zcvf aa.tar.gz aa.txt
    • 解压
    • tar -xvf aa.tar
    • tar -zxvf aa.tar.gz -C ./aa1/

rpm

  • rpm -ivh package.rpm 安装一个rpm包
  • rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告
  • rpm -U package.rpm 更新一个rpm包但不改变其配置文件
  • rpm -F package.rpm 更新一个确定已经安装的rpm包
  • rpm -e package_name.rpm 删除一个rpm包
  • rpm -qa 显示系统中所有已经安装的rpm包

yum

  • yum的仓库在/etc/yum.repos.d/
  • yum install package_name 下载并安装一个rpm包
  • yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系
  • yum update package_name.rpm 更新当前系统中所有安装的rpm包
  • yum update package_name 更新一个rpm包
  • yum remove package_name 删除一个rpm包
  • yum list 列出当前系统中安装的所有包
  • yum search package_name 在rpm仓库中搜寻软件包
  • yum clean packages 清理rpm缓存删除下载的包
  • yum clean headers 删除所有头文件
  • yum clean all 删除所有缓存的包和头文件

系统管理

top

  • 实时显示系统进程的状态
  • 增强版htop

free

  • 展示系统已使用和未使用的内存资源状况

kill

  • 杀死某个进程
  • kill <PID>
  • kill -KILL <PID> 强制杀死某个进程
  • kill -9 <PID> 彻底杀死某个进程

猜你喜欢

转载自blog.csdn.net/goldlone/article/details/82118196