Linux基本常用命令

Linux基本常用命令

一、Linux系统简介

1. Linux主要的发行商:

  • slackware—- SUSE
  • debai-n—–Ubuntu
  • Red Hat
    • -CentOS
    • —Fedora

2.快照及克隆:

快照含义:

克隆含义

3. Linux基本信息查看操作

查看系统基本信息

Selinux临时设置

防火墙调整

关闭系统

重启系统

二、 基本命令使用

1.简介

  • Linux中, 一切皆文件

    • 文本文件
    • 链接文件
    • 设备文件
    • 管道文件
    • socket文件
  • 多用户操作系统

    • 管理员: root
    • 系统用户: -般不能登录系统,只是为了启动某个服务而创建的
    • 普通用户
  • 模块化

    • 有多个小程序组成了一个强大的系统
    • 很多功能做成了模块
  • 如何操作Linux

    • 命令行
    • shell脚本
  • 命令格式:

    命令(command) 选项(option) 参数(argument)

  • 如何获得命令帮助

    • 对于内部命令:使用help,系统shell自带的命令

      [ root@localhost ~ ]# help type

    • 对于外部命令:使用–help,是安装其他的程序产生的命令。

      [ root@localhost ~ ]# type –help

    • 可以通过type查看命令是内部还是外部命令: type 命令关键字

    • man命令

      [ root@localhost ~ ]# man tree

    • info命令

      [ root@localhost ~ ]# info tree

    • 百度、Geogle

2.Linux根目录结构

  • 一切从 / 开始

    • rootfs: 根文件系统 /
    • /boot: 系统启动相关的静态文件,如内核、initrd或者initramfs,以及grub(bootloader)
    • /dev: 所有设备的设备文件,设备文件也称为特殊文件(仅有元数据,没有数据,是设备的 入口)
    • /etc:配置文件
    • /home:普通用户的家目录,每一个用户的家目录通常默认为/home/USERNAME
    • /root:管理员的家目录;
    • /lib:基本的共享库和内核模块
    • /lib/modules:内核模块文件
    • /media:为了移动设备的挂载点目录,例如光盘、U盘
    • /mnt:挂载点目录,额外的临时文件系统
    • /opt:可选目录,第三方程序的安装目录/proc:内核及进程信息的虚拟文件系统,伪文件系统,内核映射文件,只存在内存中,它 以文件系统的方式为访问系统内核数据的操作提供接口。
    • /sys:伪文件系统,硬件设备信息虚拟文件系统接口,跟硬件设备相关的属性映射文件,该 目录下是全局设备结构体系,包含所有被发现的注册在各种总线上的各种物理设备
    • /tmp:临时文件, /var/tmp
      • /var:可变化的文件
    • /var/log 日志信息
    • /bin: 基础的用户命令二进制程序, 为所有用户使用
    • /sbin:系统二进制程序,一般为管理命令
    • /bin和/sbin 系统自身启动和运行时可能会用到的核心二进制命令
    • /usr:shared, read-only (Unix System Resource,即Unix系统资源的缩写),不适合放 在/bin或/etc目录下的额外的工具
      • /usr/bin 大多数用户使用到的命令
      • /usr/sbin 非核心的系统命令
      • /usr/lib 安装程序时的一些库文件
      • /usr/local:主要存放那些手动安装的软件
      • /usr/share/man:放一些man手册页文件
      • /usr/share/doc:帮助文档
  • 设备文件:

    • 块设备:随机访问,数据块
    • 字符设备:线性访问,按字符为单位
    • 设备号:主设备号(major)和次设备号(minor) 主设备号相同的设备是同类
    • 设备(使用同一个驱动程序)

3.目录基本操作命令

  • tree:以树状格式显示目录内容

    [ root@localhost ~ ]# tree -C /boot

  • ls:列出目录的内容

  • pwd:打印当前工作目录

  • mkdir:创建空目录

    • -p:创建多级目录
  • rmdir:删除空目录

    • -p 创建多级目录
  • rm: 删除目录或文件

    • -f 强制删除
    • -r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
  • mv:移动或重命名文件或目录

  • cp: 复制目录或文件

    • -p:保持属性不变
    • -a:此参数的效果和同时指定”-dpR”参数相同;
    • -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目 录连接的原始文件或目录;
    • -f:强行复制文件或目录,不论目标文件或目录是否已存在;
    • -i:覆盖既有文件之前先询问用户;
    • -R/r:递归处理,将指定目录下的所有文件与子目录一并处理;

