计算机基础

计算机基础与linux的常用命令

  • 计算机操作系统

计算机系统由计算机 硬件和 软件两部分组成。硬件包括 中央处理机、 存储器和 外部设备等;软件是计算机的运行程序和相应的 文档。计算机系统具有 接收和存储信息、按程序快速 计算和判断并输出处理结果等功能。常见的系统有Windows,Linux等。

特点

计算机系统的特点是能进行精确、快速的计算和判断,而且通用性好,使用容易,还能联成网络。①计算:一切复杂的计算,几乎都可用计算机通过 算术运算和逻辑运算来实现。②判断:计算机有判别不同情况、选择作不同处理的能力,故可用于管理、控制、对抗、 决策、推理等领域。③存储:计算机能存储巨量信息。④精确:只要 字长足够,计算精度理论上不受限制。⑤快速:计算机一次操作所需时间已小到以纳秒计。⑥通用:计算机是可编程的,不同程序可实现不同的应用。⑦易用:丰富的高性能软件及智能化的人-机 接口,大大方便了使用。⑧联网:多个计算机系统能超越地理界限,借助 通信网络,共享远程信息与软件资源。

计算机的组成

  • 硬件

1946年数学家冯·诺依曼于提出 运算器、控制器、存储器、输入设备、输出设备

冯•诺依曼体系结构

主要由 中央处理器、 存储器、输入输出 控制系统和各种 外部设备组成。中央处理器是对信息进行高速运算处理的主要部件,其处理速度可达每秒几亿次以上操作。存储器用于 存储程序、数据和文件,常由快速的 主存储器(容量可达数百 兆字节,甚至数G字节)和慢速海量 辅助存储器(容量可达数十G或数百G以上)组成。各种输入输出外部设备是人机间的信息转换器,由 输入-输出控制系统管理外部设备与主存储器(中央处理器)之间的 信息交换。

  • 软件

软件分为系统软件、支撑软件和应用软件。 系统软件由操作系统、实用程序、 编译程序等组成。操作系统实施对各种软硬件资源的管理控制。实用程序是为方便用户所设,如文本编辑等。编译程序的功能是把用户用汇编语言或某种高级语言所编写的程序,翻译成机器可执行的机器语言程序。 支撑软件有 接口软件、 工具软件、 环境数据库等,它能支持用机的环境,提供 软件研制工具。 支撑软件也可认为是系统软件的一部分。应用软件是用户按其需要自行编写的专用程序,它借助系统软件和支援软件来运行,是软件系统的最外层。

  • 发展历史

1946年,世界上 第一台计算机EAINC,在美国诞生

第一代计算机(1946-1957) 电子管时代

第二代计算机(1958-1964) 晶体管时代

第三代计算机(1965-1970) 集成电路时代

第四代计算机(1971以后) 大规模集成电路时代

  • 服务器

服务器Server是计算机的一种,是网络中为客户端计算机提供各种服务的高性 能的计算机,服务器在网络操作系统的控制下,将与其相连的硬盘、磁带、打 印机及昂贵的专用通讯设备提供给网络上的客户站点共享,也能为网络用户提 供集中计算、信息发布及数据管理等服务 

服务器按应用功能可分为: Web服务器、数据库服务器、文件服务器、中间件应用服务器、日志服务器、监控服务 器,程序版本控制服务器、虚拟机服务器、邮件服务器、打印服务器、域控制服务器、 多媒体服务器、通讯服务器、ERP服务器等 

服务器按外形分类: 塔式服务器、机架式服务器、刀片式服务器

  • CPU

CPU是Central Processing Unit的缩写,即中央处理器。由控制器和运算器构 成,是整个计算机系统中最重要的部分

1)主频:主频是CPU的时钟频率(CPU Clock Speed),是CPU运算时的工作的频 率(1秒内发生的同步脉冲数)的简称。单位是Hz。一般说来,主频越高,CPU 的速度越快,由于内部结构不同,并非所有的时钟频率相同的CPU的性能都一 样 

2)外频:系统总线的工作频率, CPU与外部(主板芯片组)交换数据、指令的工 作时钟频率

3)倍频:倍频则是指CPU外频与主频相差的倍数 

三者关系是:主频=外频x倍频 高速缓存(cache):高速交换的存储器。CPU缓存分为一级,二级,三级缓存, 即L1,L2,L3 

内存总线速度(Memory-Bus Speed): 一般等同于CPU的外频,指CPU与二级 (L2)高速缓存和内存之间的通信速度 

地址总线宽度:决定了CPU可以访问的物理地址空间

CPU类型有x86 X64(CISC) ARM(Acorn RISC Machine) m68000, m68k(moto) Power(IBM) Powerpc(apple,ibm,moto) Ultrasparc (Sun) Alpha(HP) 安腾(compaq)

  • 服务器分类

按照CPU体系架构来区分,服务器主要分为两类: 

