Linux基础(一):文件和目录管理
来源:互联网 发布:西门子工业组态软件 编辑:程序博客网 时间:2024/05/29 16:33
一、Linux文件管理
元字符
* 匹配一个或多个字符
? 匹配一个字符
注释:含有文件/目录的项都可以以绝对路径或者相对路径的形式表示。
文件操作命令
mv:移动/重命名文件或者目录
cp:复制文件
ls:列出文件或者目录信息(-l 详细信息)
wc:统计当前文件的行数、单词数和字符数
rm:删除文件
文件查看命令
cat:连接(concatenate)文件不打印;打印到标准输出设备(-n 显示行号;-A 显示不可打印字符,如$等)
tac:连接文件;以行倒序打印到标准输出设备
more:查看长文件(空格:下页; B:上页)
head:显示文件开头内容(-n 前n行; -c 开始的字符个数)
tail:显示文件末尾内容(-n 后n行;-c 末尾的字符个数)
标准的Linux流
一般情况下,每个Linux程序运行时都会创建三个文件流(三个文件):- 标准输入流(stdin):stdin的文件描述符为0,Linux程序默认从stdin读取数据。
- 标准输出流(stdout):stdout 的文件描述符为1,Linux程序默认向stdout输出数据。
- 标准错误流(stderr):stderr的文件描述符为2,Linux程序会向stderr流中写入错误信息。
二、Linux目录
/ 表示根目录
~ 表示主目录
. 表示当前目录
.. 表示上级目录
- 在当前和上一个进入目录之间切换
以 / 开头——绝对路径
不以 / 开头——相对路径(与当前目录的关系)
pwd:显示绝对路径
mkdir:创建目录(+绝对路径或者相对路径; 同时创建多个目录;)——创建父目录(多级目录):-p(适用于上级目录不存在的情况)
rmdir:删除目录(目录必须为空)
注释:含有文件/目录的项都可以以绝对路径或者相对路径的形式表示。
三、Linux文件属性
Linux中的所有数据都被保存在文件中,所有的文件被分配到不同的目录。目录是一种类似于树的结构,称为文件系统。
Linux中的文件类型:
- 普通文件(regular file):是以字节为单位的数据流,包括文本文件、源码文件、可执行文件等。文本文件(ASCII)和二进制文件(binary)对Linux来说并无区别,对普通文件的解释由处理该文件的应用程序进行——可以用cat、more等命令直接查看文本文件的内容;
- 目录文件(directory):类似于Windows的文件夹;
- 链接文件(软链接,link):类似于Windows的快捷方式;
- 设备文件:Linux 与外部设备(例如光驱,打印机,终端,modern等)通过设备文件进行通信。例如,每一个终端都有自己的设备文件来供 Linux 写数据(出现在终端屏幕上)和读取数据(用户通过键盘输入)。
特别:设备文件和普通文件不一样,设备文件中并不包含任何数据。
设备文件的类型:
- 字符设备文件:以字母"c"开头。字符设备文件向设备传送数据时,一次传送一个字符。典型的通过字符传送数据的设备有终端、打印机、绘图仪、modern等。
- 块设备文件:以字母"b"开头。块设备文件向设备传送数据时,先从内存中的buffer中读或写数据,而不是直接传送数据到物理磁盘。
查看Linux文件属性:
ls -l 查看当前目录下文件
$ls -l /home/amrood-rwxr-xr-- 1 amrood users 1024 Nov 2 00:10 myfiledrwxr-xr--- 1 amrood users 1024 Nov 2 00:10 mydir
第1列:文件类型;所属主、所属组和其他用户的权限、第1位为文件类型:
第2列:链接占用的节点
第3列:所属主
第4列:所属组
第5列:文件大小
第6/7/8列:最后修改时间/创建时间
第9列:文件名
更改文件权限:
chgrp:改变文件和目录(只是该目录)的所属组(group)——chgrp [-R] group file/dir(list)
若要修改目录及之下的目录和文件,递归(recursive)修改 -R ;
大多数命令可以作用于 多个文件/目录;
chown:改变文件或目录的所属者(owner)——chown [-R] user file/dir(list)
chmod:改变文件或目录权限
注释:
1)目录权限:r 可读即可看见,x 可执行即打开目录;
2)Linux下,目录的默认权限为755(rwxr-xr-x,),文件的默认权限为644(rw-r--r--,)。
- chmod num file/dir(list)
- chmod [u/g/o/a][+/-/=][r/w/x/a] file/dir(list)
umask:修改文件或目录的默认权限
注释:
1)建立普通文件,预设没有可执行权限,即666(-rw-rw-rw-);建立目录,预设所有权限开放,即777(drwxrwxrwx)。
2)umask值为默认差值,即默认权限值=预设(666/777)-umask值(默认022)。因此,普通文件默认权限为644,目录默认权限为755
注意:umask的计算方法,换算成数字做减法,有时会出错。如666-033=633,实则为“-rw-rw-rw-”-“-----wx-wx”=“-rw-r--r--”=644
chattr:修改文件或目录的特殊权限
lsattr:读取文件或目录的特殊权限
set uid、set gid、sticky bit:
- chmod [u/g/o/a][+s] file/dir(list)
四、Linux环境变量
同时,在Linux中断中输入命令时,只是打出命令,而不使用命令的绝对路径,就是因为环境变量PATH起作用。
例如:echo $PATH
即可以看到PATH环境变量的值。
在Linux中,环境变量是一个很重要的概念。环境变量可以由系统、用户、Shell以及其他程序来设定。
变量就是一个可以被赋值的字符串,赋值范围包括数字、文本、文件名、设备以及其他类型的数据。
下面的例子,我们将为变量 TEST 赋值,然后使用 echo 命令输出:
$ TEST="Linux Programming"$ echo $TESTLinux Programming
注意:变量赋值时前面不能加 $ 符号,变量输出时必须要加 $ 前缀。退出 Shell 时,变量将消失。PS1和PS2变量
PS1变量用来保存命令提示符,可以随意修改,如果你不习惯使用 $ 作为提示符,也可以改成其他字符。PS1变量被修改后,提示符会立即改变。
例如,把命令提示符设置成'=> ':
$PS1='=> '=> =>
也可以将提示信息设置成当前目录,例如:=>PS1="[\u@\h \w]\$"[root@ip-72-167-112-17 /var/www/tutorialspoint/Linux]$[root@ip-72-167-112-17 /var/www/tutorialspoint/Linux]$
命令提示信息包含了用户名、主机名和当前目录。
下表中的转义字符可以被用作PS1的参数,丰富命令提示符信息。
你可以在每次登录的时候修改提示符,也可以在 .profile 文件中增加 PS1 变量,这样每次登录时会自动修改提示符。
PS2 变量:如果用户输入的命令不完整,Shell还会使用第二提示符来等待用户完成命令的输入。默认的第二命令提示符是 >,保存在 PS2 变量,可以随意修改。
下面的例子使用默认的第二命令提示符:
$ echo "this is a> test"this is atest$
下面的例子通过PS2变量改变提示符:$ PS2="secondary prompt->"$ echo "this is asecondary prompt->test"this is atest$
常用环境变量
下表列出了部分重要的环境变量,这些变量可以通过上面提到的方式修改。下面的例子中使用了部分环境变量:
$ echo $HOME/root]$ echo $DISPLAY$ echo $TERMxterm$ echo $PATH/usr/local/bin:/bin:/usr/bin:/home/amrood/bin:/usr/local/bin$
五、Linux下搜索文件
*** ls 等命令时按条件显示或输出???1、which
查找可执行文件的绝对路径。(注:只能查找PATH环境变量中出现的路径下的可执行文件)
2、whereis
3、locate
4、find
find [选项] [参数]
find命令链接:http://man.linuxde.net/find
-name:文件名匹配
find /usr/bin/ -name v*——搜索以v 开头的文件
-iname:文件名匹配且忽略大小写
find /usr/bin/ -name v*——即搜索以v开头的文件且忽略大小写
-o:同时满足选项
find /usr/bin/ -name v* -o -name h*——搜索以v 和h 开头的文件
-type:类型匹配搜索(f:普通文件;d:目录文件;c:字符设备文件;b:块设备文件)
find /usr/bin/ -type l——搜索 l 类型的文件
-maxdepth:基于目录深度搜索
find /usr/bin/ -maxdepth 3 -name v*——基于三层目录以文件名匹配搜索
-size:文件大小匹配(b:块512字节;c:一字节;w:2字节;k:千字节;M;G)
find /usr/bin/ -size +5M -type f——搜索目录下 大于5M字节 的普通文件。(-5k 即小于; 5k 即等于)
-empty:列出所有长度为0的相关文件
find /usr/bin/ -empty -name h*——搜索以h 开头的长度为0的文件
- Linux基础(一):文件和目录管理
- linux 文件和目录管理--基础命令
- linux学习笔记(一)--文件和目录管理
- Linux常用命令(一)Linux管理文件和目录的命令
- Linux基础学习-文件和目录管理命令
- 一.Linux管理文件和目录的命令
- Linux文件管理:文件和目录管理
- Linux文件管理:文件和目录管理
- linux文件和目录管理
- Linux文件和目录管理
- linux文件和目录管理
- Linux文件和目录管理
- linux 文件和目录管理
- linux文件和目录管理
- Linux文件和目录管理
- 【Linux】 管理文件和目录
- Linux基础 标准教程(2)—文件和目录管理命令 ls
- 【基础】linux系统-->文件与目录管理(上)
- 矩形的个数
- 软件工程(C语言实践篇)学习心得总结
- vue公共样式1 global.scss
- 题解——Leetcode 18. 4Sum 难度:Medium
- Java跨平台原理
- Linux基础(一):文件和目录管理
- git常用命令详解
- java
- 【Tensorflow】辅助工具篇——scikit-image介绍
- Unity学习笔记
- vue公共样式2resetvux.scss
- 对Attention is all you need 的理解
- PHP 第三方支付
- java生成二维码