3.文件查看和处理命令

  • touch 创建文件
    • touch 改变文件的atime和mtime (ctime会随之改变)
    • -a 改变atime
    • -m 改变mtime
  • stat 查看文件的属性及元数据
  • cat 用来显示文件的内容
    • cat 用来显示文件的内容
    • cat m1 m2 > file (将文件ml和m2合并后放入文件file中)
    • -n 显示行号
    • 通过标准输入生成文件testfile
  • more:分屏显示文件内容
    • 按Space键:显示文本的下一屏内容。
    • 按Enter键:只显示文本的下一行内容。
    • 按h键:显示帮助屏,该屏上有相关的帮助信息。
    • 按b键:显示上一屏内容。
    • 按q键:退出命令。
  • less:分屏显示文件内容
  • head:默认显示文件头10行内容
    • -q 隐藏文件名
    • -v 显示文件名
    • -c 显示的字节数。
    • -n 显示的行数。
  • tail:默认显示文件尾10行内容
    • -f 监控某个文件变化
    • -q 不显示处理信息
    • -v 显示详细的处理信息
    • -c 显示的字节数
    • -n 显示文件的尾部 n 行内容
  • wc:统计文件的行数、单词数、字符数
    • -c或–bytes或–chars 只显示Bytes数。
    • -l或–lines 只显示行数。
    • -w或–words 只显示字数。
    • –version 显示版本信息。
  • du:统计文件和目录的大小
    • -s 汇总显示大小
    • -h 易读形式显示

4.vim编辑器

  • vim

    • 三种模式:命令模式、插入模式、末行模式
    • i I a A o O 进入到插入模式
    • :末行模式 w 保存 q 退出 wq保存并且退出 !强制 三者可以结合使用
    • 命令行模式: dd 删除[剪切] yy 复制 [n]yy 多行复制 p 粘贴
    • 使vim显示行号,在/root 下边创建一个 .vimrc 的文件,使用vim打开,添加set nu ,wq保存退出
  • 命令模式下的操作:

    • 翻页
      • Page Down或Ctrl+F 向下翻动一整页内容
      • Page Up或Ctrl+B 向上翻动一整页内容
    • 行内快速跳转
      • Home键或“^”、数字“0” 跳转至行首
      • End键或“$”键 跳转到行尾
    • 行间快速跳转
      • 1G或者gg 跳转到文件的首行
      • G 跳转到文件的末尾行 #G 跳转到文件中的第#行
    • 行号显示
      • :set nu 在编辑器中显示行号
      • :set nonu 取消编辑器中的行号显示
    • 删除
      • x或Del 删除光标处的单个字符
      • dd 删除当前光标所在行
      • #dd 删除从光标处开始的#行内容
      • d^ 删除当前光标之前到行首的所有字符
      • d$ 删除当前光标处到行尾的所有字符
    • 复制
      • yy 复制当前行整行的内容到剪贴板
      • #yy 复制从光标处开始的#行内容
    • 粘贴
      • p 小写 将缓冲区中的内容粘贴到光标位置处之后
      • P 大写 粘贴到光标位置处之前
    • 查找
      • /word 从上而下在文件中查找字符串“word”
      • ord 从下而上在文件中查找字符串“word”
      • n 定位下一个匹配的被查找字符串
      • N 定位上一个匹配的被查找字符串
    • 取消操作
      • u 按一次取消最近的一次操作 多次重复按u键,恢复已进行的多步操作
      • U 用于取消对当前行所做的所有编辑
    • 保存退出
      • ZZ 保存当前的文件内容并退出vi编辑器
    • 可视化块操作界面
      • ctrl+v 进入块操作界面
      • 上、下、左、右箭头 可以进行选择块
      • y 复制选择的快块从
      • p 粘贴选择的块
  • 末行模式的操作:

    • 保存文件
      • :w 保存修改的内容
      • :w /root/newfile 另存为其它文件
    • 退出vim
      • :q 未修改退出
      • :q! 放弃对文件内容的修改,并退出vi m
    • 保存文件退出vim
      • :wq 保存修改的内容并退出
      • ZZ
    • 打开新文件
      • :e ~/install.log 打开新的文件进行编辑
    • 读入其它文件内容
      • :r /etc/filesystems 在当前文件中读入其他文件内容
    • 替换
      • ?? /old/new 将当前行中查找到的第一个字符“old” 串替换 为“new”
      • ?? /old/new/g 将当前行中查找到的所有字符串“old” 替换 为“new”
      • :#,# s/old/new/g 在行号“#,#”范围内替换所有的字符 串“old”为“new”
      • :% s/old/new/g 在整个文件范围内替换所有的字符 串“old”为“new”
      • ?? /old/new/c 在替换命令末尾加入c命令,将对每个替换动作提 示用户进行确认