非x86服务器:使用RISC(精简指令集)或EPIC(并行指令代码) 处理器,并 且主要采用UNIX和其它专用操作系统的服务器,指令系统相对简单,它只要求 硬件执行很有限且最常用的那部分执令,CPU主要有Compaq的Alpha、HP的 PA-RISC、IBM的Power PC、MIPS的MIPS和SUN的Sparc、Intel研发的EPIC 安腾处理器等。这种服务器价格昂贵,体系封闭,但是稳定性好,性能强,主 要用在金融、电信等大型企业的核心系统 

x86服务器:又称CISC(复杂指令集)架构服务器,即通常所讲的PC服务器, 它是基于PC机体系结构,使用Intel或其它兼容x86指令集的处理器芯片的服务 器。目前主要为intel的Xeon E3,E5,E7系列,价格相对便宜、兼容性好、稳 定性较差、安全性不算太高

  • 服务器硬件—CPU分为

4路及4路以上服务器(企业级服务器) 2路服务器(部门级服务器) 1路服务器(入门级服务器)

  • 主板

主板mainboard、系统板systemboard或母板motherboard,安装在机箱内, 是计算机最基本的也是最重要的部件之一 

主板一般为矩形电路板,上面安装了组成计算机的主要电路系统,一般有BIOS 芯片、I/O控制芯片、键盘和面板控制开关接口、指示灯插接件、扩充插槽、主 板及插卡的直流电源供电接插件等元件

  • 内存

内存是介于CPU 和外部存储之间,是CPU 对外部存储中程序与数据进行高速运 算时存放程序指令、数据和中间结果的临时场所,它的物理实质就是一组具备 数据输入输出和数据存储功能的高速集成电路 

内存是CPU能直接寻址的存储空间,由半导体器件制成。内存的特点是存取速 度快 计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。 

外存:硬盘,U盘,软盘,光盘 

内存和外存的区别: 内存断电后数据丢失 外存断电后数据可以保存

  • 硬盘

结构:存储介质——盘片;读写头——磁头;马达

硬盘接口类型:IDE、SCSI、SATA、SAS(主流硬盘接口为后两种)

服务器支持热插拔技术(常见设备:硬盘、电源、PCI设备、风扇)

  • 存储

DAS:直接连接存储;

NAS:网络连接存储;

SNA:存储区域网络

ISCSI基于以太网网络实现的,实现SNA,提供磁盘空间

  • 操作系统

操作系统OS(Operating  System) ,通用目的的软件程序(硬件驱动、进程管理、内存管理、网络管理、安全管理、文件管理)

开发接口标准

ABI(Application Binary  Interface)应用程序与操作系统通信交互的接口

API(Application  Programming   Interface)定义源码和库之间的接口

POSIX:Portable   Operating   System   Interface    IEEE在操作系统上定义的一系列API标准

  • 用户和内核空间

user space  用户空间:在此处可工作用户程序,只执行简单计算

kernel  space  内核空间:具有访问硬件的权限,可执行任意命令

Linux基础知识

linux内核版本:主版本号、次版本号、末版本号、编译版本号、厂商版本号

  • Linux哲学思想

一切皆文件(包括硬件)

小型,单一用途的程序

链接程序,共同完成复杂任务

避免令人困惑的用户界面(不用图形界面)

配置数据存储在文本中(windows中数据大部分放在注册表中)

  • 分区介绍

主分区(1-4):一块硬盘最多四个,不可分小区,可用来启动操作系统(系统分区:一定是主分区),直接建文件系统,存放数据

扩展分区:一块硬盘最多只有1个,加上主分区最多四个,不能建文件系统NTFS,FAT,可以再划分更小的分区

逻辑分区(5-~):可以创建文件系统,可存放数据,不可再分

启动分区:安装操作系统(OS)的分区

活动分区:一个硬盘多个主分区,只有一个是活动分区

  • Linux的命令提示符

命令提示符:prompt

[root@localhost ~]#

# 管理员      $ 普通用户 

显示提示符格式[root@localhost ~]#echo $PS1 

修改提示符格式 PS1=”\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]”

\e \033    \u 当前用户   \h 主机名简称   \H 主机名   \w 当前工作目录   \W 当前工作目录基名   \t 24小时时间格式    \T  12小时时间格式   \! 命令历史数  \# 开机后命令历史数

Linux目录文件的学习

/为根目录;

/user(相当于Windows中的windows progrom files文件);

/home(用户);

/tmp(存放临时信息);

/var(存放变化数据);

/var/log(存放日志文件);

/etc(存放配置数据);

/boot(存放启动数据);

/dev(存放硬件)

Linux的常用命令

cat:      指定要连接的文件列表

选项

-n或-number:有1开始对所有输出的行数编号;

-b或–number-nonblank:和-n相似,只不过对于空白行不编号;

-s或–squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;

-A:显示不可打印字符,行尾显示“$”;

-e:等价于”-vE”选项;

-t:等价于”-vT”选项;

实例

