欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

学习shell咯2 博客分类: Linux 编程GoCC++C# 

程序员文章站 2024-02-22 16:42:22
...
登录后shell启动并继承很多变量、I/O流,进程信息等等,fork的子shell则会继承父shell的环境和变量

id命令查看uid和gid

umask是权限补码,chmod是权限码

/etc/profile里指定了umask默认值022,这样对于新创建的文件夹则是777-022=755(drwxr-xr-x),对新创建的文件则是666-022=644(-rw-r--r--)
文件夹和文件权限分三组,从左至右分别是owner/group/others的权限

chmod命令用来改变文件夹和文件的权限
$ chmod 755 file
$ chmod g+w filw
$ chmod go-rx file
$ chmod a=r file

r=read, w=write, x=execute, u=user, g=group, o=others, a=all

chown命令用来更改文件夹和文件的owner和group
$ chown root file
$ chown root:root file


cd命令用来change directory

set命令用来设置本地变量和环境变量

env命令查看当前环境变量

file descriptor是一个unsigned integer,它是kernel维护的file-descriptor table的index,kernel用file-descriptor table来引用打开的文件和I/O流
file descriptor 0表示标准输入(stdin),file descriptor 1表示标准输出(stdout),file descriptor 2表示标准错误(stderr)

当file descriptor赋给非terminal时称之为I/O重定向
$ who > file
$ cat file1 file2 >> file3
$ mail tom < file
$ find / -name file -print 2>errors
% (find / -name file -print) >& errors


一个命令的输出作为另一个命令的输入,则称之为管道pipe
who | wc


信号量signal则是指发送一条消息给一个进程
标准信号量
Number  Name    Description                    Action
0       EXIT    Shell exits                    Termination
1       SIGHUP  Terminal has disconnected      Termination
2       SIGINT  User presses Ctrl-C            Termination
3       SIGQUIT User presses Ctrl-\            Termination
4       SIGILL  Illegal hardware instruction   Program error
5       SIGTRAP Produced by debugger           Program error
8       SIGFPE  Arithmetic error               Program error
9       SIGKILL Cannot be caught or ignored    Termination


当shell用来当作编程语言,命令和shell控制结构输入到一个编辑器并保存在一个文件种,则称之为一个script