Linux

22 7月
  • 基础命令
  • 基础目录
  • 文件命令
  • 文件描述符
  • 管道

基础命令

// 日时
date
date +%Y/%m/%d
date +%H:%M

// 日历
cal
cal 2019
cal 07 2019

// 计算器
bc

env
echo $PATH

基础目录

/根目录
/usr软件存放处
/etc配置文件
/var系统运行相关,其中/var/mail用户邮箱,/var/run程序相关,/var/lock程序相关,/var/spool/news新闻组

文件命令

先了解一下文件属性,执行:

ls -al

Linux共9种权限,分别是拥有者(owner),所在组(group),其他人(others)三种身份,加上读(r),写(w),执行(x)三种权限,叉乘就是9种权限,见上面第一列。

第一列文件权限有十个字符。
第1个字符:文件类型,d是目录,是文件,l是链接文件,b可供存储的周报设备,c串行接口设备,如鼠标键盘等。
第234个字符:这三个字符为一组,这三个字符的位置顺序不会变化,表示文件拥有者的权限。r是可读,w是可写,x是可执行,如果哪个没有权限就为。对目录来说,x可执行表示有进入该目录的权限。
第567个字符:表示文件所属用户组的权限,内容同上。
第8910个字符:表示其他人的权限,内容同上。

例如drwxr-xr-x:目录,拥有者可读可写可执行,用户组和其他人都是可读可执行,但不可写。

另外各权限的数字为r:4,w:2,x:1。例如-rwxrwx—,表示该文件的owner=rwx=4+2+1=7,group=rwx=4+2+1=7,other=0,所以改文件的权限是【770】

权限修改命令:

chown [-R] group file            // 修改文件拥有者权限,可选 -R 表示递归修改,即目录里所有子文件一起修改
chgrp [-R] owner[:group] file    // 修改文件所属用户组权限,可选 -R 表示递归修改,即目录里所有子文件一起修改
chmod [-R] xyz file              // 修改文件权限,例如 chmod -R 777 mydir

文件描述符

Linux中一切皆文件,包括标准输入设备(键盘)和标准输出设备(显示器)在内的所有计算机硬件都是文件。

为了表示和区分已经打开的文件,Linux会给每个文件分配一个整数ID,被称为文件描述符(File Descriptor)。

Linux进程启动后,会在内核空间中创建一个PCB控制块,PCB内部有一个文件描述符表(File descriptor table),记录着当前进程所有可用的文件描述符,也即当前进程所有打开的文件。

文件描述符 文件名 类型 硬件
0 stdin 标准输入文件 键盘
1 stdout 标准输出文件 显示器
2 stderr 标准错误输出文件 显示器

stdin、stdout、stderr 默认都是打开的,在shell命令重定向的过程中,0、1、2 这三个文件描述符可以直接使用。

管道

将两个或者多个命令(程序或者进程)连接到一起,把一个命令的输出作为下一个命令的输入,以这种方式连接的两个或者多个命令就形成了管道(pipe)。

Linux管道使用竖线|连接多个命令,这被称为管道符。

command1 | command2 
command1 | command2 [ | commandN... ]

当在两个命令之间设置管道时,管道符|左边命令的输出就变成了右边命令的输入。只要第一个命令向标准输出写入,而第二个命令是从标准输入读取,那么这两个命令就可以形成一个管道。

command1必须有正确输出,而command2必须可以处理command2的输出结果。command2只能处理command1的正确输出结果,不能处理command1的错误信息。

发表评论

电子邮件地址不会被公开。 必填项已用*标注