linux常用命令
-
命令的基本格式
-
- 命令提示符
- [root@localhost ~] #
- ~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。
- #:命令提示符,Linux用这个符号标识登录的用户权限等级。如果是超级用户,提示符就是#;如果是普通用户,提示符就是$。
- 家目录
- 超级用户的家目录:/root/。
- 普通用户的家目录:/home/用户名/。
- 命令的基本格式
- 命令 [选项] [参数]
- 命令=动词
- 选项=形容词
- 参数=对象
参数是命令的操作对象,一般文件、目录、用户和进程等可以作为参数被命令操作。
- 命令提示符
-
-
目录操作命令
-
- ls命令
- ls -a
显示隐藏文件- 在Linux中以“.”开头的文件是隐藏文件,只有通过“-a”选项才能查看。
- 隐藏文件不是为了把文件藏起来不让其他用户找到,而是为了告诉用户这些文件都是重要的系统文件,如非必要,不要乱动!
- ls -l
显示文件的详细信息 - ls -d
显示目录的详细信息 - ls -h
显示文件大小(按人们习惯的单位) - ls -i
显示文件的inode号
- ls -a
- cd命令
- 切换所在目录
- cd命令的特殊符号
- ~ 代表用户的家目录
- - 代表上次所在的目录
- . 代表当前目录
- .. 代表上级目录
- 绝对路径和相对路径
- mkdir命令
- 建立目录 递归建立目录
- rmdir命令
- 删除空目录 递归删除目录
- tree命令
- 以树形结构显示目录下的文件
- ls命令
-
-
文件操作命令
-
- 文件的三个时间
- 三个
- access time 访问时间
- modify time 数据修改时间
- change time 状态修改时间
- echo,会改变 修改时间和状态修改时间
- chown,会改变 修改时间
- cat,会改变 访问时间
- touch,会改变 三个时间
- 三个
- ext4文件系统
- ext4文件系统会把分区主要分为两大部分(暂时不提超级块):一小部分用于保存文件的inode(i节点)信息;剩余的大部分用于保存block信息。
- inode的默认大小为128 Byte,用来记录文件的权限(r、w、x)、文件的所有者和属组、文件的大小、文件的状态改变时间(ctime)、文件的最近一次读取时间(atime)、文件的最近一次修改时间(mtime)、文件的数据真正保存的block编号。每个文件需要占用一个inode。
- block的大小可以是1KB、2KB、4KB,默认为4KB。block用于实际的数据存储,如果一个block放不下数据,则可以占用多个block。
- touch命令
- 修改文件的时间戳(如果文件不存在,则会建立文件)
- stat命令
- 显示文件或文件系统的详细信息(包括三个时间)
- stat -f
查看文件系统信息
- cat命令
- 合并文件并打印输出到标准输出。
- cat -n
显示行号 - cat -A
显示文本中的所有隐藏符号
- more命令
- 分屏显示命令
- less命令
- 分行显示命令
- head命令
- head -n 20
显示文件的开头20行内容
- head -n 20
- tail命令
- tail -n 20
显示文件的结尾20行内容 - tail -f
监听文件的新增内容
- tail -n 20
- ln命令
- 在文件之间建立链接
- 软链接
- 软链接文件的源文件必须写成绝对路径
- 软链接完全可以当作Windows的快捷方式来对待
- 硬链接
- 文件的三个时间
-
-
目录和文件都能操作的命令
-
- rm命令
- 删除文件
rm命令如果任何选项都不加,则默认执行的是“rm -i文件名”,也就是在删除一个文件之前会先询问是否删除。 - rm -r
删除目录 - rm -rf
强制删除
- 删除文件
- cp命令
- 复制文件
- cp -r
复制目录 - cp -d
复制软链接属性 - cp -l
建立源文件的硬链接 - cp -s
建立源文件的软链接 - cp -p
保留源文件属性复制
- mv命令
- 移动文件或目录
如果移动的目标位置已经存在同名的文件,则同样会提示是否覆盖,因为mv命令默认执行的也是“mv -i”的别名 - mv -f
强制移动 - mv -n
不覆盖移动 - 改名
如果源文件和目标文件在同一个目录中,那就是改名 - mv -v
来查看详细的移动信息
- 移动文件或目录
- rm命令
-
权限管理命令
- 权限介绍
- 2.文件的所有者、所属组和其他人
- 综上所述,给一个文件区分所有者、所属组和其他人,就是为了分配权限方便。就像超哥买了一台电脑,那我当然是这台电脑的所有者,可以把我的学生加入一个用户组,其他不认识的路人当然就是其他人了。分配完了用户身份,就可以分配权限了,所有者当然对这台电脑拥有所有的权限,而位于所属组中的这些学生可以借用我的电脑,而其他人则完全不能碰我的电脑。
- 权限位的含义
- -rm-r--r--
- 第1位代表文件类型
- “-”:普通文件
- “b”:块设备文件。这是一种特殊设备文件,存储设备都是这种文件,如分区文件/dev/sda1就是这种文件
- “c”:字符设备文件。这也是特殊设备文件,输入设备一般都是这种文件,如鼠标、键盘等
- “d”:目录文件。Linux中一切皆文件,所以目录也是文件的一种
- “l”:软链接文件
- “p”:管道符文件。这是一种非常少见的特殊设备文件
- “s”:套接字文件。这也是一种特殊设备文件,一些服务支持Socket访问,就会产生这样的文件。
- 第2~4位代表文件所有者的权限
- r:代表read,是读取权限
- w:代表write,是写权限
- x:代表execute,是执行权限。
- 第5~7位代表文件所属组的权限
- 第8~10位代表其他人的权限
- 基本权限的含义
- 权限对文件的作用
- r
- 一旦对文件有读(r)权限,就可以对文件执行cat、more、less、head、tail等文件查看命令。
- w
- 一旦对文件有写(w)权限,就可以对文件执行vim、echo等修改文件数据的命令。注意:对文件有写权限,是不能删除文件本身的,只能修改文件中的数据。如果要想删除文件,则需要对文件的上级目录拥有写权限。
- x
- 对文件有执行(x)权限,代表文件拥有了执行权限,可以运行。在Linux中,只要文件有执行(x)权限,这个文件就是执行文件了。只是这个文件到底能不能正确执行,不仅需要执行(x)权限,还要看文件中的代码是不是正确的语言代码。对文件来说,执行(x)权限是最高权限。
- r
- 权限对目录的作用。
- r
- 对目录有读(r)权限,代表可以查看目录下的内容,也就是可以查看目录下有哪些子文件和子目录。如果把权限对应到命令上,那么一旦对目录拥有了读(r)权限,就可以在目录下执行ls命令,查看目录下的内容了。
- w
- 对目录有写(r)权限,代表可以修改目录下的数据,也就是可以在目录中新建、删除、复制、剪切子文件或子目录。如果把权限对应到命令上,那么一旦对目录拥有了写(w)权限,就可以在目录下执行touch、rm、cp、mv命令。对目录来说,写(w)权限是最高权限。
- x
- 目录是不能运行的,那么对目录拥有执行(x)权限,代表可以进入目录。如果把权限对应到命令上,那么一旦对目录拥有了执行(x)权限,就可以对目录执行cd命令,进入目录。
- r
- 权限对文件的作用
- 对文件来讲,新建文件的默认最大权限是666
- 对目录来讲,新建目录的默认最大权限是777
- 2.文件的所有者、所属组和其他人
- chmod命令
- chmod [ugoa] [[+-=]perms]
chmod [用户身份] [[赋予方式]权限]- 用户身份
- u:代表所有者(user)
- g:代表所属组(group)
- o:代表其他人(other)
- a:代表全部身份(all)。
- 赋予方式
- +:加入权限
- -:减去权限
- =:设置权限
- 权限
- r:读取权限(read)
- w:写权限(write)
- x:执行权限(execute)
- 用户身份
- chmod g+w,o+w
给多个身份同时加入权限(给所属组合其他人同时加入写权限) - chmod 755
- 421读写操作
- 4:代表“r”权限
- 2:代表“w”权限
- 1:代表“x”权限。
- 常用权限
- 644:这是文件的基本权限
- 755:这是文件的执行权限和目录的基本权限
- 777:这是最大权限
- 421读写操作
- chmod [ugoa] [[+-=]perms]
- chown命令
- chown user tester
修改文件的所有者 - chown user:tester
修改文件的所属组 - chmod 755 tester
普通用户修改权限
- chown user tester
- chgrp命令
- 修改文件和目录的所属组
- chgrp user test
修改test文件的所属组为user用户组
- umask命令
- 查看系统的umask权限
- umask -S
直接用字母来表示文件和目录的初始权限 - umask 002
临时(一旦重启或重新登录就会失效),默认权限的修改方法如果想让修改永久生效,则需要修改对应的环境变量配置文件/etc/profile
- 权限介绍
-