8-linux基础-基础命令 本文共有56345个字,关键词: linux基础命令: ~]#ls [option][ARG] #列出指定目录下的文件列表 -a 显示所有文件(包含以"."开头的隐藏文件) -A 除了"."和".."其余都显示 -d 查看当前目录本身的信息 -l 使用长格式显示信息 -i 查看文件的inode号,查看目录的inode号需要同-d移动使用 -h 以常用单位显示文件大小 -r 逆序的格式显示 -R (--recursive)递归显示,列出当前目录下子目录下的文件目录 --color=never #指定无颜色显示 --color=auto #自动显示颜色 ~]#ls -l /tmp #长格式显示目录下文件的信息 1. 文件权限位:drwxr-xr-x. - 普通文件 d 目录文件 l 软链接文件 b 块设备文件 c 字符设备文件 p 管道文件 s 套接字文件 2. 引用计数 对于目录:代表目录下,一级子目录的个数 对于文件:代表被硬链接的次数 3. 文件的所属主 4. 文件的所属组 5. 文件的大小 6. 文件最后一次的访问时间 atime 访问时间 mtime 内容改变,只要内容改变ctime一定改变 ctime 元信息改变,改变不一定会修改 7. 文件名 ~]#cd /DIR #切换到指定目录 ~]#cd #进入家目录 ~]#cd ~ #进入家目录 ~]#cd - #进入上一次所在目录 ~]#cd .. #进入上一级目录 ~]#stat FILE #用于显示文件或文件系统的状态,显示时间戳等元信息 ~]#pwd #显示当前所在路径 ~]#mkdir /DIR #创建目录 -p 递归创建目录 ~]#rmdir /DIR #删除空目录(使用不多,用处不大) ~]#rm [选项] [文件名/目录名] -r 递归删除目录 -i 操作前进行询问,root用户命令为别名:alias rm='rm -i' -f 强制删除 ~]#rm -rf [文件/目录] #不询问,强制删除 rm -rf /* #此命令不需要确认,直接执行,需要谨慎 ext undelte 反删除软件,避免误删除,但是需要安装才能生效 ~]#tree /DIR #树状结构显示目录下所有目录和文件名称 文件操作命令: ~]#filefilename #文件内容类型查看命令 ~]#touch /DIR/FILENAME #修改文件的访问时间,如果文件不存在则创建文件 mkdir /tmp/test #创建测试目录 touch /tmp/test #改变了目录的访问时间 ~]#cat [option]/DIR/FILENAME #查看指定文件内容 -n 显示行号,对行进行编号,对文件内容无影响 -E 显示行结束符 -T 显示制表符 ~]#cat [option]file1 file2... #连接文件并显示出来 cat没有跟任何参数时会从键盘读入 ~]#tac filename #将文件内容逆序显示 ~]#morefilename #查看文件分页显示,翻页到行末会自动退出 空格向下翻页,b向上翻页,q退出 ~]#lessfilename #查看文件(分行显示) 空格(↓下键)向下翻,b(↑上键)向上翻页,q退出 ~]#head -nfilename #显示文件头几行 ~]#tail -n 文件 #显示文件尾部几行 -f 监听文件尾,不退出 -c 显示文件尾指定字节数 ~]#echo [option]"....." #回显命令 -n 禁止自动添加换行符 -e 允许使用转义符 单引号:强引用 双引号:弱引用 反引号:命令调用 ~]#cp 源文件 目标位置 -r 复制目录 -p 连带文件属性复制 -d 若文件是连接文件,则复制连接属性 -a 相当于pdr,原文件属性完全复制 -i 询问同名是否覆盖 -a: --archive 归档,保留文件原有属性,常用于备份 -a相当于-dR --preserv=all --preserv=[ATTR_LIST(属性列表)] mode 权限 ownership 属主属组 times-tamps 时间戳 context 安全上下文 xattr 扩展属性 all 以上所有 ~]#mv 源文件 目标文件 #文件移动、若目标为当前目录,则为改名 -i 询问是否覆盖 -f 强制移动 #同一位置下为改名操作,操作对象可以是文件或者目录 ~]#alias #查询命令的别名 ~]#alias rm='rm-i' #定义别名,必须使用单引号 #别名的优先级高于系统命令 #在命令行中执行操作绝大多数是临时生效(立即生效),永久有效需要写入配置文件(重启生效) #alias别名在/etc/bashrc(全局)中进行定义,但是由于个用户习惯不一样,在~/bashrc定义 ~]#ps aux #查看所有运行的进行 ·链接文件:软链接和硬链接 ·软链接:软链接一定要使用绝对路径,否则在跨目录时会报错。 ~]#ln -s 源文件 目标文件 #软链接的权限为777,但是文件的权限在文件上 ·软链接的特点: 源文件和目标文件拥有不同的inode号和block块(存储空间) 软链接的block只存放源文件的inode号、文件名,并没有实际数据 通过软链接打开文件修改内容,源文件也会修改 源文件改名、移动到其他目录后软链接不可使用 删除软链接,源文件不受影响 删除源文件,软链接不可使用 不论源文件的大小如何变化,软链接占用磁盘空间大小不变 软链接的权限为777,但是实际权限在源文件上 软链接可以链接目录 软链接可以跨分区 软链接的属性(长格式信息)只能在上一级目录下查看 ·硬链接:不建议使用,因为没有特别的标识区分 ~]#ln 源文件 目标文件 #给文件创建硬链接 ·硬链接的特点 源文件和连接文件拥有相同的inode号和block(存储空间) 修改任意文件,另一文件内容都发生改变 删除任一文件,另一文件都可以正常访问 硬链接不能跨分区 硬链接不能连接目录 硬链接改名、移动(分区内)后依旧能够访问 文本操作工具 wc、cut、soft、uniq ~]#wc [option] filename #world cuting 统计单词数 -l 只显示行数 -w 只显示单词数 -c 只显示字节数 ~]#wc /etc/passwd #默认显示:行 单词数 字符数(包含换行符) ~]#cut [option] FILENAME -d 指定分隔符,如果不指定默认为空格(智能识别单个字符) -f 指定显示那些字段 ~]#cut-d ':' -f 1 /etc/passwd #提取/etc/passwd文件中的第一列 ~]#cut -d ':' -f 1,3 /etc/passwd #提取/etc/passwd文件中第一列和第三列 ~]#cut -d ':' -f 1-3 /etc/passwd #提取/etc/passwd文件中的第一至第四列 #输入时指定什么分隔符,输出时就以什么分隔符输出 --output-delimiter=STRING #以指定的字符作为分隔符输出 ~]#sort [option] [FILE] #排序命令 #比较每一行的第一个字符,按ASCII码升序排列 -r 逆序排列 -f 忽略大小写排序 ·sort支持以某个字符作为分隔符,并按某个字段进行排序 -t 指定分隔符 -k 指明字段 -n 按数值大小排序 -u uniq去重,相同的内容只显示一次 ~]#uniq [option] FILE #去重(去重的标准为连续且完全一样) -c 统计重复次数 -d 仅显示重复过的行 -u 仅显示未曾重复的行 ·常与sort一同完成文本去重 目录管理类命令: cd、pwd、ls、mkdir、rmdir、tree ~]#ls #显示当前目录下的文件列表,默认开启了别名,即带颜色显示 ~]#mkdir [option] /path/to/somewhere #创建目录 -p 递归创建目录,即目标目录不存在时创建目录 -m 创建目录时直接制定权限 -v 显示创建过程信息 ~]#rmdir DIR #删除空目录,只能够删除空目录 ~]#tree DIR #列出目录的层级结构 -L 限制显示层级 -d 只显示目录 -P(大):显示由指定pattern匹配到的路径 文件的时间戳管理工具: ~]#touch [option] FILE/DIR #创建新文件(当文件不存在的时候) -a 修改访问时间 -m 修改修改时间 -t 指明时间戳,同-a/-m一同使用[cc]YYMMDDhhmm[.ss] -c 不创建文件 ·当touch一个文件的时候,文件如果不存在则创建文件,文件存在只修改其时间戳 ~]#stat FILE/DIR #查看文件/目录的状态 时间戳: access time 访问时间 atime 读取文件的内容叫访问 modify time 修改时间 mtime 修改文件的内容叫修改(修改内容元数据一定改变) change time 改变时间 ctime 改变元数据叫改变 用户和组管理: 只基于密码的认证机制称为token(没有用户名) 有用户名和密码通常称为认证:identify(username/password) 用户的主要作用是实现资源的分配 资源的分配有三个层次(3A概念) Authrntication 认证(识别用户) Authorization 授权 Accouting 审计 ·对于linux来讲,用户有两类 管理员:root ID 0 普通用户:ID 1-65535 系统组:1-499 centos 7 1-999 普通用户组 500+ centos 7 1000+ ·组用于实现将用户和某一类权限建立关联关系 ·我们操作计算机是依靠运行程序来实现的,进程十一发起者的身份去获取资源 ·普通用户的权限决定了cat命令对资源的访问权限 我们站在用户的角度,linux中的组有两类 用户的基本主(主组):组名同用户名,且仅包含一个组:私有组 用户的附加组(额外组) linux用户和组的相关配置文件: /etc/passwd 用户及属性信息 ·/etc/passwd七个字段 用户名:密码占位符:UID:GID:GECOS(用户附加信息):用户家目录:用户默认登录的shell /etc/group 用户组及其属性信息 ·/etc/group 四个字段 组名:组密码占位符:组ID:以当前组为附加组的用户列表(多个使用逗号隔开) /etc/shadow 用户密码及其属性信息 ·/etc/shadow 九个字段 ①登录名 ②加密的密码 $加密算法$salt杂质$加密的密码($作为) ③最近一次更改密码日期 从1970.01.0100:00至密码更改时经过的完整天数 ④密码最小使用期限 ⑤密码最大使用期限 ⑥密码警告时间(快过期) ⑦密码禁用期(已过期,但是登录还能够修改密码) ⑧账号过期日期 echo $(($date --date="2018/12/31"+%s )/86400+1)) ⑨保留字段 ·密码最长有效期限和密码过期时间以短板为准 /etc/gshadow 组密码及其相关信息 用户和用户组的管理命令: 组分类:组本身没有类型,看不同的用户,确定组的类型 初始组:用户创建时,为用户指定的第一个组(有且只有一个) 私有组机制(缩小权限):创建用户的时候,会先创建一个和用户名相同的用户组,并将该组指定为用户的初始组,保证一个文件只属于一个用户 公共组机制:系统预先设定的组,该组的GID为100,以后创建的所有用户指定GID为100的组为初始组,用户创建的文件同时属于组中的其他用户(很多linux发行版不再使用) 附加组:若用户加入到其他组内,则该组作为该用户的附加组(有且可以多个,可以没有) GID:组唯一标识号 ~]#tail -f /var/log/secure #动态查看用户添加时日志的记录情况,组先创建 ~]#useradd [option] loginname #添加用户 #创建用户的时候会自动创建一个与用户同名的用户组,叫做私有组。 #linux操作系统禁止密码登录在/etc/passwd文件的第二列表现为"!!" -u 指定UID ·[UID_MIN,UID_MAX]于/etc/login_defs配置文件中定义 ·如果不指定,则按照已存在的最大UID+1进行自动指定 -g 指明用户所属的基本组,可为组名,也可为GID -c 添加用户的注释信息,可以为任意字符,有空格时需要以引号包含起来 -d 指明家目录的位置,不指定时在/home目录下创建一个用户名同名的目录 ·如果指定的目录已经存在,则不会从/etc/skel目录下复制模板文件,这些模板文件定义可用户的环境 -s 指明用户的默认shell,不指定时有缺省值(/bin/bash) /etc/defaults/useradd定义了添加用户时的缺省值 /etc/shell 保存了当前系统下的shell -G 为用户指明附加组,可以有多个附加组,使用逗号隔开,所指定的组必须事先存在 -r 创建系统用户,通常与-s /sbin/nologin一起使用 -D 修改添加用户的缺省值,直接修改/etc/default/useradd文件 ~]#groupadd [option] group_name #添加一个指定用户组 -g 指定GID ~]#gpasswd [option] GROUPNAME #不指定选项时修改指定组的组密码(root执行) -a username groupname #将一个用户添加到指定组中 -d username groupname #将一个用户从指定组中移除 -M username1,username2.... groupname #将多个用户添加到指定组中 ~]#id [option] username #显示用户的真实有效的ID和组的信息 -u 显示用户的UID -g 显示用户的GID(只显示基本组) -G 显示用户所有组的ID(基本组和附加组) ~]#id-un USERNAME #显示用户的用户名 ~]#id-gn USERNAME #显示用户的组名称 ~]#id #查看当前用户的信息 ~]#su [option] [-] USERNAME [ARGS...] #切换用户 switch user 切换用户或其他用户身份执行命令 ~]#su USERNAME #非登录式切换,不读取用户的环境配置文件 ~]#su - USERNAME #登录时切换,会读取目标用户的配置文件(完全切换) ·root用户切换到其他用户不需要密码 ~]#su - USERNAME -c COMMAND #不切换到其他用户,以其他用户的身份执行命令 -l 相当于"-",表示登录式切换 用户属性的修改: ~]#usermod [option] [logname] #修改已存在用户的信息 -u 指定新的UID -g 指定新的基本组 -G 制定新的附加组,原来的组将被覆盖 -G-a 一起使用为追加附加组 -s 修改默认shell -c 修改新的注释信息 -d HOMEDIR 指定新的家目录(不创建目录仅修改了配置文件) -m -dHOMEDIR 创建新的家目录并移动原家目录下的文件 -l loginname 新的用户名 -L USERNAME 锁定用户,在/etc/shadow文件密码段前加'!' -U USERNAME 解锁指定用户 -e USERNAME指定账户被禁用的日期,格式:YY-MM-DD ~]#usermod -e 2018-12-31 USERNAME #设置用户的过期期限 「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」 赞赏 × 几人行 (๑>ڡ<)☆谢谢老板~ 2元 5元 10元 50元 100元 任意金额 2元 使用微信扫描二维码完成支付 版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。 基础笔记综合整理 2018-10-04 评论 1713 次浏览