5. 压缩和归档命令

  • zip:压缩后不删除源文件,一般后缀是 .zip
    • unzip 用于解压
    • -d:参数用于指定解压路径
  • gzip:压缩后会删除源文件,一般后缀是 .gz
    • gunzip:用于解压
  • bzip2:默认压缩后也会删除原文件,一般后缀是 .bz2
    • bunzip:用于解压
  • xz:压缩比很好,一般后缀是 .xz
    • unxz:用于解压

6. tar打包归档命令

  • 可以在打包的同时,进行压缩
  • tar 选项 包名 打包的文件或目录
  • tar: 归档工具, .tar
    • -c: 创建归档文件
    • -f FILE.tar: 操作的归档文件
    • -x: 展开归档 –xattrs: 归档时,保留文件的扩展属性信息
    • -t: 不展开归档,直接查看归档了哪些文件
    • -C:解压时指定路径
    • -r:向包中追加文件
    • -p:保留权限信息
    • -v:显示详细过程

7. 文件搜索

  • which:用来查找命令的绝对路径
    • 显示shell命令的绝对路径
    • 仅仅会在PATH变量中搜索要查找的命令
    • 搜索时先查找别名,然后从PATH中查找
  • locate
    • 通过文件名检索文件,检索速度最快
    • 所有能够检索的东西,都是存放在数据库中的
    • locate局限性,有的文件系统、有的文件及有的目录默认是不会搜索的
    • updatedb:手动更新数据库
  • find:全局性搜索文件
  • find 要搜索路径 条件(选项) [动作]
    • 按照文件名搜索
      • -name:按名字查找
      • -iname:忽略大小写
    • 通配符
      • 代表任意字符
      • 代表单个字符
    • 按照文件类型查找 -type
      • f:普通文件
      • d:目录
      • b:块存储文件
      • c:字符型文件
      • s:socket文件
    • 按照时间查找
      • -atime n 以天为单位
      • -ctime n
      • -mtime n
    • n为数字,前面可以带+或者-号 -mtime n
      • +n:n+1天之前
      • n:n到n+1天之间
      • -n:n天以内
    • 按照用户和组查找
      • -user 用户名
      • -group 组名
    • 按照权限查找 -perm
    • 按照文件大小查找 -size
    • 动作
      • -exec 动作 – 找到结果之后直接执行动作
      • -ok 动作 – 执行动作之前先提示,即需要交互
      • {} —— 用来代替找到的结果
      • ; —— 表示结束标志

8. grep过滤

grep:目的是过滤出用户感兴趣的内容

语法:grep [选项] 模式或关键字 文件列表

  • grep命令选项
    • -i 忽略大小写
    • -v 取反
    • ^ 以某关键字开头
    • $ 以某关键字结尾
    • ^$ 空行
    • -c count,统计匹配到的行数
    • -l 一般和-r联用,只显示包含关键字的文件的名字,而不是显示文件内容
    • -r 递归检索
    • -q quiet 静默输出 一般在写脚本时候用
      • echo / / // /span>//示上一条命令的执行结果
      • 返回结果为0:表示上一条命令的执行时成功的
      • 返回结果非0:表示上一条命令执行失败
    • -n 显示匹配行的行号

9. 文件操作

cut:就是截取的意思,它的处理对象是“一行”文本,可以从中选取出用户所需要的部 分,不影响原文件

语法:cut -f 指定的列 -d ‘分隔符’

  • cut命令选项
    • -d:指定字段分隔符
    • -f:指定要输出的区域,多个之间用逗号分隔
    • -c:指定列的字符

