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 易读形式显示
-
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 跳转到文件中的第#行
- 行 显示
- 删除
- x或Del 删除光标处的单个字符
- dd 删除当前光标所在行
- #dd 删除从光标处开始的#行内容
- d^ 删除当前光标之前到行首的所有字符
- d$ 删除当前光标处到行尾的所有字符
- 复制
- yy 复制当前行整行的内容到剪贴板
- #yy 复制从光标处开始的#行内容
- 粘贴
- p 小写 将缓冲区中的内容粘贴到光标位置处之后
- P 大写 粘贴到光标位置处之前
- 查找
- /word 从上而下在文件中查找字符串“word”
- ord 从下而上在文件中查找字符串“word”
- n 定位下一个匹配的被查找字符串
- N 定位上一个匹配的被查找字符串
- 取消操作
- u 按一次取消最近的一次操作 多次重复按u键,恢复已进行的多步操作
- 保存退出
- 可视化块操作界面
- ctrl+v 进入块操作界面
- 上、下、左、右箭头 可以进行选择块
- y 复制选择的快块从
- p 粘贴选择的块
- 翻页
-
末行模式的操作:
- 保存文件
- :w 保存修改的内容
- :w /root/newfile 另存为其它文件
- 退出vim
- :q 未修改退出
- :q! 放弃对文件内容的修改,并退出vi m
- 保存文件退出vim
- :wq 保存修改的内容并退出
- ZZ
- 打开新文件
- 读入其它文件内容
- :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:添加用户到组;
- -d:从组删除用户;
-
groupdel:删除组
- 倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除组。
-
chfn:改变用户信息
-
finger:查看用户信息
-
id username:查看当前用户的ID
-
whoami:查看当前用户的名字
四、 权限管理
1. 基本权限
-
文件:
- r:可读,可以使用类似cat等命令查看文件内容;
- 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日志到指定的文件:
- Defaults logfile=/var/log/sudo.log
- Defaults !syslog
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!