设ml和m2是当前目录下的两个文件

cat m1 (在屏幕上显示文件ml的内容)

cat m1 m2 (同时显示文件ml和m2的内容)

cat m1 m2 > file (将文件ml和m2合并后放入文件file中)

alias:   命令别名设置:定义命令别名,格式为“命令别名=‘实际命令’”。

选项

-p:打印已经设置的命令别名。

实例

alias l=‘ls -lsh’将重新定义ls命令,现在只需输入l就可以列目录了。直接输入 alias 命令会列出当前系统中所有已经定义的命令别名。

unalias:    撤消别名

选项

-a:取消所有别名

实例

unalias [-a] name [name …]

如果别名同原命令同名,如果要执行原命令,可使用

\ALIASNAME “ALIASNAME” ’ALIASNAME’ command ALIASNAME /path/command

date:    指定显示时使用的日期时间格式

选项

-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;

-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;

-u:显示GMT;

–help:在线帮助;

–version:显示版本信息。

实例

格式化输出:

date +”%Y-%m-%d”

2009-12-07

输出昨天日期:

date -d “1 day ago” +”%Y-%m-%d”

2012-11-19

2秒后输出:

date -d “2 second” +”%Y-%m-%d %H:%M.%S”

2012-11-20 14:21.31

传说中的 1234567890 秒:

date -d “1970-01-01 1234567890 seconds” +”%Y-%m-%d %H:%m:%S”

2009-02-13 23:02:30

普通转格式:

date -d “2009-12-12″ +”%Y/%m/%d %H:%M.%S”

2009/12/12 00:00.00

apache格式转换:

date -d “Dec 5, 2009 12:00:37 AM” +”%Y-%m-%d %H:%M.%S”

2009-12-05 00:00.37

格式转换后时间游走:

date -d “Dec 5, 2009 12:00:37 AM 2 year ago” +”%Y-%m-%d %H:%M.%S”

2007-12-05 00:00.37

加减操作:

date +%Y%m%d                   //显示前天年月日

date -d “+1 day” +%Y%m%d       //显示前一天的日期

date -d “-1 day” +%Y%m%d       //显示后一天的日期

date -d “-1 month” +%Y%m%d     //显示上一月的日期

date -d “+1 month” +%Y%m%d     //显示下一月的日期

date -d “-1 year” +%Y%m%d      //显示前一年的日期

date -d “+1 year” +%Y%m%d      //显示下一年的日期

设定时间:

date -s                        //设置当前时间,只有root权限才能设置,其他只能查看

date -s 20120523               //设置成20120523,这样会把具体时间设置成空00:00:00

date -s 01:01:01               //设置具体时间,不会对日期做更改

date -s “01:01:01 2012-05-23”  //这样可以设置全部时间

echo:    变量:指定要打印的变量

选项

\a 发出警告声;

\b 删除前一个字符;

\c 最后不加上换行符号;

\f 换行但光标仍旧停留在原来的位置;

\n 换行且光标移至行首;

\r 光标移至行首,但不换行;

\t 插入tab;

\v 与\f相同;

\\ 插入\字符;

\nnn 插入nnn(八进制)所代表的ASCII字符;

实例

用echo命令打印带有色彩的文字:

文字色:

