常用命令
man 命令
对你熟悉或不熟悉的命令提供帮助解释
eg:man ls 就可以查看ls 相关的用法
注:按q 键或者ctrl+c 退出,在linux 下可以使用ctrl+c 终止当前程序运行。
echo 命令
举例:echo $PATH
功能: 将命令行中的参数显示到标准输出中。
env 命令
举例: env
功能:输出环境变量
ps\kill 命令
eg: ps –ef|grep java
kill -9 8080
-9 无条件” kill 命令
chmod 命令
权限修改 用法:chmod 一位8 进制数 filename 。
eg: chmod u+x filenmame // 只想给自己运行,别人只能读
//u 表示文件主人, g 表示文件文件所在组。 o 表示其他人 ;r 表可读,w 表可写,x 表可以运行
chmod g+x filename // 同组的人来执行
whoami/who , whereis/which/pwd , id
//whoami: 确认自己身份
who: 显示所有的用户身份
//whereis/pwd: 查询命令所在目录以及帮助文档所在目录
//which: 查询该命令所在目录( 类似whereis)
//id: 打印出自己的UID 以及GID 。(UID: 用户身份唯一标识。GID: 用户组身份唯一标识。每一个用户只能有一个唯一的UID 和 GID)
eg: whoami // 显示你自已登陆的用户名
whereis bin 显示bin 所在的目录,将显示为:/usr/local/bin
which bin
date 命令
举例:date
功能:显示或设置系统时间,没参数直接显示系统当前的日期和时间
passwd 命令
举例: passwd
功能:修改密码
root 权限下可以修改任意一个账户的密码: passwd < 用户账号 >
file 命令
举例:file 文件名 【参数】
功能:获得文件类型
grep , find 命令
grep: 文本内容搜索;find: 文件或者目录名以及权限属主等匹配搜索
eg: grep success * /* 查找当前目录下面所有文件里面含有success 字符的文件
tail/head 、 cat\more\less 命令
tail: 查看文件尾部的内容 通常用来观察日志 与 head 命令对应
格式:tail -f [file1] [file2]…
eg: tail -f catalina.out
tail -n 100 tomcat/logs/catalina.out
head: 查看文件的前几行内容 与tail 对应
格式: head –n 100 [file]
cat: 显示文件的全部内容
more :向后翻页显示文件内容
less: 向前后翻页显示文件内容
格式:cat/more/less [file1] [file2]
history 用户用过的命令
eg: history // 可以显示用户过去使用的命令
mkdir 命令
eg: mkdir netseek // 创建netseek 这个目录
ls 、 ll 命令
举例 ls -a 显示当前目录下的全部文件(包括隐藏文件)
功能:列出目录文件
touch 命令
举例:touch 【选项】 文件名 ...
功能:修改指定文件的时间标签或者创建一个空文件
选项:-a 仅改变指定文件的存取时间
-c 不创建任何文件
-m 仅改变指定文件的修改时间
- t 使用指定时间
clear 命令
格式:clear
功能:清除显示屏幕
cal 命令
格式:cal [month][year]
功能:显示某年某月的日历
make 命令
格式:make[ 参数][ 目标文件]
功能:编译或建立执行文件
export 命令
使 变量的值对当前shell 的所有子进程都可见
pwd 命令
格式:pwd
功能:显示当前工作目录的绝对路径
grep 命令
格式: grep 'mail' /etc/rc.d/init.d/*
功能:查找 一个文件内容含有 mail 这个字符串的文件名
su 命令
在不退出登陆的情况下,切换到另外一个人的身份
用法: su -l 用户名( 如果用户名缺省,则切换到root 状态)
eg:su -l netseek ( 切换到netseek 这个用户,将提示输入密码)
rm/rmdir 命令
rm 可以删除文件或者目录
rmdir 只能删除空目录
eg: rm –rf 1.c // 将1.c 这个文件删除
rmdir /a/b // 将b 目录删除 b 为空目录
rm a b c d e f // 同时删除 abcdef 文件
注:-r 的rm 命令可以一次删除一棵目录树
-f 可选项取消确认
mv 命令
移走目录或者改文件名
eg: mv filename1 filename2 // 将filename1 改名为filename2
mv qib.tgz ../qib.tgz // 移到上一级目录
cp 命令
拷贝文件
eg: cp filename1 filename2 // 把filename1 拷贝成filename2
cp 1.c netseek/2.c // 将1.c 拷到netseek 目录下命名为2.c
sz/rz 文件上传下载命令
发送文件到客户端: sz filename
从客户端上传文件到 linux 服务端:
只要服务端执行 : rz
wc –l file wc -w file wc -c file:
计算文件行数 计算文件中的单词数 计算文件中的字符数。
expr: 进行数学运算
eg 。 expr 2 "+" 3
tee:
将数据输出到标准输出设备 ( 屏幕 ) 和文件比如: somecommand | tee outfile 。
basename\dirname
basename file: 返回不包含路径的文件名比如: basename /bin/tux 将返回 tux 。
dirname file: 返回文件所在路径比如: dirname /bin/tux 将返回 /bin 。
sed\ awk
Sed 是一个基本的查找替换程序 。可以从标准输入(比如命令管道)读入文本,并将结果输出到标准输出(屏幕)。该命令采用正则表达式(见参考)进行搜索。不要和 shell 中的通配符相混淆。比如:将 linuxfocus 替换为 LinuxFocus : cat text.file | sed 's/linuxfocus/LinuxFocus/' > newtext.file 。
awk 用来从文本文件中提取字段 。缺省地,字段分割符是空格,可以使用 -F 指定其他分割符。 cat file.txt | awk -F, '{print "," }' 这里我们使用,作为字段分割符,同时打印第一个和第三个字段。如果该文件内容如下:
Adam Bor, 34, IndiaKerry Miller, 22, USA |
命令输出结果为:
Adam Bor, IndiaKerry Miller. |
| 、 > 、 >> 、‘’、“”
管道 (|) 将一个命令的输出作为另外一个命令的输入。
> 写入文件并覆盖旧文件。
>> 加到文件的尾部,保留旧文件内容。
‘’ 单引号更严格一些。它可以防止任何变量扩展
“” 双引号可以防止通配符扩展但允许变量扩展。
Eg. #!/bin/sh
echo $SHELL
echo "$SHELL"
echo '$SHELL'
运行结果为:
/bin/bash
/bin/bash
$SHELL
概述
Linux 是一类 Unix 计算机操作系统的统称 。 Linux 操作系统的内核的名字也是 “Linux” 。 Linux 操作系统也是自由软件和开放源代码发展中 最著名的例子。严格来讲, Linux 这个词本身只表示 Linux 内核,但在实际上人们已经习惯了用 Linux 来形容整个基于 Linux 内核,并且使用 GNU 工程各种工具和数据库的操作系统。 Linux 得名于计算机业余爱好者 Linus Torvalds 。
创始人
Linus Torvalds
托瓦兹出生于芬兰赫尔辛基市。父亲尼尔斯· 托瓦兹(Linus Torvalds )是一名活跃的共产主义者及电台记者。托瓦兹家族属于在芬兰占6% 的少数民族芬兰瑞典人。他毕业于赫尔辛基大学 计 算机科学系,1997 年至2003 年在美国加州硅谷任职于全美达公司(Transmeta Corporation )参与该公司芯片的code morph 技术研发。后受聘于开源码发展实验室(OSDL : Open Source Development Labs, Inc ),全力开发Linux 内核。现任职于Linux 基金会 。
象征物
Tux
Tux (一只企鹅,全称为tuxedo,90916P40 Joeing Youthy )是Linux 的标志。将企鹅作为Linux 标志是由林纳斯· 托瓦兹 提出的。
历史发展
Linux 操作系统是UNIX 操作系统的一种克隆系统 。它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet 网络,并经过全世界各地计算机爱好者的共同努力下,现已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。
Linux 操作系统的诞生、发展和成长过程始终依赖着以下五个重要支柱:UNIX 操作系统、MINIX 操作系统、GNU 计划、POSIX 标准和Internet 网络。
UNIX 操作系统的诞生
肯· 汤普逊(左)和丹尼斯· 里奇(右)
Linux 操作系统是UNIX 操作系统的一个克隆版本。UNIX 操作系统是美国贝尔实验室的肯· 汤普逊Ken.Thompson 和丹尼斯· 里奇Dennis Ritchie 于1969 年夏在DEC PDP-7 小型计算机上开发的一个分时操作系统。当时Ken Thompson 为了能在闲置不用的PDP-7 计算机上运行他非常喜欢的星际旅行(Space travel )游戏,在1969 年夏天乘他夫人回家乡加利福尼亚 渡假期间,在一个月内开发出了unix 操作系统的原型。当时使用的是BCPL 语言(基本组合编程语言),后经Dennis Ritchie 于1972 年用移植性很强的C 语言进行了改写,使得UNIX 系统在大专院校得到了推广。
Linux 内核
《深入理解linux 内核》
Linux 是最受欢迎的自由电脑操作系统内核。它是一个用C 语言和汇编语言写成 ,符合POSIX 标准的类Unix 操作系统。Linux 最早是由芬兰黑客林纳斯. 托瓦 兹(Linus B. Torvalds )为尝试在英特尔x86 架构上提供自由免费的类Unix 操作系统而开发的。该计划开始于1991 年,林纳斯· 托瓦兹当时在Usenet 新闻组 comp.os.minix 登载帖子,这份著名的帖子标示着Linux 计划的正式开始。
在计划的早期有一些Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。
技术上说Linux 是一个内核。“ 内核” 指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux 内核的完整操作系统叫作Linux 操作系统,或是GNU/Linux 。
桌面环境
在图形计算中,一个桌面环境(Desktop environment ,有时称为桌面管理器)为计算机提供一个图形用户界面 (GUI ) 。这个名称来自桌面比拟,对应于早期的文字命令行界面(CLI )。一个典型的桌面环境提供图标,视窗,工具栏,文件夹,壁纸以及像拖放这样的能力。整体而言,桌面环境在设计和功能上的特性,赋予了它与众不同的外观和感觉。
现今主流的桌面环境有KDE ,gnome ,Xfce ,LXDE 等,除此之外还有Ambient,EDE,IRIX Interactive Desktop,Mezzo,Sugar,CDE 等。
Linux 发行版
Linux 发行版 指 的就是我们通常所说的“Linux 操作系统” ,它可能是由一个组织,公司或者个人发行的。Linux 主要作为Linux 发行版(通常被称 为"distro" )的一部分而使用。通常来讲,一个Linux 发行版包括Linux 内核,将整个软件安装到电脑上的一套安装工具,各种GNU 软件,其他 的一些自由软件,在一些特定的Linux 发行版中也有一些专有软件。发行版为许多不同的目的而制作,包括对不同计算机结构的支持,对一个具体区域或语言的 本地化,实时应用,和嵌入式系统。目前,超过三百个发行版被积极的开发,最普遍被使用的发行版有大约十二个。
一个典型的Linux 发行版包括:Linux 核心,一些GNU 库和工具,命令行shell ,图形界面的X 窗口系统和相应的桌面环境,如KDE 或GNOME ,并包含数千种从办公包,编译器,文本编辑器到科学工具的应用软件。
很多版本Linux 发行版使用LiveCD ,是不需要安装就能使用的版本。
主流的Linux 发行版 Ubuntu , Debian GNU/Linux ,Fedora , Gentoo ,Mandriva Linux ,PCLinuxOS ,Slackware Linux ,openSUSE ,ArchLinux ,Puppylinux ,Mint , CentOS , Red Hat 等。
中国大陆的Linux 发行版
中标麒麟 Linux( 原中标普华Linux) , 红旗Linux (Red-flag Linux) ,Qomo Linux ( 原Everest) ,冲浪Linux(Xteam Linux) ,蓝点Linux ,新华Linux ,共创Linux ,百资Linux ,veket , lucky8k-veket .Open Desktop ,Hiweed GNU/Linux ,Magic Linux ,Engineering Computing GNU/Linux ,kylin , 中软Linux ,新华华镭Linux(RaysLX) ,CD Linux ,MC Linux ,即时Linux(Thizlinux) ,b2d linux ,IBOX ,MCLOS ,FANX ,酷博linux ,新氧Linux ,Hiweed ,Deepin Linux ,雨林木风 YLMF OS 。
需要说明的是,新氧、Hiweed 、Deepin 都是基于ubuntu ,并且Deepin Linux 是Hiweed 与深度合并后的版本,原来的Hiweed 已经停止更新,新氧也停止更新了。其中CD linux 因可方便集成一些无线安全审计工具,以及较好的中文界面和较小的体积,深受一些破解爱好者喜爱。
大众的Ubuntu
ubuntu 11.04 桌面
初始版本 : 2004 年10 月20 日
赞助公司 : Canonical 有限公司
创始者 : 马克· 舍特尔沃斯
支持的语言 :多语种(包括中文)
简介:
Ubuntu 是一个以桌面应用为主的Linux 操作系统 ,其名称来自 非洲南部 祖 鲁语或豪萨语的“ubuntu” 一词(译为吾帮托或乌班图),意思是“ 人性” 、“ 我的存在是因为大家的存在” , 是非洲传统的一种价值观,类似华人社会的“ 仁爱” 思想。Ubuntu 基于Debian 发行版和GNOME 桌面环境,与Debian 的不同在于它每6 个月会 发布一个新版本。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。Ubuntu 具有庞大的社区力 量,用户可以方便地从社区获得帮助。
基本思想
Linux 的基本思想有两点:第一,一切都是文件 ;第二,每个软件都有确定的用途 。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux 是基于Unix 的,很大程度上也是因为这两者的基本思想十分相近。
文件系统
Linux 继承了Unix 操作系统结构清晰的特点。在linux 下的文件结构非常有条理。但是,上述的优点只有在对linux 相当熟悉时,才能体会到。
/
根目录, 所有的目录、文件、设备都在/ 之下,/ 就是Linux 文件系统的组织者,也是最上级的领导者。
/bin
bin 就是二进制(binary )英文缩写。在一般的系统当中,你都可以在这个目录下找到linux 常用的命令。系统所需要的那些命令位于此目录,比如 ls 、cp 、mkdir 等命令;功能和/usr/bin 类似,这个目录中的文件都是可执行的、普通用户都可以使用的命令。作为基础系统所需要的最基础的命 令就是放在这里。
/boot
Linux 的内核及引导系统程序所需要的文件目录,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下,GRUB 或LILO 系统引导管理器也位于这个目录。
/cdrom
这个目录在你刚刚安装系统的时候是空的。你可以将光驱文件系统挂在这个目录下。例如:mount /dev/cdrom /cdrom
/dev
dev 是设备(device) 的英文缩写。这个目录对所有的用户都十分重要。因为在这个目录中包含了所有linux 系统中使用的外部设备。但是这里并不是放的外 部设备的驱动程序。这一点和我们常用的windows, dos 操作系统不一样。它实际上是一个访问这些外部设备的端口。我们可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。
/etc
etc 这个目录是linux 系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。我们要用到的网络配置文件,文件系统,x 系统配置文件,设备配置信息,设置用户信息等都在这个目录下。
/home
如果我们建立一个用户,用户名是"xx", 那么在/home 目录下就有一个对应的/home/xx 路径,用来存放用户的主目录。
/lib
lib 是库(library )英文缩写。这个目录是用来存放系统动态连接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。因此,千万不要轻易对这个目录进行什么操作,一旦发生问题,你的系统就不能工作了。
/lost+found
在ext2 或ext3 文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片 放在这里。当系统启动的过程中fsck 工具会检查这里,并修复已经损坏的文件系统。 有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。
/mnt
这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom 等目录。可以参看/etc/fstab 的定义。有时我们可以把让系统开机自动挂载文件系统,把挂载点放在这里也是可以的。主要看/etc/fstab 中怎 么定义了;比如光驱可以挂载到/mnt/cdrom 。
/media
有些linux 的发行版使用这个目录来挂载那些usb 接口的移动硬盘( 包括U 盘) 、CD/DVD 驱动器等等。
/opt
这里主要存放那些可选的程序。你想尝试最新的firefox 测试版吗? 那就装到 /opt 目录下吧,这样,当你尝试完,想删掉firefox 的时候,你就可 以直接删除它,而不影响系统其他任何设置。安装到/opt 目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。
/proc
可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的。操作系统运行 时,进程信息及内核信息(比如cpu 、硬盘分区、内存信息等)存放在这里。/proc 目录伪装的文件系统proc 的挂载目录,proc 并不是真正的文件系 统,它的定义可以参见 /etc/fstab
/root
Linux 超级权限用户root 的家目录。
/sbin
这个目录是用来存放系统管理员的系统管理程序。大多是涉及系统管理的命令的存放,是超 级权限用户root 的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin; /usr/X11R6/sbin 或/usr/local/sbin 目录是相似的;我们记住就行了,凡是目录sbin 中包含的都是root 权限才能执行的。
/selinux 好像是对SElinux 的一些配置文件目录,SElinux 可以让你的linux 更加安全。
/srv 服务启动后,所需访问的数据目录,举个例子来说,www 服务启动读取的网页数据就可以放在/srv/www 中
/sys
Linux 内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与 proc 有些类似,但除了与 proc 相同的具有查看和设定内核参数功能之外,还有为 Linux 统一设备模型作为管理之用。
/tmp
临时文件目录,用来存放不同程序执行时产生的临时文件。有时用户运行程序的时候,会产生临时文件。/tmp 就用来存放临时文件的。/var/tmp 目录和这个目录相似。
/usr
这是linux 系统中占用硬盘空间最大的目录。用户的很多应用程序和文件都存放在这个 目录下。在这个目录下,你可以找到那些不适合放在/bin 或/etc 目录下的额外的工具。比如像游戏阿,一些打印工具拉等等。 /usr 目录包含了许多子目录: /usr/bin 目录用于存放程序;/usr/share 用于存放一些共享的数据,比如音乐文件或者图标等等;/usr/lib 目录用于存放那些不能直接 运行的,但却是许多程序运行所必需的一些函数库文件。你的软件包管理器( 应该是“ 新立得” 吧) 会自动帮你管理好/usr 目录的。
/usr/local
这里主要存放那些手动安装的软件,即不是通过“ 新立得” 或apt-get 安装的软件。它和/usr 目录具有相类似的目录结构。让软件包管理器来管理/usr 目录,而把自定义的脚本(scripts) 放到/usr/local 目录下面,我想这应该是个不错的主意。
/usr/share
系统共用的东西存放地,比如 /usr/share/fonts 是字体目录,/usr/share/doc 和/usr/share/man 帮助文件。
/var
这个目录的内容是经常变动的,看名字就知道,我们可以理解为vary 的缩写,/var 下有/var/log 这是用来存放系统日志的目录。/var/ www 目录是定义Apache 服务器站点存放目录;/var/lib 用来存放一些库文件,比如MySQL 的,以及MySQL 数据库的的存放地。
文件类型
在介绍属性时,提到了最前面的标志(d 或 - )可以表示目录或文件,那就是不同的文件种类。Linux 的文件种类主要有下面这几种:
普通文件 (regular file ):就是一般我们存取的文件,由ls -al 显示出来的属性中,第一个属性为 [-] ,例如 [-rwxrwxrwx] 。另外,依照文件的内容,又大致可以分为:
纯文本文件 (ASCII ):这是Unix 系统中最多的一种文件类型,之所以称为 纯文本文件,是因为内容为我们可以直接读到的数据,例如数字、字母等等。设 置文件几乎都属于这种文件类型。举例来说,使用命令“cat ~/.bashrc ” 就可以看到该文件的内容(cat 是将文件内容读出来)。
二进制文件 (binary ):我们在GNU 发展史中提过,系统其实仅认识且可以执行二进制文件(binary file )。Linux 中的可执行文件(脚本,文本方式的批处理文件不算)就是这种格式的。举例来说,命令cat 就是一个二进制文件。
数据格式的文件(data ):有些程序在运行过程中,会读取某些特定格式的文件,那些特定格式 的文件可以称为数据文件(data file )。举例来说,Linux 在用户登入时,都会将登录数据记录在 /var/log/wtmp 文件内,该文件是一个数据文件,它能通过last 命令读出来。但使用cat 时, 会读出乱码。因为它是属于一种特殊格式的文件。
目录(directory ):就是目录,第一个属性为 [d] ,例如 [drwxrwxrwx] 。
连接文件(link ):类似Windows 下面的快捷方式。第一个属性为 [l] ,例如 [lrwxrwxrwx] 。
设备与设备文件(device ):与系统外设及存储等相关的一些文件,通常都集中在 /dev 目录。通常又分为两种:
块(block )设备文件:就是存储数据以供系统存取的接口设备,简单而言就是硬盘。例如一号硬盘的代码是 /dev/hda1 等文件。第一个属性为 [b] 。
字符(character )设备文件:即串行端口的接口设备,例如键盘、鼠标等等。第一个属性为 [c] 。
套接字(sockets ):这类文件通常用在网络数据 连接。我们可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。第一个属性为 [s] ,最常在 /var/run 目录中看到这种文件类型。
管道(FIFO, pipe ):FIFO 也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。FIFO 是first-in-first-out (先进先出)的缩写。第一个属性为 [p] 。