# 显示当前目录的路径 pwd
Linux 下,每一条命令其实都对应一个可执行程序,在终端中输入命令,按回车的时候,就是执行了对应的那个程序
# 查看命令的可执行文件所在路径 which 命令
cd / --> 跳转到根目录 cd ~ --> 跳转到家目录 cd .. --> 跳转到上级目录 cd ./home --> 跳转到当前目录的home目录下 cd /home/lion --> 跳转到根目录下的home目录下的lion目录 cd --> 不添加任何参数,也是回到家目录
相关信息
输入cd /ho
tab
键会自动补全路径-a
查看目录下所有文件,包括隐藏文件-l
显示详细信息的列表-h
适合人类阅读的排版-t
根据文件最近修改时间排序-i
显示文件的 inode ( inode 是文件内容的标识)默认列举当前目录下所有子目录信息
-h
适合人类阅读的(文件大小会变成 k、M 等适合阅读的形式)-a
同时列举目录下所有文件的大小信息(同 du)-s
只显示当前目录总大小,不显示其他具体信息touch [文件名]
-p
递归创建目录结构,可以直接创建多层目录mkdir [目录名称] mkdir -p dir1/dir2/dir3
cat 会一次性显示文件的所有内容,如果文件行数过多,可能会受命令行显示行数限制,无法看到前面的部分
所以 cat
更适合查看小文件
-n
查看内容显示行号cat [文件名或路径] cat -n [文件名或路径]
less [文件路径]
【快捷操作】
空格键
:前进一页(一个屏幕);b 键
:后退一页;回车键
:前进一行;y 键
:后退一行;上下键
:回退或前进一行;d 键
:前进半页;u 键
:后退半页;q 键
:停止读取文件,中止 less 命令;= 键
:显示当前页面的内容是文件中的第几行到第几行以及一些其它关于本页内容的详细信息;h 键
:显示帮助文档;/ 键
:进入搜索模式后,按 n 键跳到一个符合项目,按 N 键跳到上一个符合项目,同时也可以输入正则表达式匹配。-n
指定行数# 默认显示 10 行 head [文件路径] # 指定显示行数 head [文件路径] -n [行数]
-n
:指定行数-f
:会每过1秒检查下文件是否有更新内容-s
:基于 -f
基础上,指定间隔时间# 默认显示 10 行 tail [文件路径] # 指定显示行数 tail [文件路径] -n [行数] # 动态更新,一般用于查看日志 tail [文件路径] -f -s [时间间隔]
-r
: 递归的拷贝,常用来拷贝一整个目录# 将文件拷贝至目标路径下,根据目标路径命名新文件 cp [被拷贝的文件路径] [目标文件路径] # 将文件拷贝至目标目录下,目标路径如果只有目录路径,则文件名不变 cp [被拷贝的文件路径] [目标目录路径] cp *.txt folder --> 把当前目录下所有 txt 文件拷贝到 folder 目录下
mv 使用方法与 cp 完全相同,可参考上方 cp 使用方法
当目标目录为当前目录时,会覆盖当前文件,即完成重命名
注意
由于 Linux 下没有回收站,一旦删除非常难恢复,因此需要谨慎操作
-i
向用户确认是否删除;-f
文件强制删除;-r
递归删除文件夹,著名的删除操作 rm -rf 。# 删除文件 rm [文件路径] # 删除多个文件 rm [文件 1] [文件 2] # 递归删除,用于删除文件夹 rm -r [路径]
Linux 文件的存储方式分为3个部分:文件名
、文件内容
、权限
文件名
的列表是存储在硬盘的其它地方,和文件内容是分开存放的文件名
通过 inode 标识
绑定到文件内容
,这个绑定方式就是链接
。linux 中有两种链接方式: 硬链接、软链接
硬链接是将一个文件的 inode(类似指针) 共享给链接的文件。这样两个文件就共享了内容
一个文件修改,其他链接的文件内容也会被修改
删除链接的一个文件,不会影响其他文件,因为文件内容还存在。只有把链接的所有文件都删除,文件内容才会消失
硬链接指向的是 inode,所以不能直接链接目录
# 创建文件 2,为文件 1 的硬链接 ln [文件 1] [文件 2]
软链接类似一个快捷方式,指向的是被链接的文件
# 创建文件 1 的软链接: 文件 2 ln -s [文件 1] [文件 2]
相关信息
执行 ls -l
查看目录下文件具体信息时,可以看到链接状态
locate 可以搜索包含关键字的所有
文件和目录。
linux 本身不具备 locate,需要安装该软件
# 安装 locate yum install mlocate # 扫描系统文件,更新文件数据库 updatedb # 搜索文件 file.txt locate file.txt # 支持正则匹配 locate fil*.txt
相关信息
locate
命令会去文件数据库中查找命令,而不是全磁盘查找.
因此刚创建的文件并不会更新到数据库中,所以无法被查找到,可以执行 updatedb
命令去更新数据库。
find 用于查找文件,会实时遍历实际硬盘,允许对每个找到的文件进行后续操作
find 只能找到符合查找内容的文件,而locate 可以查找所有包括关键词的文件
find [路径范围] [目标] [做什么]
文件的名字
来查找大小
来查找最近访问时间
来查找。# 不指定范围,默认为当前目录及子目录 find -name "file.txt" # 当前目录及子目录,通过文件名查找 find . -name "file.txt" # 整个硬盘查找 find / -name "file.txt" # 指定目录下查找 find /var/log -name "access.log" # 正则匹配 find /var/log -name "*.log" # 查找文件名包含指定内容的文件 find /var/log -name "*access*"
# /var 目录下查找文件大小超过 10M 的文件 find /var -size +10M # /var 目录下查找文件大小小于 50k 的文件 find /var -size -50k # /var 目录下查找文件大小查过 1G 的文件 find /var -size +1G # /var 目录下查找文件大小等于 1M 的文件 find /var -size 1M
# 近 7天内访问过的.txt结尾的文件 find -name "*.txt" -atime -7
type f
: 只查找文件type d
: 只查找目录# find . -name "file" -type f # find . -name "file" -type d
# 找出所有后缀为 txt 的文件,并按照 %p - %u\n 的格式打印出来 # %p: 文件名 # %u: 文件所有者 find -name "*.txt" -printf "%p - %u\n" # 找到当前目录及子目录下所有.jpg文件,并直接删除,不会提示 find -name "*.jpg" -delete # 对每个文件名以 .c 结尾的文件都执行 exec 后的指令 # {} 会被查找到的文件替代 # \; 是固定结尾 find -name "*.c" -exec chmod 600 {} \; # 同上, -ok 会增加确认提示 find -name "*.c" -exec chmod 600 {} \;
Linux 是一个多用户的操作系统。
在 Linux 中,我们可以创建无数个用户,但是这些用户是被划分到不同的群组里面的,有一个用户,名叫 root
,是一个很特殊的用户,它是超级用户,拥有最高权限。
自己创建的用户是有限权限的用户,这样大大提高了 Linux 系统的安全性,有效防止误操作或是病毒攻击,但是我们执行的某些命令需要更高权限时可以使用 sudo 命令
# 以 root 身份运行命令 sudo [命令]
# 添加用户 useradd [用户名]
创建后,可以在 /home
中看到该用户的文件夹
# 修改某个用户的密码 passwd [用户名]
# 只删除用户,不删除对应/home下文件夹 userdel [用户名] # 删除用户,及对应/home下文件夹 userdel [用户名] -r
# 切换为root 用户 sudo su # 切换为普通用户 su [用户名] # 切换为 root 用户 su -
groupadd [群组名]
groupdel [群组名]
groups [用户名]
-l
对用户重命名。需要注意的是 /home 中的用户家目录的名字不会改变,需要手动修改。-g
修改用户所在的群组
-G
一次性让用户添加多个群组
-a
-G 会让你离开原先的群组,如果你不想这样做的话,就得再添加 -a 参数,意味着 append 追加的意思。# 对用户重命名,home 中文件夹不会变动 usermod -l [新用户名] [原用户名] # 修改用户所在群组 usermod -g [群组名] [用户名] # 为用户添加多个群组,并离开当前群组 usermod -G [使用 ,间隔的群组名] [用户名] # 为用户追加多个群组,不离开当前群组 usermod -a -G [使用 ,间隔的群组名] [用户名]
-R
递归转让子目录和子文件# 将文件转让给指定用户 chown [用户名] [文件路径] # 指定新的文件归属用户及群组 chown [用户名]:[群组名称] [文件路径] # 转让目录及子目录 chown -R [用户名] [文件路径]
chgrp [群组名称] [文件路径]
使用 ls -l
可以查看文件和目录的详情
文件权限组成为 10 位,排布顺序如下
d
表示目录,就是说这是一个目录-
普通文件l
链接是r
: read 表示文件可读。w
: write 表示文件可写,一般有写的权限,就有删除的权限。x
: execute 表示文件可执行。-
:表示没有相应权限。相关信息
举例:
权限 drwxr-xr-x
的意思:
权限 | 值 |
---|---|
r | 4 |
w | 2 |
x | 1 |
文件的权限数值,就是把每一位的值加起来
相关信息
举例:
640
对应文字权限为:-rw-r-----
# 通过权限三位数值修改权限 chmod [权限数值] [文件路径]
建议使用数字分配权限,字母方式比较复杂
u
: user 的缩写,用户的意思,表示所有者。g
: group 的缩写,群组的意思,表示群组用户。o
: other 的缩写,其它的意思,表示其它用户。a
: all 的缩写,所有的意思,表示所有用户。+
:加号,表示添加权限。-
:减号,表示去除权限。=
:等于号,表示分配权限。# 文件file的所有者增加读和运行的权限 chmod u+rx file # 文件file的群组用户增加读的权限 chmod g+r file # 文件file的其它用户移除读的权限 chmod o-r file # 文件file的群组用户增加读的权限,其它用户移除读的权限 chmod g+r o-r file # 文件file的群组和其他用户移除读的权限 chmod go-r file # 文件file的所有用户增加运行的权限 chmod +x file # 文件file的所有者分配读写和执行的权限,群组其它用户分配读的权限,其他用户没有任何权限 chmod u=rwx,g=r,o=- file
本文作者:Silon汐冷
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!