sort:排序

  • sort命令选项
    • -t:指定字段分隔符
    • -k:指定第几个字段
    • -n:按照数字顺序排序
    • -r:反向排序 reverse
    • -u:排序后重复行只打印一次 unique

uniq:去重,唯一

去除相邻重复行;一般与sort联用

  • uniq命令选项
    • -c:显示重复的行数
    • -i:忽略大小写

tr :主要作用在于文本转换或者删除。

将/etc/passwd文件中的小写字母转换成大写字母

paste:文本合并。将文件按照行进行合并,中间使用tab隔开。

  • paste命令选项
    • -d:指定合并文件时行间的分隔符

三、 用户和组管理

1. 用户类型

  • 管理员用户:root
  • 系统用户(程序用户):为了某种管理任务而存在的用户,一般不能登陆系统
  • 普通用户:创建的一般用户

2. 组的类型

  • 基本组(私有组):一个用户只能属于一个基本组,当这个用户创建文件或文件夹时,文件或文件默认属于这个用户的基本组所有。
  • 附加组(公共组):一个用户可以属于多个附加组。

3. 和用户相关的配置文件

  • /etc/passwd:用户相关信息
  • /etc/shadow:用户密码相关信息
  • /etc/group:组账户信息
  • /etc/gshadow:组安全相关信息

4. 创建用户时有关的配置文件

  • /etc/login.defs: Shadow密码套件设置
  • /etc/skel/ 目录
  • /etc/default/useradd:账户创建的默认值
  • /etc/rc.local:是系统开机后执行的最后一个脚本,一般被管理员执行一些系统开机运行的命令

5. 用户和组相关的命令

  • useradd:添加用户

    • -u 指定用户的uid
    • -g 指定用户的gid
    • -G 指定附属组,可以有多个, 但是这些附属组必须是系统内已经存在的
    • -c 指定描述
    • -d 指定家目录
    • -M 不建立家目录
    • -s 指定shell
    • -e 指定用户过期时间, 日期
    • -f 指定用户过期时间, 天数
  • passwd:设置用户密码

    • -l 锁定用户
    • -u 解锁用户
    • -n 密码最小使用期限 天数
    • -x 密码最大使用期限 天数
    • -w 密码过期前几天提醒 天数
    • –stdin 从stdin读取新令牌(仅限root用户)
  • usermod:修改用户

    • -L 锁定用户
    • -U 解除锁定
    • -l 改名
    • -a 添加用户到组,结合-G使用
  • userdel:删除用户

  • -r:可以干净的删除一个用户(连同家目录一起删除)

  • chage:查看和修改用户密码信息

    • chage -d 0 用户名 用户下次登录必须更改密码
    • chage -m 2 u1 修改密码最少使用天数
    • chage -M 50 u1 修改密码最大使用天数(密码过期时间)
    • chage -I 5 u1 密码过期后到账户失效的天数(密码过期后还能使用的天数)
  • groupadd:添加组

    • -g:指定新建工作组的 id;
    • -r:创建系统工作组,系统工作组的组ID小于 500;
  • gpasswd:向组内添加用户

    • -A:指定管理员;
    • -a:添加用户到组;
    • -M:指定组成员和-A的用途差不多(可以编辑一个列表添加到组);
    • -d:从组删除用户;
  • groupdel:删除组

    • 倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除组。
  • chfn:改变用户信息

  • finger:查看用户信息

  • id username:查看当前用户的ID

  • whoami:查看当前用户的名字

四、 权限管理

1. 基本权限

  • 文件:

    • r:可读,可以使用类似cat等命令查看文件内容;
    • w:可写,可以编辑或删除此文件;
    • x: 可执行,eXacutable,可以命令提示符下当作命令提交给内核运行;
  • 目录:

    • r: 可以对此目录执行ls以列出内部的所有文件;
    • w: 可以在此目录创建文件;
    • x: 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息;
  • rwx

  • 用户:

    • u: 属主
    • g: 属组
    • o: 其它用户

2. 修改文件权限

  • chown: 改变文件属主(只有管理员可以使用此命令)
    • -R: 修改目录及其内部文件的属主
    • # chown USERNAME:GRPNAME file,…
  • chgrp
    • # chgrp GRPNAME file,…
    • -R: 修改目录及其内部文件的属主

