linux shell特性简单介绍
3129 点击·0 回帖
![]() | ![]() | |
![]() | shell的特性 1、 解释用户输入的命令,并将结果返回给用户 2、 shell是用户与系统之间的接口程序 Tip: 类似于 windows下的批处理的command.com 一、查看linux支持的shell /etc/shells 文件保存shell的种类 echo $SHELL 用来查看当前使用的shell类型 可以进入到其他shell中进行操作,例如 /bin/csh 就可以进入csh进行操作和控制 二、特性 www.atcpu.com 1、支持快捷键,来查看历史命令 2、支持自动补全功能, 3、具有帮助功能, help 就可以查看bash shell具有的内置的命令 三 存取权限与安全 1、 文件、目录的权限 - --- --- --- ls -l 命令的第一列的信息内容 drwxr-xr-x 2 root root 4096 Jun 2 02:57 . drwxr-xr-x 4 volcanol volcanol 4096 Jun 2 02:43 .. -rw-r--r-- 1 root root 113 Jun 2 03:13 hello.c -rwxr-xr-x 1 root root 4683 Jun 2 02:46 hello.exe 第一列信息解读 拥有者权限 拥有者组权限 其他组权限 - rwx r-x r-x 项目的类型 读写执行 读执行 读执行 项目类型: 文件 - 目录 d 块设备 b 连接文件 - 命名管道文件 p socket文件 s 读: 可读 写: 可写 执行: 可执行文件 第二列的数字 表示文件的硬连接数目 第三列 用户 第四列 用户组 第五列 文件大小 第六列 7列、8列 文件最后修改的时间 第9列 文件名 2、改变文件的权限 chmod 改变用户ls中第一列的权限属性, 可以有rwx, 以及s和t 文件 t表示只有拥有者才能删除文件,如果是目录具有t属性,则用户组在目录里面具有相同的权限 如果可执行文件,具有t属性,表示文件将在swap分区内执行 chgrp 改变文件、目录所在组 chown 改变文件所有者(可用来改变用户组) -R: 目录选项,递归的改变,包括所有的子目录 3、SUID、GUID、sticky bit SUID= set uid 的意思,S权限是为了是普通用户在执行一个文件的时候具有文件 拥有者的权限。 www.atcpu.com SUID仅对二进制文件有效,其他文件不能设置。 GUID: 如果SUID的S权限在用户组,就是GUID的属性 Sticky Bit仅对目录有效,如果目录具有sticky bit 属性,则表示只有 root和拥有则具有删除权限。 4、 umask 当前用户创建文件或者目录时的默认权限, umask 0000 设置当前用户的umask值 umask 的配置文件在 /etc/profile 下面的内容为root用家目录下 .bashrc 文件的内容 # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi 5、file查看文件类型 6、which查找可执行文件 7、 软连接、硬链接 硬链接相当于在文件系统中对同一个硬盘地址有两个名字; 软连接类似于windows下的快捷方式 1、3 节 shell脚本 【使用原因】: 节约时间,可以实现自动化配置,例如自动挂载分区的shell配置文件 功能强大 【基本元素】: 第一行: #!/bin/bash 【注释】: 以#表示注释的开头 配置文件中有两种注释: # 和 ; 【第一个实例】 vi hello.sh [root@localhost ~]# cat hello.sh #!/bin/bash www.atcpu.com #this is a demo shell script printchar="hello world!" echo $printchar 编辑完,并修改执行权限后就可以执行这个脚本 1、4 shell特性 【别名】 alias 用于为命令设置别名 alias 可以用来查看配置的别名 [root@localhost ~]# alias alias cp='cp -i' # cp 其实是cp -i 命令 alias l.='ls -d .* --color=tty' alias ll='ls -l --color=tty' alias ls='ls --color=tty' alias mv='mv -i' alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' 设置别名方法: alias 别名='原来的命令' 例如: alias ll='ls -l --color=tty' 当前用户的配置文件在 $HOME/.bashrc 文件中定义别名 【命令替换】 用 `` 号将命令引起来可以改变命令中字符串的执行模式 例如: [root@localhost ~]# cat myfile parm findfile [root@localhost ~]# mkdir parm findfile [root@localhost ~]# ls `cat myfile` -al findfile: total 16 drwxr-xr-x 2 root root 4096 Jun 2 05:38 . drwxr-x--- 5 root root 4096 Jun 2 05:38 .. parm: total 16 drwxr-xr-x 2 root root 4096 Jun 2 05:38 . drwxr-x--- 5 root root 4096 Jun 2 05:38 .. 【后台运行】 作用: 一个终端可以同时运行多个命令 在命令的后面加上 ; 符号就可以将命令移动到后台运行 可以利用 jobs -l 命令查看在后台运行的变量 【变量】 变量在运行过程存储信息 【管道】 管道将一个命令的输出作为另外一个命令的输入 【重定向】 重定向用来改变命令运行过程中的输入和输出来源 [root@localhost ~]# ls > ls.txt [root@localhost ~]# ls <ls.txt anaconda-ks.cfg findfile install.log ls.txt parm desktop.ini hello.sh install.log.syslog myfile sharedir 【模式匹配】 正则表达式 例如: ls *.txt [root@localhost ~]# ls *.txt ls.txt 【特殊字符】 双引号: 用来使 单引号: 反引号: 分号:允许一个行运行多个命令 ;: 括号:创建成组的命令 大括号:创建命令快 空格、制表符、换行符:当做空白 | |
![]() | ![]() |