一、Shell
1、shell:字符操作系统与外部最主要的接口。它是操作系统最外面的一层。
(1)shell 管理你与操作系统之间的交互:等待你输入命令,向操作系统解释你的输入,并
且处理各种各样的操作系统的输出结果。
(2)shell 提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,
并且可以立即得到响应),或者以shell script(非交互)方式执行。shell script 是放在
文件中的一串shell 和操作系统命令,它们可以被重复使用。本质上,shell script 是命
令行命令简单的组合到一个文件里面。
(3)Shell 基本上是一个命令解释器。
2、shell分类:
(1)Bourne shell (sh)
Bourne shell 是一个交换式的命令解释器和命令编程语言。
此系统后来发展出ksh(Korne Shell)、bash(Bourne Again Shell)、等
·Bourne Again shell(bash):
Bash的提示符号
$:代表一般身份使用者
#:代表root权限
·Korn Shell(ksh)
ksh 结合了所有的C shell 的交互式特性,并融入了Bourne shell 的语法。Korn
Shell 是一个交互式的命令解释器和命令编程语言.它符合POSIX
(2)C shell
它主要是为了让用户更容易的使用交互式功能,并把ALGOL 风格的语法结构变成了C 语
言风格。
注意:各主要操作系统下缺省的shell
·AIX 下是Korn Shell.(ksh)
·Solaris 和FreeBSD 缺省的是Bourne shell.(sh)
·Linux 是Bourne Again shell.(bash)
二、基本操作
1、登录
(1)先执行/etc/profile
(2)接着bash会检查使用者的自家目录中,是否有.bash_profile 或者.bash_login或者
.profile,若有,则会执行其中一个,执行顺序为:
·.bash_profile 最优先
·.bash_login其次
·.profile 最后
这三个档案只有在登入时,才会被bash读取
(3)用户注册信息放在/etc/password 里:
tiantian:x:200:1::/sd0905/tiantian:/bin/csh
用户名:密码占位符:uid(系统唯一标号):gid(组编号):说明信息:主目录:login shell
密码已加密形式放在/etc/shadow 文件里: Permission denied
格式:用户名:密文口令
2、几种退出:
(1)exit:退出当前shell,如果是login shell,和logout 一样.
(2)logout:中断当前连接//这个命令只能那个在login shell 里敲出来,b shell: 不支持logout
(3)ctrl+c:终止一个前台运行程序
(4)ctrl+d:结束终端输入
三、常用命令
1、passwd:改密码旧密码/新密码
2、clear:清屏
3、pwd:当前路径//以绝对路径显示
4、id:查看当前用户有效身份
5、whoami 显示登陆本机的用户信息,相当于id,但是su 之后,显示的是root
who am i 显示当前有效用户身份,比如su 改变身份后,仍然显示真正的用户
6、cd:改变当前工作目录//可以使绝对路径或相对路径
(1)~ 用户主目录
cd ~tiantian cd 到用户名tiantian 的主目录
cd ~/dir1 cd 到主目录的dir1 目录下
(2).当前目录
cd s090501 和cd ./s070801 是等价的
(3).. 父目录
cd .. 返回上层目录
(4)/ 根目录
cd / 进到根目录下
注意:cd 没有选项,转到用户主目录
7、ls 查看文件和目录
ls –l 除名称外,显示详细信息
文件类型-
拥有者权限-
同组人权限-
其他人权限硬连接数拥有者拥有组大小最后修改时间文件名
ls –a 在ls 基础上显示隐藏文件,即以. 开头的文件
ls –t 在ls 基础上以时间排序,最近的在最上面。不写这一项是以ASCII 码排序
ls –F 在名称后面加显示文件类型:@是二进制文件,/是目录,*是可执行文件,文本文
件什么都显示
ls –R 在ls 基础上显示目录及目录下的文件
8、file * 查看所有的文件的类型
9、chmod 修改权限
(1)只有文件的拥有者或root,才可以修改文件或文件夹的权限
(2)rwx-分别代表读,写,执行权限,没有权限,也可用数字421 表示
(3)文件:
r 可以查看文件内容可以more
w 可以修改vi file
x 可以运行它a.sh +回车
(4)目录:
r 可以查看目录内容ls
w 可以在这个目录下可以创建/删除子目录,文件
x 可以进入目录
(5)chmod g-r file1 删除同组人对file1 的读权限
chmod a=rw file1 所有人对file1 有读写权限
chmod 644 file1 拥有者有读写权限,同组人和其他人有读权限
chmod +t dir5 或chmod 1777 dir5 t代表粘着位,是/tmp 临时文件特有的,对文件只有
读权限,d rwxrwxrwt
(6)644 是文件的缺省权限
755 是目录的缺省权限
10、touch 创建新的文件,如果文件已经存在,则改变文件的时间戳
11、mkdir 创建目录
mkdir dir1/dir2 前提是dir1 必须存在
mkdir dir1 dir2 创建多个目录
mkdir ~/dir1 在主目录下创建dir1
mkdir –p dir1/dir2 创建新的目录层次
12、cp 将一个或多个档案复制成另一个档案或者是将其复制到另一个目录去。
(1)cp f1 f2 : 将档名为f1 的档案复制一份为档名为f2 的档案。
cp f1 f2 f3 ... dir : 将档案f1 f2 f3 ... 都以相同的档名复制一份放到目录dir 里面。
cp -r dir1 dir2 : 将dir1 的全部内容全部复制到dir2 里面。
(2)cp 也有一些参数,如下:
-i : 交互是否覆盖
-r : 此参数是用来做递归复制用,可将一整个子树都复制到另一个目录中。
注意:将父目录拷入子目录中会造成死循环
13、mv 剪切文件/目录、将一文件改名。如同cp ,它也有三种格式:
(1)mv f1 f2 : 将档名为f1 的档案变更成档名为f2 的档案。
mv dir1 dir2 : 将档名为dir1 的目录变更成档名为dir2 的目录。
mv f1 f2 f3 ... dir : 将档案f1 f2 f3 ... 都移至目录dir 里面。
(2)mv 的参数有两个,
-i 的意义与cp 中的相同,均是interactive 询问之意。
-f 为强迫( force ) , 就是不管有没有同名的档案,反正我就是要搬过去,所有其他的参
数遇到-f 均会失效。
14、rm & rmdir 用来删除的指令。
(1)rm 的格式如下:
rm f1 f2 f3 .....
(2)rm 的参数比较常用的有几个: -f , -i , 与-r
-f : 将会使得系统在删除时,不提出任何警告讯息。
-i : 交互是否真要删除。
-r : 递归式的删除。
注意:小心不要随便使用rm -rf , 否则有一天你会"欲哭无泪"......
15、ln 链接(是文件/目录的别名)
(1)硬链接:是文件名到文件的对应关系。
ln file1 file2 :为file1 建立硬连接file2t,目标文件事先不能存在。file1 和file2 的硬链
接数一样。
(2)软连接:相当于windows 中的快捷方式,维护的是一个文件到另外一个文件名的对应
关系。
ln -s file1 file2: 链接数不变,file2 相当于file1 的快捷方式,文件类型为l
ln –s d5 d6:为目录d5 建立软连接,若cd d6 然后pwd,显示的是d5 目录
(3)查看节点号加-i,ls –il/ls -i 可看到inode
(4)区别
16、man 命令/函数
man –k keyword(一般是函数)
回车-------下一行
空格-------下一页
q--------退出
/string 查找关键字
17、cat 命令:
(1)cat:查看文件的内容,把文件内容显示到屏幕上,不分屏//可以用|more 分屏,缺省输入键盘
(2)cal > /dev/null 把输出仍掉,显示到空设备,写shell 脚本时,不关心输出结果
cat /dev/null > ~/b.txt 清空一个文件datablock 没有了,字节变为0,但inode 还在
(3)cat 适合查看小文件,一般用作将很多小文件连成一个大文件:cat file* >a.txt
18、more 是分屏显示,适合于看大文件
19、head & tail 前多少行后多少行
(1)head -n filename
head -10 a.txt 看文件a.txt 的前10 行
(2)tail -n filename
(3)tail +n filename 从第n 行开始显示
(4)tail -f filename 时时刷新//常用来查看日志文件
20、特殊字符
(1)* :匹配0 或多个字符,可以放文件的地方就能放通配符ls d*
(2)? :匹配一个字符
(3)[]: 匹配一组或一个范围的字符例: ls [a-h]f //a-h 范围ls[A a]f //A 或a
(4); : 命令之间顺次执行例cd;ls 显示主目录内容
(5)>输出重定向: 可以把一个命令的输出重定向到一个文件里,如果文件存在,覆盖源文
件.
(6)>> 追加: 把一个命令的输出追加到一个存在的文件里.
(7)< 输入重定向: 输入重定向到file
(8)| : 管道左右两边连接命令,把前一个命令的输出,做为下一个命令的输入
(9)tee 既可以显示在屏幕上,又可以保存在文件里例cal | tee a.txt
21、grep:过滤功能,把包含这个串的行输出来,可以使用正则表达式,实现过滤用| grep
(1)ls|grep a 把含有a 这个字符的文件名和目录列出来
(2)grep ^d 列出子目录
(3)grep ^l 列出软连接文件
(4)grep -i 忽略大小写
(5)grep -v 找出不能匹配的行
22、find:找文件
(1)语法: find 路径查询条件
(2)find 是精确匹配: find . –name file1
如果要模糊匹配:find . –name "file*"
(3)参数:
-name 文件名
-mtime 10 修改时间距今10 天那天的文件,-10 表10 天以内,+10 表超过10 天
-user 0 表userid=0 的文件,即root 的文件
-size +400 表文件大小超过400 个block,一个blok 是512 字节的文件,即200K
-print 打印
-perm 777 权限是777 的文件
-type f 只查普通文件,
-atime +365 访问时间超过一年的
(4)xargs:建立参数表并执行命令。
在使用find 命令的-exec 选项处理匹配到的文件时, find 命令将所有匹配到的文件一起
传递给exec 执行。但有些系统对能够传递给exec 的命令长度有限制,这样在find 命令运行
几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs
命令的用处所在,特别是与find 命令一起使用。find 命令把匹配到的文件传递给xargs 命令,
而xargs 命令每次只获取一部分文件而不是全部,不像-exec 选项那样。这样它可以先处理
最先获取的一部分文件,然后是下一批,并如此继续下去。
例: find . -type f -print | xargs file
23、wc:对单词进行统计:
(1)wc -l 以行为单位统计
(2)wc -w 以单词为单位统计
(3)wc -c 以字母为单位统计
(4)wc -C 统计字符个数
24、date:显示或设置日期和时间,只有超级用户才有权限设置日期
25、cal:用来显示某年内指定的日历
cal [[month] year] 例:cal 1998
26、du:统计磁盘容量
(1)du -k:当前目录下和所有子目录空间占用情况(单位block=512k)// -k 以千字节方式
显示.
(2)df -k:文件系统使用情况
27、crontab [-elr [username]] [File] 定时服务,系统会定时执行用户配置的任务
(1)username:是指设定指定user 的时程表,这个前提是你必须要有其权限(比如说是
root)才能够指定他人的时程表。
如果不使用-u user 的话,就是表示设定自己的时程表
(2)参数:
-e:设置定时任务(回车后进入vi 模式)
-l:查看有哪些定时服务
-r:删除目前的任务表
(3)配置的任务文件格式是:* * * * * 指令;
(4)每位表示的含义是:
分钟(0-59);小时(0-23);日期(1-31);月(1-12);星期(0-6,0 表示周日)
eg. 26 17 * * 5 ls -l >> test.txt:表示每到周五的17 点26 分,执行命令ls -l >>
test.txt
28、alias 用户可以将常用的命令用自己习惯的名称来重新命名,不同的Shell语法不同
(1)C Shell:alias dir 'ls -F';
(2)Bourne Shell:alias dir='ls -a'
29、ps:列出当前在系统中运行的进程,只列出跟终端相关的进程
(1)参数:
-e 列出系统中运行的所有的进程
-f 列出完整信息,并格式化输出
-U uid:列出某个用户或用户id相关的进程
无参数:列出当前终端相关的进程
(2)ps -ef:uid pid ppid c stime tty time cmd
uid:进程的onwer
pid:进程号(不会重复)
ppid:父进程号每个进程都有自己的父进程
stime:进程创建日期
tty:终端号//tty ? 服务进程
time: 累计使用cpu 的时间
cmd :进程名
(3)进程状态:
T挂起:被暂停ctrl+Z
Z僵尸进程:子进程先结束,父进程没结束
父进程先走: 托孤交给init
(4)结束一个进程:
前台进程: ctrl+c
kill 进程号//从内存清掉,中止
kill -9 强制终止
pkill 进程名kill sleep
后台进程&: stop %2
可以把前台程序变成后台运行: bg%n n 可用jobs 查到
30、echo:回显字符和查看环境变量值
(1)回显:echo 要显示的字符,如:echo AAA
(2)查看环境变量值:echo $环境变量名,如:echo $PATH
31、网络命令:
ifconfig -a:查看本机IP,在pc 机上用/sbin/ifconfig
netstat –nr:查看网络信息(路由表)
ping: 看网路通不通
telnet:远程登录
rlogin: 在一台服务器上重新登录到其他服务器上
不指定用户名则以现有的用户名登录,否则用-l 指定用户名
ftp:文件传输协议
32、VI的基本使用方法:
四、环境变量(是系统设置的)
1、全局变量:当前进程及子进程有效,环境变量名一般大写.
env查看所有的环境变量。大写,用:分隔
2、局部变量:当前进程有效
echo $path查看,小写,用空格分隔
3、设置环境变量的文件:
(1)csh
:系统环境变量配置文件是/etc/.login,用户的环境变量配置文件是$HOME/.cshrc
和$HOME/.login
1)如果用户的登录Shell是csh,则执行顺序是
etc/.login--> $HOME/.cshrc--> $HOME/.login
2)用户退出时会执行$HOME/.logout。
3)使用env命令可以查看当前环境下的所有环境变量
4)set 语法:只能在当前shell 下使用,shell 切换后不能访问,即局部变量
① 单值set varName=varValue;
② 多值set varName=(varV1 varV2 varV3 ...) 括号、空格分隔
③ 引用其他:set var1=value1 set var2=($var1 value2 value3 ...)
eg. set path=($path ./bin),注意小写path
5)setenv 语法:shell 切换后仍能使用,即全局变量
① 单值setenv varName varValue;
② 多值setenv varName varV1:varV2:varV3:... 冒号分隔
③ 引用其他:setenv var1 value1 setenv var2 value2:value3:$value1 注意顺序,引
用的放在最后
eg. setenv PATH ./bin:$PATH 注意大写PATH
注意:修改后的配置文件如果想立即生效,需要执行:source 配置文件名
eg. source .cshrc 相当于重新加载配置文件,配置我们当前的环境(但这样难免
造成某些属性配置的值会有多份,最好注销重新登录)
(2)sh
:系统环境变量配置文件是/etc/profile,用户的环境变里那个配置文件是
$HOME/.profile
1)执行顺序是先执行系统的文件,再执行用户自己的
2)语法:
① 单值varName=varValue;
② 多值varName=varV1:varV2:varV3:... 冒号分隔
③ 引用其他:var1=value1 var2=$var1:value2:value3:... 定义的顺序无所谓
eg. PATH=$PATH:./bin 这样会将已有的PATH 环境加在./bin 前面
上面的设置方式只能在当前Shell 有效,如果需要在不同Shell 中都有效,需要做
export
eg. export PATH
④ export
也可以在定义的同时export eg. export PATH=$PATH:./bin
也可以定义多个变量后一起export eg. export PATH JAVA_HOME CLASSPATH
注意:修改后的配置文件如果想立即生效,需要执行:. 配置文件名
eg. . .profile 相当于重新加载配置文件
(3)bash
:也使用/etc/profile,用户的环境变里那个是$HOME/.bash_profile、
$HOME/.bash_login、$HOME/.profile 和$HOME/.bashrc
1)执行顺序是
/etc/profile--> $HOME/.bash_profile--> $HOME/.bash_login--> $HOME/.profile,如果
当前的Shell 不是登录Shell,则会读取$HOME/.bashrc 文件,因此在我们的Linux 系统
上,如果修改.bashrc 文件中的环境变量配置,只需要重开一个终端就可以加载(此终端
不是login shell),比较方便。
退出时会找$HOME/.logout 文件
2)语法:与sh 相同
注意:修改配置文件后,如果想立即生效,需要执行:source 配置文件名
eg. source .bash_profile
常用环境变量配置:
PATH:寻找命令或可执行文件的搜索路径;系统寻找时会从头开始,如果到最后
也找不到,则报命令找不到错误
ORACLE_HOME:ORACLE_HOME 下则是ORACLE 的命令、连接库、安装助手、
listener 等
ORACLE_SID:Oracle 数据库的实例名
NLS_LANG:Oracle 数据库的字符集
LD_LIBRARY_PATH:系统查找动态链接库的路径
JAVA_HOME:JDK 的安装目录
CATALINA_HOME:Tomcat 服务器的安装目录
EDITOR:在终端上的编辑环境,使用crontab 或在sqlplus 环境下使用edit 时会用
到此环境变量配置的命令,一般都配置为vi
CVSROOT:服务器上存放工程文件路径
3、常用的环境变量:
(1)HOME:存的是用户主目录
(2)path: 命令(可执行文件)存放的路径!
解决“Commad Not Found! ”的方法。
(3)CLASSPATH:类路径
4、权限掩码(umask)
注意:权限的“减”是不能“借位”的!
权限掩码umask数值对应的项表示它要屏蔽什么权限,有则屏蔽,无则略过。
eg. 022从左往右一次如下
‘0’表示(000)不屏蔽拥有者(u)的任何权限。
‘2’表示(010)屏蔽同组用户(g)的写权限。
‘2’表示(010)屏蔽其它用户(o)的写权限。
所以权限掩码为022表示:屏蔽同组用户和其它用户对文件或目录的写权限!
相关推荐
HP-UNIX,全称为Hewlett-Packard UNIX,是由惠普公司开发的一款操作系统,它是基于UNIX System V Release 4(SVR4)的商业UNIX版本。这个系统主要设计用于惠普的高端服务器和工作站,提供强大的计算能力、高度的可靠...
《Unix编程艺术》、《Unix环境高级编程(第二版)》和《Unix网络编程(第二版)》是三本在IT领域中具有深远影响力的经典著作,涵盖了Unix操作系统的核心概念、系统调用、进程管理、文件操作、网络通信等多个重要主题...
seismic unix 的安装教程 Seismic Unix 是一个功能强大的 seismic 数据处理和分析软件包,它提供了许多有用的工具和命令来处理 seismic 数据。在本教程中,我们将指导您如何安装 Seismic Unix。 安装前准备 在...
标题“Windows下的Unix”指的是在Windows操作系统中运行Unix或类Unix环境的一种技术,这通常涉及到使用像Cygwin这样的工具。Cygwin是一个开放源代码的软件开发环境,它为Windows提供了一个兼容层,允许用户在Windows...
《UNIX环境高级编程》与《UNIX网络编程卷1:协议》是两本深入解析UNIX系统编程的经典著作。在深入理解这些书籍的知识点之前,我们先要了解UNIX系统的基础概念。 UNIX是一个多用户、多任务的操作系统,其设计哲学...
unix2dos批量转换工具(双向) MS桌面版 前一版描述较不祥细,以至于很同朋友不知道可以选择多个文件拖放,故在此多啰嗦几句。 注明:1、窗口支持拖放,单文件或多文件同时拖放均可 2、新版本添加文件列表窗口中点...
Unix 内核源码剖析 北京邮电大学出版社 本书针对1975年由贝尔实验室A发布的UNIX第6版(Sixth Edition Unix,此后简称为 UNIX V6)的内核源代码进行解说。面向的读者主要是计算机专业的学生,以及从事计 算机相关...
《Unix & Linux大学教程》是由Harley Hahn撰写的指导书籍,旨在为读者提供Unix和Linux系统的全面介绍和深入理解。Harley Hahn是一位著名的计算机专家和作家,其书籍以深入浅出、通俗易懂而广受读者欢迎。 在书中,...
**dos2unix Linux 安装包详解** dos2unix 是一款在 Unix/Linux 系统中使用的工具,用于转换文本文件的格式,确保它们在不同操作系统之间兼容。它主要用于消除DOS/Windows系统与Unix/Linux系统之间的文本文件格式...
标题中的“转码为UNIX 文本转换为unix 编码转换为unix”主要涉及的是将使用DOS或MAC编码格式的文本文件转换为UNIX编码格式。在DOS和早期的Windows系统中,文本文件通常使用CRLF(Carriage Return + Line Feed)作为...
【dos2unix_6.0.3】是一个用于在不同操作系统之间进行文本文件格式转换的实用程序,尤其针对从DOS或Windows系统到UNIX或Linux系统的情况。这个工具的主要功能是将那些使用CRLF(回车换行)作为行结束符的DOS/Windows...
《UNIX痛恨者手册》是一本独特而富有争议的书籍,它从一个不同的视角探讨了UNIX操作系统。这本书的出现,旨在挑战人们对UNIX的传统认知,帮助读者理解UNIX的优点和不足,从而更好地适应和利用这一系统。手册分为中文...
《UNIX环境高级编程》是一本深入探讨UNIX系统编程的权威参考书籍。它涵盖了UNIX编程的各个方面,从基础的UNIX系统结构和原理,到文件操作、进程控制、进程间通信、多线程编程、网络编程以及终端I/O和伪终端等内容。...
根据提供的文件信息,我们可以总结以下...以上总结的知识点涵盖了Unix操作系统设计的关键方面,从历史背景到系统结构,再到文件系统内部工作原理和系统调用接口,这些内容为Unix系统的深入研究和理解提供了重要的基础。
《电子科技大学Unix复习指南》 Unix,作为一款历史悠久且广泛使用的操作系统,对于计算机科学的学习者和专业人士来说,具有举足轻重的地位。本复习资料由电子科技大学的学生精心整理,旨在帮助学习者深入理解和掌握...
不同的操作系统处理文本文件的方式有所差异,其中最常见的就是DOS(Windows)和UNIX(Linux)系统的行结束符不一致。DOS系统使用CRLF(Carriage Return, Line Feed)作为行结束符,而UNIX系统则仅使用LF(Line Feed...
《理解Unix/Linux编程》这本书是Unix/Linux编程领域的经典之作,旨在帮助读者深入理解这两个操作系统的核心原理和编程技术。书中的内容不仅涵盖了基础的系统调用、文件操作,还包括进程管理、网络编程等高级主题,是...
Unix操作系统自1969年问世以来,至今已有20年的历史,它的第一版于1969年在Bell实验室产生,1975年对外公布,1976年以后在Bell实验室外广泛使用。目前这个操作系统已经广泛移植在微型计算机,小型计算机,工作站,...
unix2dos-2.2-35.el6.x86_64.zip 解压直接: rpm -ivh unix2dos-2.2-35.el6.x86_64.rpm rpm -ivh unix2dos-2.2-35.el6.x86_64.rpm rpm -ivh unix2dos-2.2-35.el6.x86_64.rpm rpm -ivh unix2dos-2.2-35.el6....
在Linux系统中,dos2unix工具是一个非常实用的命令行程序,用于将文本文件的格式从DOS/Windows风格转换为UNIX/Linux风格。这个转换主要包括行尾符的更改,DOS文件通常使用CRLF(回车换行)作为行结束符,而UNIX/...