echo -e “\e[1;31mThis is red text\e[0m”

This is red text

\e[1;31m 将颜色设置为红色

\e[0m 将颜色重新置回

颜色码:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37

背景色:

echo -e “\e[1;42mGreed Background\e[0m”

Greed Background

颜色码:重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47

文字闪动:

echo -e “\033[37;31;5mMySQL Server Stop…\033[39;49;0m”

红色数字处还有其他数字参数:0 关闭所有属性、1 设置高亮度(加粗)、4 下划线、5 闪烁、7 反显、8 消隐

history:     打印最近的n条历史命令

选项

-c:清空当前历史命令;

-a:将历史命令缓冲区中命令写入历史命令文件中;

-r:将历史命令文件中的命令读入当前历史命令缓冲区;

-w:将当前历史命令缓冲区命令写入历史命令文件中

实例

使用history命令显示最近使用的10条历史命令,输入如下命令:

[root@localhost ~]# history 10

92  ls

93  cd ..

94  ls

95  exit

96  ls -a

97  cd .ssh/

98  ls

99  cat known_hosts

100  exit

101  history 10

help:    内部命令:指定需要显示帮助信息的shell内部命令

选项

-s:输出短格式的帮助信息。仅包括命令格式

实例

help

whatis:      用于查询一个命令执行什么功能,并将查询结果打印到终端上

实例

[root@localhost ~]# whatis ls

ls                   (1)  – list directory contents

ls                   (1p)  – list directory contents

[root@localhost ~]# whatis cp

cp                   (1)  – copy files and directories

cp                   (1p)  – copy files

[root@localhost ~]# whatis chown

chown                (1)  – change file owner and group

chown                (1p)  – change the file ownership

chown                (2)  – change ownership of a file

chown                (3p)  – change owner and group of a file

[root@localhost ~]# whatis man

man                  (1)  – format and display the on-line manual pages

man                  (1p)  – display system documentation

man                  (7)  – macros to format man pages

man                 (rpm) – A set of documentation tools: man, apropos and whatis.

man-pages           (rpm) – Man (manual) pages from the Linux Documentation Project.

man.config [man]     (5)  – configuration data for man

man:       以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息

选项

-a:在所有的man帮助手册中搜索;

-f:等价于whatis指令,显示给定关键字的简短描述信息;

-P:指定内容时使用分页程序;

-M:指定man手册搜索的路径。

实例

我们输入man ls,它会在最左上角显示“LS(1)”,在这里,“LS”表示手册名称,而“(1)”表示该手册位于第一节章,同样,我们输man ifconfig它会在最左上角显示“IFCONFIG(8)”。也可以这样输入命令:“man [章节号] 手册名称”。

man是按照手册的章节号的顺序进行搜索的,比如:

man sleep

只会显示sleep命令的手册,如果想查看库函数sleep,就要输入:

man 3 sleep

info:    Linux下info格式的帮助指令

选项

-d:添加包含info格式帮助文档的目录;

-f:指定要读取的info格式的帮助文档;

-n:指定首先访问的info帮助文件的节点;

-o:输出被选择的节点内容到指定文件。

实例

在info后面输入命令的名称就可以查看该命令的info帮助文档了:

info info

快捷键的使用

?键:它就会显示info的常用快捷键。

N键:显示(相对于本节点的)下一节点的文档内容。

P键:显示(相对于本节点的)前一节点的文档内容。

U键:进入当前命令所在的主题。

M键:敲M键后输入命令的名称就可以查看该命令的帮助文档了。

G键:敲G键后输入主题名称,进入该主题。

L键:回到上一个访问的页面。

SPACE键:向前滚动一页。

BACKUP或DEL键:向后滚动一页。

Q:退出info。

命令

?     显示帮助窗口

在帮助窗口中:

Ctrl-x 0          关闭帮助窗口

Ctrl-x Ctrl-c    关闭整个 Info

q      退出 info

n      打开与本 Node 关联的下一个 Node

p      打开与本 Node 关联的前一个 Node

u      打开与本 Node 关联的上一个 Node

l      回到上一次访问的 Node

m或g   选择一个菜单项(Node 的名字)

输入指定菜单的名字后按回车,打开指定菜单项关联的 Node

空格键 下一页(PageDown 也可以,下一页从当前页的最后两行开始算起)

下一个 Node (若当前页在 Node 文档的末尾)

Del 键 上一页(PageUp 也可以,上一页从当前页的开始两行开始算起)

上一个 Node (若当前页 Node 文档的开始)

b 或 t 或 Home   文档的开始(b 是 begining 的意思)

e 或 End         文档的末尾(b 是 ending 的意思)

Ctrl-l    刷新当前页,若当前文档显示情况有问题时

Ctrl-g    取消所键入的指令

cd:      用来切换工作目录至dirname。 其中dirName表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory(也就是刚login时所在的目录)。另外,~也表示为home directory的意思,.则是表示目前所在的目录,..则表示目前目录位置的上一层目录。

选项

-p 如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录

-L 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。

– 当仅实用”-“一个选项时,当前工作目录将被切换到环境变量”OLDPWD”所表示的目录。

实例

cd    进入用户主目录;

cd ~  进入用户主目录;

cd –  返回进入此目录之前所在的目录;

cd ..  返回上级目录(若当前目录为“/“,则执行完后还在“/”;”..”为上级目录的意思);

cd ../..  返回上两级目录;

cd !$  把上个命令的参数作为cd参数使用。

cp:       将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

选项

-a:此参数的效果和同时指定”-dpR”参数相同;

-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;

-f:强行复制文件或目录,不论目标文件或目录是否已存在;

-i:覆盖既有文件之前先询问用户;

-l:对源文件建立硬连接,而非复制文件;

-p:保留源文件或目录的属性;

-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;

-s:对源文件建立符号连接,而非复制文件;

-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;

-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;

-b:覆盖已存在的文件目标前将目标文件备份;

-v:详细显示命令执行的操作。

实例

如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点.或点点..的形式。例如,下面的命令将指定文件复制到当前目录下:

cp ../mary/homework/assign .

所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。如果没有文件复制的权限,则系统会显示出错信息。

将文件file复制到目录/usr/men/tmp下,并改名为file1

cp file /usr/men/tmp/file1

将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中

cp -r /usr/men /usr/zh

交互式地将目录/usr/men中的以m打头的所有.c文件复制到目录/usr/zh中

cp -i /usr/men m*.c /usr/zh

我们在Linux下使用cp命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖。文件数量不多还好,但是要是几百个估计按Y都要吐血了,于是折腾来半天总结了一个方法:

cp aaa/* /bbb

复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录。

cp -r aaa/* /bbb

这次依然需要按Y来确认操作,但是没有忽略子目录。

cp -r -a aaa/* /bbb

依然需要按Y来确认操作,并且把aaa目录以及子目录和文件属性也传递到了/bbb。

\cp -r -a aaa/* /bbb

成功,没有提示按Y、传递了目录属性、没有略过目录。

pwd:     以绝对路径的方式显示用户当前工作目录。命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用/分隔。第一个/表示根目录,最后一个目录是当前目录。执行pwd命令可立刻得知您目前所在的工作目录的绝对路径名称

选项

–help:显示帮助信息;–version:显示版本信息。

实例

[root@localhost ~]# pwd

/root

rm:     可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

选项

-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;

-f:强制删除文件或目录;

-i:删除已有文件或目录之前先询问用户;

-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;

–preserve-root:不对根目录进行递归操作;

-v:显示指令的详细执行过程。

实例

交互式删除当前目录下的文件test和example

rm -i test example

Remove test ?n(不删除文件test)

Remove example ?y(删除文件example)

删除当前目录下除隐含文件外的所有文件和子目录

# rm -r *

mv    用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖

选项

–backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;

-b:当文件存在时,覆盖前,为其创建一个备份;

-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;

-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。

–strip-trailing-slashes:删除源文件中的斜杠“/”;

-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;

–target-directory=<目录>:指定源文件要移动到目标目录;

-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

实例

将文件ex3改名为new1

mv ex3 new1

将目录/usr/men中的所有文件移到当前目录(用.表示)中:

mv /usr/men/* .

mkdir    用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。

选项

-Z:设置安全上下文,当使用SELinux时有效;

-m<目标属性>或–mode<目标属性>建立目录的同时设置目录的权限;

-p或–parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;

–version 显示版本信息。

实例

在目录/usr/meng下建立子目录test,并且只有文件主有读、写和执行权限,其他人无权访问

mkdir -m 700 /usr/meng/test

在当前目录中建立bin和bin下的os_1目录,权限设置为文件主可读、写、执行,同组用户可读和执行,其他用户无权访问

mkdir -p-m 750 bin/os_1

ls:         用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件

选项

-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);

-A:显示除影藏文件“.”和“..”以外的所有文件列表;

-C:多列显示输出结果。这是默认选项;

-l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;

-F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;

-b:将文件中的不可输出的字符以反斜线“”加字符编码的方式输出;

-c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间;

-d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;

-f:此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果;

-i:显示文件索引节点号(inode)。一个索引节点代表一个文件;

–file-type:与“-F”选项的功能相同,但是不显示“*”;

-k:以KB(千字节)为单位显示文件大小;

-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;

-m:用“,”号区隔每个文件和目录的名称;

-n:以用户识别码和群组识别码替代其名称;

-r:以文件名反序排列并输出目录内容列表;

-s:显示文件和目录的大小,以区块为单位;

-t:用文件和目录的更改时间排序;

-L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;

-R:递归处理,将指定目录下的所有文件及子目录一并处理;

–full-time:列出完整的日期与时间;

–color[=WHEN]:使用不同的颜色高亮显示不同类型的

实例

显示当前目录下非影藏文件与目录

[root@localhost ~]# ls

anaconda-ks.cfg  install.log  install.log.syslog  satools

显示当前目录下包括影藏文件在内的所有文件列表

root@localhost ~]# ls -a

.   anaconda-ks.cfg  .bash_logout   .bashrc  install.log         .mysql_history  satools  .tcshrc   .vimrc

..  .bash_history    .bash_profile  .cshrc   install.log.syslog  .rnd            .ssh     .viminfo

输出长格式列表

[root@localhost ~]# ls -1

anaconda-ks.cfg

install.log

install.log.syslog

satools

显示文件的inode信息

索引节点(index inode简称为“inode”)是Linux中一个特殊的概念,具有相同的索引节点号的两个文本本质上是同一个文件(除文件名不同外)。

[root@localhost ~]# ls -i -l anaconda-ks.cfg install.log

2345481 -rw——- 1 root root   859 Jun 11 22:49 anaconda-ks.cfg

2345474 -rw-r–r– 1 root root 13837 Jun 11 22:49 install.log

水平输出文件列表

[root@localhost /]# ls -m

bin, boot, data, dev, etc, home, lib, lost+found, media, misc, mnt, opt, proc, root, sbin, selinux, srv, sys, tmp, usr, var

修改最后一次编辑的文件

最近修改的文件显示在最上面。

[root@localhost /]# ls -t

tmp  root  etc  dev  lib  boot  sys  proc  data  home  bin  sbin  usr  var  lost+found  media  mnt  opt  selinux  srv  misc

显示递归文件

[root@localhost ~]# ls -R

.:

anaconda-ks.cfg  install.log  install.log.syslog  satools

./satools:

black.txt  freemem.sh  iptables.sh  lnmp.sh  mysql  php502_check.sh  ssh_safe.sh

打印文件的UID和GID

[root@localhost /]# ls -n

total 254

drwxr-xr-x   2 0 0  4096 Jun 12 04:03 bin

drwxr-xr-x   4 0 0  1024 Jun 15 14:45 boot

drwxr-xr-x   6 0 0  4096 Jun 12 10:26 data

drwxr-xr-x  10 0 0  3520 Sep 26 15:38 dev

drwxr-xr-x  75 0 0  4096 Oct 16 04:02 etc

drwxr-xr-x   4 0 0  4096 Jun 12 10:26 home

drwxr-xr-x  14 0 0 12288 Jun 16 04:02 lib

drwx——   2 0 0 16384 Jun 11 22:46 lost+found

drwxr-xr-x   2 0 0  4096 May 11  2011 media

drwxr-xr-x   2 0 0  4096 Nov  8  2010 misc

drwxr-xr-x   2 0 0  4096 May 11  2011 mnt

drwxr-xr-x   2 0 0  4096 May 11  2011 opt

dr-xr-xr-x 232 0 0     0 Jun 15 11:04 proc

drwxr-x—   4 0 0  4096 Oct 15 14:43 root

drwxr-xr-x   2 0 0 12288 Jun 12 04:03 sbin

drwxr-xr-x   2 0 0  4096 May 11  2011 selinux

drwxr-xr-x   2 0 0  4096 May 11  2011 srv

drwxr-xr-x  11 0 0     0 Jun 15 11:04 sys

drwxrwxrwt   3 0 0 98304 Oct 16 08:45 tmp

drwxr-xr-x  13 0 0  4096 Jun 11 23:38 usr

drwxr-xr-x  19 0 0  4096 Jun 11 23:38 var

列出文件和文件夹的详细信息

[root@localhost /]# ls -l

total 254

drwxr-xr-x   2 root root  4096 Jun 12 04:03 bin

drwxr-xr-x   4 root root  1024 Jun 15 14:45 boot

drwxr-xr-x   6 root root  4096 Jun 12 10:26 data

drwxr-xr-x  10 root root  3520 Sep 26 15:38 dev

drwxr-xr-x  75 root root  4096 Oct 16 04:02 etc

drwxr-xr-x   4 root root  4096 Jun 12 10:26 home

drwxr-xr-x  14 root root 12288 Jun 16 04:02 lib

drwx——   2 root root 16384 Jun 11 22:46 lost+found

drwxr-xr-x   2 root root  4096 May 11  2011 media

drwxr-xr-x   2 root root  4096 Nov  8  2010 misc

drwxr-xr-x   2 root root  4096 May 11  2011 mnt

drwxr-xr-x   2 root root  4096 May 11  2011 opt

dr-xr-xr-x 232 root root     0 Jun 15 11:04 proc

drwxr-x—   4 root root  4096 Oct 15 14:43 root

drwxr-xr-x   2 root root 12288 Jun 12 04:03 sbin

drwxr-xr-x   2 root root  4096 May 11  2011 selinux

drwxr-xr-x   2 root root  4096 May 11  2011 srv

drwxr-xr-x  11 root root     0 Jun 15 11:04 sys

drwxrwxrwt   3 root root 98304 Oct 16 08:48 tmp

drwxr-xr-x  13 root root  4096 Jun 11 23:38 usr

drwxr-xr-x  19 root root  4096 Jun 11 23:38 var

列出可读文件和文件夹详细信息

[root@localhost /]# ls –lh

total 254K

drwxr-xr-x   2 root root 4.0K Jun 12 04:03 bin

drwxr-xr-x   4 root root 1.0K Jun 15 14:45 boot

drwxr-xr-x   6 root root 4.0K Jun 12 10:26 data

drwxr-xr-x  10 root root 3.5K Sep 26 15:38 dev

drwxr-xr-x  75 root root 4.0K Oct 16 04:02 etc

drwxr-xr-x   4 root root 4.0K Jun 12 10:26 home

drwxr-xr-x  14 root root  12K Jun 16 04:02 lib

drwx——   2 root root  16K Jun 11 22:46 lost+found

drwxr-xr-x   2 root root 4.0K May 11  2011 media

drwxr-xr-x   2 root root 4.0K Nov  8  2010 misc

drwxr-xr-x   2 root root 4.0K May 11  2011 mnt

drwxr-xr-x   2 root root 4.0K May 11  2011 opt

dr-xr-xr-x 235 root root    0 Jun 15 11:04 proc

drwxr-x—   4 root root 4.0K Oct 15 14:43 root

drwxr-xr-x   2 root root  12K Jun 12 04:03 sbin

drwxr-xr-x   2 root root 4.0K May 11  2011 selinux

drwxr-xr-x   2 root root 4.0K May 11  2011 srv

drwxr-xr-x  11 root root    0 Jun 15 11:04 sys

drwxrwxrwt   3 root root  96K Oct 16 08:49 tmp

drwxr-xr-x  13 root root 4.0K Jun 11 23:38 usr

drwxr-xr-x  19 root root 4.0K Jun 11 23:38 var

显示文件夹信息

[root@localhost /]# ls -ld /etc/

drwxr-xr-x 75 root root 4096 Oct 16 04:02 /etc/

按时间列出文件和文件夹详细信息

[root@localhost /]# ls -lt

total 254

drwxrwxrwt   3 root root 98304 Oct 16 08:53 tmp

drwxr-xr-x  75 root root  4096 Oct 16 04:02 etc

drwxr-x—   4 root root  4096 Oct 15 14:43 root

drwxr-xr-x  10 root root  3520 Sep 26 15:38 dev

drwxr-xr-x  14 root root 12288 Jun 16 04:02 lib

drwxr-xr-x   4 root root  1024 Jun 15 14:45 boot

drwxr-xr-x  11 root root     0 Jun 15 11:04 sys

dr-xr-xr-x 232 root root     0 Jun 15 11:04 proc

drwxr-xr-x   6 root root  4096 Jun 12 10:26 data

drwxr-xr-x   4 root root  4096 Jun 12 10:26 home

drwxr-xr-x   2 root root  4096 Jun 12 04:03 bin

drwxr-xr-x   2 root root 12288 Jun 12 04:03 sbin

drwxr-xr-x  13 root root  4096 Jun 11 23:38 usr

drwxr-xr-x  19 root root  4096 Jun 11 23:38 var

drwx——   2 root root 16384 Jun 11 22:46 lost+found

drwxr-xr-x   2 root root  4096 May 11  2011 media

drwxr-xr-x   2 root root  4096 May 11  2011 mnt

drwxr-xr-x   2 root root  4096 May 11  2011 opt

drwxr-xr-x   2 root root  4096 May 11  2011 selinux

drwxr-xr-x   2 root root  4096 May 11  2011 srv

drwxr-xr-x   2 root root  4096 Nov  8  2010 misc

按修改时间列出文件和文件夹详细信息

[root@localhost /]# ls -ltr

total 254

drwxr-xr-x   2 root root  4096 Nov  8  2010 misc

drwxr-xr-x   2 root root  4096 May 11  2011 srv

drwxr-xr-x   2 root root  4096 May 11  2011 selinux

drwxr-xr-x   2 root root  4096 May 11  2011 opt

drwxr-xr-x   2 root root  4096 May 11  2011 mnt

drwxr-xr-x   2 root root  4096 May 11  2011 media

drwx——   2 root root 16384 Jun 11 22:46 lost+found

drwxr-xr-x  19 root root  4096 Jun 11 23:38 var

drwxr-xr-x  13 root root  4096 Jun 11 23:38 usr

drwxr-xr-x   2 root root 12288 Jun 12 04:03 sbin

drwxr-xr-x   2 root root  4096 Jun 12 04:03 bin

drwxr-xr-x   4 root root  4096 Jun 12 10:26 home

drwxr-xr-x   6 root root  4096 Jun 12 10:26 data

dr-xr-xr-x 232 root root     0 Jun 15 11:04 proc

drwxr-xr-x  11 root root     0 Jun 15 11:04 sys

drwxr-xr-x   4 root root  1024 Jun 15 14:45 boot

drwxr-xr-x  14 root root 12288 Jun 16 04:02 lib

drwxr-xr-x  10 root root  3520 Sep 26 15:38 dev

drwxr-x—   4 root root  4096 Oct 15 14:43 root

drwxr-xr-x  75 root root  4096 Oct 16 04:02 etc

drwxrwxrwt   3 root root 98304 Oct 16 08:54 tmp

按照特殊字符对文件进行分类

[root@localhost nginx-1.2.1]# ls -F

auto/  CHANGES  CHANGES.ru  conf/  configure*  contrib/  html/  LICENSE  Makefile  man/  objs/  README  src/

列出文件并标记颜色分类

[root@localhost nginx-1.2.1]# ls –color=auto

auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  Makefile  man  objs  README  src

touch       一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件

选项

-a:或–time=atime或–time=access或–time=use  只更改存取时间;

-c:或–no-create  不建立任何文件;

-d:<时间日期> 使用指定的日期时间,而非现在的时间;

-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;

-m:或–time=mtime或–time=modify  只更该变动时间;

-r:<参考文件或目录>  把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;

-t:<日期时间>  使用指定的日期时间,而非现在的时间;

–help:在线帮助;

–version:显示版本信息

实例

touch ex2

在当前目录下建立一个空文件ex2,然后,利用ls -l命令可以发现文件ex2的大小为0,表示它是空文件。

ln         用来为文件创件连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如果要创建符号连接必须使用”-s”选项。

选项

b或–backup:删除,覆盖目标文件之前的备份;

-d或-F或——directory:建立目录的硬连接;

-f或——force:强行建立文件或目录的连接,不论文件或目录是否存在;

-i或——interactive:覆盖既有文件之前先询问用户;

-n或–no-dereference:把符号连接的目的目录视为一般文件;

-s或——symbolic:对源文件建立符号连接,而非硬连接;

-S<字尾备份字符串>或–suffix=<字尾备份字符串>:用”-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字符串是符号“~”,用户可通过“-S”参数来改变它;

-v或——verbose:显示指令执行过程;

-V<备份方式>或–version-control=<备份方式>:用“-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用“-S”参数变更,当使用“-V”参数<备份方式>指定不同备份方式时,也会产生不同字尾的备份字符串;

–help:在线帮助;

–version:显示版本信息。

实例

将目录/usr/mengqc/mub1下的文件m2.c链接到目录/usr/liu下的文件a2.c

cd /usr/mengqc

ln /mub1/m2.c /usr/liu/a2.c

在执行ln命令之前,目录/usr/liu中不存在a2.c文件。执行ln之后,在/usr/liu目录中才有a2.c这一项,表明m2.c和a2.c链接起来(注意,二者在物理上是同一文件),利用ls -l命令可以看到链接数的变化。

在目录/usr/liu下建立一个符号链接文件abc,使它指向目录/usr/mengqc/mub1

ln -s /usr/mengqc/mub1 /usr/liu/abc

执行该命令后,/usr/mengqc/mub1代表的路径将存放在名为/usr/liu/abc的文件中

dd        用于复制文件并对原文件的内容进行转换和格式化处理。dd命令功能很强大的,对于一些比较底层的问题,使用dd命令往往可以得到出人意料的效果。用的比较多的还是用dd来备份裸设备。但是不推荐,如果需要备份oracle裸设备,可以使用rman备份,或使用第三方软件备份,使用dd的话,管理起来不太方便

选项

bs=<字节数>:将ibs(输入)与欧巴桑(输出)设成指定的字节数;

cbs=<字节数>:转换时,每次只转换指定的字节数;

conv=<关键字>:指定文件转换的方式;

count=<区块数>:仅读取指定的区块数;

ibs=<字节数>:每次读取的字节数;

obs=<字节数>:每次输出的字节数;

of=<文件>:输出到文件;

seek=<区块数>:一开始输出时,跳过指定的区块数;

skip=<区块数>:一开始读取时,跳过指定的区块数;

–help:帮助;

–version:显示版本信息。

实例

root@localhost text]# dd if=/dev/zero of=sun.txt bs=1M count=1

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s

[root@localhost text]# du -sh sun.txt

1.1M    sun.txt

rename           用字符串替换的方式批量改变文件名

选项

原字符串:将文件名需要替换的字符串;

目标字符串:将文件名中含有的原字符替换成目标字符串;

文件:指定要改变文件名的文件列表

实例

将main1.c重命名为main.c

rename main1.c main.c main1.c

rename支持通配符

?  可替代单个字符

*  可替代多个字符

[charset]  可替代charset集中的任意单个字符

文件夹中有这些文件foo1, …, foo9, foo10, …, foo278

如果使用rename foo foo0 foo?,会把foo1到foo9的文件重命名为foo01到foo09,重命名的文件只是有4个字符长度名称的文件,文件名中的foo被替换为foo0。

如果使用rename foo foo0 foo??,foo01到foo99的所有文件都被重命名为foo001到foo099,只重命名5个字符长度名称的文件,文件名中的foo被替换为foo0。

如果使用rename foo foo0 foo*,foo001到foo278的所有文件都被重命名为foo0001到foo0278,所有以foo开头的文件都被重命名。

如果使用rename foo0 foo foo0[2]*,从foo0200到foo0278的所有文件都被重命名为foo200到foo278,文件名中的foo0被替换为foo。

rename支持正则表达式

字母的替换

rename “s/AA/aa/” *  //把文件名中的AA替换成aa

修改文件的后缀

rename “s//.html//.php/” *     //把.html 后缀的改成 .php后缀

批量添加文件后缀

rename “s/$//.txt/” *     //把所有的文件名都以txt结尾

批量删除文件名

rename “s//.txt//” *      //把所有以.txt结尾的文件名的.txt删掉

dirname        去除文件名中的非目录部分,仅显示与目录有关的内容。dirname命令读取指定路径名保留最后一个/及其后面的字符,删除其他部分,并写结果到标准输出。如果最后一个/后无字符,dirname 命令使用倒数第二个/,并忽略其后的所有字符。dirname 和 basename 通常在 shell 内部命令替换使用,以指定一个与指定输入文件名略有差异的输出文件名

选项

–help:显示帮助;

–version:显示版本号

实例

dirname //

结果为 /

dirname /a/b/

结果为:/a

dirname a

结果为 .

dirname a/b

结果为路径名 a

……………………………..

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/94451

(1)
上一篇 2018-04-01 19:57
下一篇 2018-04-01 20:32

相关推荐