2.1 修改文件权限

  • chmod: 修改文件的权限

    • 修改三类用户的权限:

    • 修改某类用户的某位或某些位权限:

  • chown:用于设置文件所有者和文件关联组的命令

    • chown 需要超级用户 root 的权限才能执行此命令。

    • 将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :

3. 特殊权限

  • SUID

    • 运行某程序时,相应进程的属主是程序文件自身的属主,而不是 用户本身了,只对二进制程序有效,执行者对于程序需要有x权限

    • 例子

  • SGID

    • 对于文件:运行某程序时,相应进程的属组是程序文件自身的属组,而不是用户本身的基本组
    • chmod g+s file
    • 对于目录
      • 用户对此目录有rx权限可以进入目录
      • 用户进入此目录后,有效用户组会变成该目录的用户组
      • 用户在此目录有w权限,则用户创建的文件用户组与该目录用户组相同
  • Sticky (BIT)

    • 只针对目录有效,当用户对目录拥有wx权限时,用户在该目录创建的文件或目录,只有 自己与root才可以删除

    • 在一个公共目录,每个人都可以创建文件,删除自己的文件, 但是不能删除别人的文件(冒险位,粘贴位)

    • 例子:

  • SUID是4 SGID是2 SBIT是1

4. FACL权限

  • 利用文件的扩展属性,保存了额外的访问控制权限
  • getfacl 查看权限
  • setfacl 设置权限
    • 语法:setfacl [-bkRd] [-m|-x acl 参数] 目标文件名
    • -m:设置后续的acl参数,不可与-x一起使用
    • -x: 删除后续的acl参数,不可与-m一起使用
    • -b:删除所有的acl参数
    • -k:删除默认的acl参数
    • -R:递归设置acl参数
    • -d:设置默认acl参数,只对目录有效
  • 撤销所有的组和用户的写权限(使用有效的正确mask)
    • setfacl -m m::rx file
  • 所有权限都不能超过mask的权限
  • 复制一个文件的ACL到另一个文件
    • getfacl file1 | setfacl –set-file=- file2
  • 复制访问的目录的ACL作为目录的默认ACL
    • getfacl –access dir | setfacl -d -M- dir

5. 文件隐藏属性

  • chattr命令用于改变文件属性
    • a:让文件或目录仅供附加用途。
    • b:不更新文件或目录的最后存取时间。
    • c:将文件或目录压缩后存放。
    • d:将文件或目录排除在倾倒操作之外。
    • i:不得任意更动文件或目录。
    • s:保密性删除文件或目录。
    • S:即时更新文件或目录。
    • u:预防意外删除。
    • -R 递归处理,将指定目录下的所有文件及子目录一并处理。
  • lsattr命令查看文件隐藏属性

6. sudo 提权

  • sudo:某个用户能够以另外一个用户的身份通过某主机执行某命令

  • sudo 的配置文件 /etc/sudoers

  • 基本配置格式

    • user list 用户/组,或者已经设置的用户的别名列表, 用户名直接 username,用 户组加上%

    • host list 主机名或别名列表

    • operator list runas用户,即可以以哪个用户、组的权限来执行

    • command list 可以执行的命令或列表

    • tag list 这个经常用到的是 NOPASSWD: ,添加这个参数之后可以不用输入密码 别名机制:类似定义了一个组

  • 4类:

    • 用户别名: User_Alias
    • 主机别名: Hosts_Alias
    • 参照用户: Runas_Alias
    • 命令别名: Cmnd_Alias
  • 注意事项:

    • 别名的名字只能使用大写的英文字母组合
    • 别名:可使用!取反
  • 使用示例:

    • User_Alias USERADMIN = 系统用户名 或 %组名 或用户别名
    • Hosts_Alias 主机名 IP 网络地址 其它主机名 可以嵌套
    • Runas_Alias 用户名 #UID 别名
    • Cmnd_Alias 命令绝对路径 目录(下面所有命令) 其它定义的命令别名
  • sudo命令

    • -l 显示出自己(执行 sudo 的使用者)的权限
    • -k 将会强迫使用者在下一次执行 sudo 时问密码
  • 记录sudo日志到指定的文件:

    • 编辑/etc/sudoers文件,添加如下行:
      • Defaults logfile=/var/log/sudo.log
      • Defaults !syslog

      来源:孤烟。

      声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月11日
下一篇 2020年11月11日

相关推荐