Linux 下文件和目录的特点
Linux 下文件和目录的特点
- Linux 文件 或者 目录 名称最长可以有 256 个字符
- 以 . 开头的文件为隐藏文件,需要用 -a 参数才能显示
- . 代表当前目录
- … 代表上一级目录
目标:
- 理解学习linux终端命令的原因
- 常用linux命令实践
原因
- Linux 刚面世时并没有图形界面,所有的操作全靠命令完成,如 磁盘操作、文件存取、目录操作、进程管
理、文件权限 设定等 - 在职场中,大量的 服务器维护工作 都是在 远程 通过 SSH 客户端 来完成的,并没有图形界面,所有的维护
工作都需要通过命令来完成 - 作为后端程序员,必须要或多或少的掌握一些 Linux 常用的终端命令
- Linux 发行版本的命令大概有 200 多个,但是常用的命令只有 10 多个而已
- 学习终端命令的技巧:
- 不需要死记硬背,对于常用命令,用的多了,自然就记住了
- 不要尝试一次学会所有的命令,有些命令是非常不常用的,临时遇到,临时百度就可以
常用Linux命令的基本使用
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 |
ls
|
list | 查看当前文件夹下的内容 |
02 |
pwd
|
print work directory | 查看当前所在文件夹 |
03 |
cd[目录名]
|
change directory | 切换文件夹 |
04 |
touch[文件名]
|
touch | 如果文件不存在,新建文件 |
05 |
mkdir[文件名]
|
make directory | 创建目录 |
06 |
rm[文件名/目录名]
|
remove | 删除指定的文件或目录 |
07 |
clear
|
clear | 清屏,等同于ctrl+L |
08 |
mv[文件名/目录名 ][文件名/路径]
|
move | 两个作用:[修改文件或目录名为新的名字][移动文件或目录到新的路径下] |
09 |
cp[文件名/目录名][路径]
|
copy | 复制文件/目录到新的路径下 |
10 |
cat[文件名]
|
Concatenate | 查看文件内容 |
11 |
su
|
Swith user | 切换用户,切换到root用户,“-”表示用户的环境变量一起切换,“-c”,仅执行一次命令,而不切换用户身份 |
12 |
chown
|
Change owner | 改变所有者 |
13 |
chgrp
|
Change group | 改变用户组 |
14 |
ps
|
Process Status | 进程状态 |
15 |
chmod 权限数字 [文件名/目录名]
|
Change mode | 改变文件或目录权限 |
16 |
head
|
head | 查看文件前几行(默认10行),-n:指定行数 |
17 |
tail
|
tail | 查看文件的后几行,-n:指定行数,-f(follow)动态显示文件内容 |
18 |
ln
|
link | 产生链接文件,类似win中创建快捷方式 |
19 |
man
|
manual | 获取命令或者配置文件的帮助信息 |
20 |
help
|
查看shell内置命令的帮助信息 |
小技巧:
ctrl + shift + =
:放大终端窗口的字体显示
ctrl + -
:缩小终端窗口的字体显示
文件系统操作
- 常用选项
参数 | 含义 |
---|---|
-a
|
显示指定目录下所有子目录与文件,包括隐藏文件 |
-l
|
以列表方式显示文件的详细信息 |
-h
|
配合 -l 以人性化的方式显示文件大小 |
ll
等同于ls -al
- ls 通配符的使用
通配符 | 含义 |
---|---|
*
|
代表任意个数个字符 |
?
|
代表任意一个字符,至少 1 个 |
[]
|
表示可以匹配字符组中的任一一个 |
[abc]
|
匹配 a、b、c 中的任意一个 |
[a-f]
|
匹配从 a 到 f 范围内的的任意一个字符 |
切换目录:
注意:Linux 所有的 目录 和 文件名 都是大小写敏感的
命令 | 含义 |
---|---|
cd
|
切换到当前用户的主目录(/home/用户目录) |
cd ~
|
切换到当前用户的主目录(/home/用户目录) |
cd .
|
保持在当前目录不变 |
cd ..
|
切换到上级目录 |
cd -
|
可以在最近两次工作目录之间来回切换 |
- 相对路径和绝对路径
相对路径:在输入路径时,最前面不是 / 或者 ~,表示相对 当前目录 所在的目录位置
绝对路径:在输入路径时,最前面是 / 或者~,表示从根目录/家目录开始的具体目录位置
删除目录/文件
使用 rm 命令要小心,因为文件删除后不能恢复
选项 | 含义 |
---|---|
-f
|
force,强制删除,忽略不存在的文件,无需提示 |
-r
|
recursive,递归地删除目录下的内容,删除目录时必须加此参数 |
扩展点: 删除乱码文件
一些文件乱码后使用rm -rf 依然无法删除此时,使用ll -i 查找到文件的inode节点然后使用find . -inum 查找到的inode编号 -exec rm {} -rf \;就能顺利删除了
修改文件名称/移动文件
mv aaa bbb:修改文件名aaa到bbb
mv aaa bbb/ccc:将aaa文件移动到bbb目录下并改名为ccc
复制文件
cp aaa '路径':复制aaa文件到'路径'下
[语法]:cp [-rp] 源文件或目录 目的目录
-r :递归处理,复制目录
-p :保留文件属性(yuan)
创建文件
- 创建文件或修改文件时间
- 如果文件 不存在,可以创建一个空白文件
- 如果文件已经存在,可以修改文件的末次修改日期
touch 文件名
:创建文件touch {文件名1,文件名2}
:同时创建多个文件echo "hello,nice to meet u" > aaa
:向文件aaa中写入hello,nice to meet u【如果aaa文件存在,则覆盖掉原数据】echo 'hi baby' >> aaa
:向文件aaa中末尾处追加hi baby
创建文件夹
选项 | 含义 |
---|---|
-p
|
可以递归创建目录 |
mkdir 目录名
新建目录的名称 不能与当前目录中 已有的目录或文件 同名
查看文件内容
cat
命令可以用来查看文件内容、文件合并等功能cat
会一次显示所有的内容,适合查看内容较少的文本文件
选项 | 含义 |
---|---|
-b
|
对非空输出行编号 |
-n
|
对输出的所有行编号 |
cat 文件名:查看文件内容
more
命令可以用于分屏显示文件内容,每次只显示一页内容- 适合于 查看内容较多的文本文件
使用 more 的操作键:
操作键 | 功能 |
---|---|
空格键
|
显示手册页的下一屏 |
Enter 键
|
一次滚动手册页的一行 |
b
|
回滚一屏 |
f
|
前滚一屏 |
q
|
退出 |
head
:head 文件名
[root@master data]# head idf.txt
劳动防护 13.900677652
生化学 13.900677652
奥萨贝尔 13.900677652
考察队员 13.900677652
岗上 11.5027823792
倒车档 12.2912397395
编译 9.21854642485
蝶泳 11.1926274509
外委 11.8212361103
故作高深 11.9547675029
[root@master data]# head -3 idf.txt
劳动防护 13.900677652
生化学 13.900677652
奥萨贝尔 13.900677652
- tail:tail 文件名
[root@master data]# tail idf.txt
拿手戏 13.2075304714
冯公子 13.2075304714
哲 9.34680076038
外行话 12.1089181827
防冻液 11.0674643079
推服 13.2075304714
丝路 10.604840786
一闹 10.1394775363
写封信 10.1630080337
玩花样 13.2075304714
[root@master data]# tail -3 idf.txt
一闹 10.1394775363
写封信 10.1630080337
玩花样 13.2075304714
ln
:ln -s [源文件] [目标文件] ---> 创建软链接,源文件使用绝对路径
ln [源文件] [目标文件] ---> 创建硬链接
命令 | 语法 | 作用 | 示例 |
---|---|---|---|
find
|
find [搜索路径] [匹配条件]
|
查找文件或目录 | find -name 123.txt:当前路径下查找 123.txt 文件 |
参数1 |
-name
|
按名称查找、精确查找 | find / -name 123.txt |
参数2 |
-iname
|
按名称查找,不区分大小写、模糊查找 | find / -iname abc*:查找根目录下所有 abc 开头的、find / -iname abc??? 在“/”目录下查找 abc 开头并且后面有三位的文件 |
参数3 |
-size
|
按文件大小查找,以block为单位,一个block是512B, 1K=2block、+:大于、-:小于、不写:是等于 | find / -size -102400,在根目录下找小于 100M 的文件 |
参数4 |
-type
|
按文件类型查找,f:二进制文件、l:软连接文件、d:目录、c:字符文件 | find / -type f —>查找根目录下的二进制文件 |
- Find Tips
- 当使用正则时候,加双引号:find / -name “*abc” —> 查找根目录下以 abc 结尾的所有文件
- 模糊匹配的条件,建议使用单引号或双引号括起来。如果*被转义,可使用 单双引号括住查询条件,或者使用*。
grep
命令
- Linux系统中
grep
命令是一种强大的文本搜索工具 grep
允许对文本文件进行模式查找,所谓模式查找,又被称为正则表达式
选项 | 含义 |
---|---|
-n
|
显示匹配行及行号 |
-v
|
显示不包含匹配文本的所有行(相当于求反) |
-i
|
忽略大小写 |
- 常用的两种模式查找
参数 | 含义 |
---|---|
^a
|
行首,搜寻以 a 开头的行 |
ke$
|
行尾,搜寻以 ke 结束的行 |
管道 |
- Linux 允许将一个命令的输出可以通过管道做为另一个命令的输入可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里【|】的左右分为两端,左端塞东西(写),右端取东西(读)
- 常用的管道命令有:
more
:分屏显示内容grep
:在命令执行结果的基础上查询指定的文本
linux
权限描述格式解读
示例:drwxr-xr-x
- d:表示节点类型(‘d’:文件夹—‘-’:文件—‘l’:链接)
- r:可读
- w:可写
- x:可执行
第一组rwx:表示文件拥有者对它的权限:可读可写可执行
第二组x-r:文件所属组的权限:可读可执行,不可写
第三组x--:其他用户组权限(不包含以上两组):可执行,不可写、不可读
修改权限
字符修改权限
chmod g -rw aaa
: 将aaa文件所在用户组权限:不可读、不可写chmod o -rw
: 将aaa文件其他用户组权限:不可读、不可写chmod u+x
:将aaa文件所属用户权限增加x
数字修改权限
r = 4
w = 2
x = 1
777:一位数字代表一个用户组,每个用户组的权限之和为7
chmod 777 aaa:aaa
文件全部用户组拥有可读、可写、可执行权限
chmod 644 aaa: rw-r-r
多级目录权限的修改【递归修改权限】:
chmod - R 644 aaa:aaa
目录下所有的文件按文件夹的权限都更改为644
示例:
444 r--r--r--
600 rw-------
644 rw-r--r--
666 rw-rw-rw-
700 rwx------
744 rwxr--r--
755 rwxr-xr-x
777 rwxrwxrwx
其他
echo
重定向: > 和 >>
管道: |
终端实用技巧
- 自动补全
- 在敲出文件/目录/命令的前几个字母之后,按下tab键
- 如果输入的没有歧义,系统会自动补全
- 如果还存在其他文件/目录/命令,再按一下tab键,系统会提示可能存在的命令
- 曾经使用过的命令
- 按上/下光标键可以在曾经使用过的命令之间来回切换
- 如果想要退出选择,并且不想执行当前选中的命令,可以按 ctrl + c
Tips
ctrl + c
:强制关闭ctrl + z
:后台运行
Linux 下文件和目录的特点相关推荐
- Linux运维之linux下文件与目录管理
一.实验环境(rhel7.0版本) 主机环境:rhel7.0 各主机信息 主机名 IP server 172.25.254.1 二.Linux的系统结构 1.Linux系统是一个根文件系统,是一个倒树 ...
- linux下文件以及目录权限修改(摘抄)
http://www.linuxidc.com/Linux/2014-10/108114.htm chagrp 改变所属组:chown 改变拥有者:chmod 改变权限: 1. 改变所属群组, chg ...
- linux下文件或目录是否存在的函数,Linux下的C++程序:判断目录/文件是否存在
本文中写了两个函数: 1)int IsFileExist(const char* path) 用于检查一个目录是否存在 -1:存在 0:不存在 2)int IsFileExist(const char ...
- mysql 多数据库文件_今天突然发现我的Linux下MySQL数据库目录多了好多文件
今天再次重现Blog了,虽然很忙,还是要来写一下Blog的,嘻,首先还是一样先谢谢Sery 今天发现了我的Linux下Mysql数据库目录多了好多Mysql-bin.0000X这些文件,经过自己查找资 ...
- linux修改目录block信息,linux下文件操作inode,block的变化
在"浅谈linux性能调优之三:分区格式化之前的考虑" http://my.oschina.net/sharelinux/blog/143522 一文中我说了inode与bl ...
- 怎么查这个文件在linux下的哪个目录
因为要装pl/sql所以要查找tnsnames.ora文件..看看怎么查这个文件在linux下的哪个目录 find / -name tnsnames.ora 查到: /opt/app/oracle/p ...
- 解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题
解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题 参考文章: (1)解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题 (2)http ...
- Linux系统下文件与目录操作讲解
Linux系统下文件与目录操作 在Linux系统中有一句话叫做,一切皆文件.上节我们说的I/O操作,对于普通I/O操作,都是打开.读写.关闭.这节我们通过stat结构体来了解文件的一些基本信息和本质特 ...
- Linux系统下文件与目录操作
Linux系统下文件与目录操作 与其它操作系统一样,在Linux系统下用户的数据和程序也是以文件的形式保存的.所以在使用Linux的过程中,是经常要对文件与目录进行操作的.现在我们就以一个Windo ...
- Linux下 C++遍历目录文件
可参考如下代码或者参考链接博客. 测试代码: #include <iostream> #include <stdio.h> #include <unistd.h> ...
最新文章
- 自动运维PXE安装系统和DNS缓存解析
- 2019.05.15
- 可穿戴计算之父:成都能成为可穿戴技术未来中心
- Mac 环境 下使用Charles 抓包Http/Https请求
- 深度学习数据自动编码器_如何学习数据科学编码
- (ECC)椭圆曲线加密算法原理和C++实现源码
- 【Python】hashlib模块实现MD5加密
- linux-ubuntu txt乱码
- DataList:HTML5中的input输入框自动提示宝器
- android 系统 ---(1) 框架的代码组织介绍
- 目录启动CXF启动报告LinkageError异常以及Java的endorsed机制
- 域控查看ldap端口命令_LDAP基础安装与简单入门使用
- 【图像隐写】基于matlab LSB算法图像隐写提取【含Matlab源码 366期】
- GooFlow插件IE8及以下报无法设置未定义或 null 引用的属性“value”错误
- java 打印心_在Java中打印输出心形图案!
- 【WAX云钱包】Cloudflare反爬虫突破(SSL指纹识别)
- 如何学IT?零基础入门自学Java编程系列:java简介跟计算机常识
- STM32模拟IIC读取PCF8563
- 1297: 小数化分数
- 洛谷 P1255 数楼梯(dp + 高精度)