首页 > 代码库 > linux系统结构

linux系统结构

呈倒树型

/bin:存放二进制命令文件(binnary),针对所有用户

/sbin:存放系统管理员的命令,/bin的升级版,超级用户专用

/boot:存放启动分区,负责系统启动的文件。相当于windowsC,启动项。存储系统的引导信息,内核信息

/proc:系统信息   /proc/cpuinfo:系统cpu信息

/sys:系统管理,主要是关于内核的

/etc:存放大多数系统管理文件,即配置文件

/dev:存放设备管理文件

/lib:存放32位系统库文件

/lib64:存放64位系统库文件

/root:超级用户家目录存放点

/home:是普通用户家目录

/opt:第三方软件的安装位置

/usr:存放系统用户相关信息数据及用户自定义软件,存储系统应用软件的安装信息

/srv/var:系统数据存放点,存储系统日志信息

/tmp:存放临时文件存放位置

/media/run/mnt:系统临时设备挂载点

【绝对路径、相对路径】

据对路径:文件在系统的真实位置,文件名以“/”开头

相对路径:文件相对于当前所在位置的位置,不以“/”开头,且会自动添加pwd显示的值

【基本命令】

shell中如何使用命令(必须在提示符之后输入)

命令输入模式:command+[space]+options+[space]+target

              命令           参数(选项)       操作对象

补充:命令是系统中可执行的文件,参数是命令功能的指

*** ls###list,列出当前目录的所有文件

-a  ##显示指定目录下所有文件以及子目录,包含隐藏文件

-d  ##只显示目录列表,不显示文件

-l  ##除文件名称外,同时将文件或子目录的权限、使用者及大小等信息详

      细列出

-s  ##在每个文件名前输出其大小,以k字节的形式表示文件的大小

-S  ##以文件大小顺序排列,从大到小排列

-u  ##以文件上次被访问的时间排序

-t  ##以时间排序,从晚到早

-o  ##显示除组信息以外的详细信息

-x  ##按列输出,横向排序

-C  ##按列输出,纵向排序

-r  ##对目录中的文件及子目录反向排序(与默认排序相反)

-m  ##横向输出文件名,并以逗号作为分隔符

-Q  ##把输出的文件名用双引号括起来

-R ##列出所有子目录下的文件

-pF  ##在每个文件名后附上一个字符以说明该文件的类型。“*”表示可执

       行的普通文件,“@”表示链接,“|”FIFOs“=”表套接字,

       “/”表示目录

-q ##用?代替不可输出的字符

-i  ##列出节点号

-Z  ##列出标签

例:

# ls -l(同ll###列出文件属性

$ ls -l ps.txt

-rw-rw-r-- 1 kiosk kiosk 11691 May  4 18:06 ps.txt

使用 ls -l 命令 执行结果,展示结果大体分为七列(部分) :

第一列 drwxr-x---”  表识文件的类型 和文件权限

第二列:2”是纯数字 ,表示 文件链接个数  

第三列 root” 表示文件的所有者

第四列:adm” 表示为文件的所在群组

第五列:4096”,表示为文件大小(以字节为单位)

第六列:2013-08-07 11:03”,表示文件最后更新(修改)时间

第七列:apache2” 表示文件的名称

# ls -l test/###长显示目录test下的文件,显示目录test下的文件

total 0###缓存个数

# ls -ld test/###显示目录本身的属性

# ls -s note/ <=====>###列出文件或目录大小

# ls -s passwd

 4 passwd###文件默认分配4K字节=4096字节

# ls -a###列出所有

# ls -R test/###递归式列出

#ls -Z    ###列出标签

# ls -Zd /mnt/

drwxr-xr-x. root root system_u:object_r:mnt_t:s0       /mnt/

# ls -Z /mnt/

-rwxr-xr-x. root root system_u:object_r:bin_t:s0       firefox

# ls -i  file  ##查看节点号文件

***cd   ##进入目标目录中

[student@localhost mnt]$ pwd

/mnt

[student@localhost mnt]$ cd ~(cd)###回到当前用户家目录

[student@localhost ~]$ pwd

/home/student

[root@localhost ~]# cd ~student###进入到指定用户家目录

[root@localhost student]# pwd

/home/student

[root@localhost student]# cd ..###进入当前目录的上一级

[root@localhost home]# pwd

/home

[root@localhost home]# cd -###进入之前所在系统目录

/home/student

*** touch:新建文件

*** mkdir:建立目录

# mkdir -p test/test/test###递归式建立目录

注意:

[student@localhost ~]$ cd /root/Desktop

bash: cd: /root/Desktop: Permission denied###权限不够被拒绝

***pwd  //显示当前路径

*** cp 被复制文件 目的地###将文将复制到指定目的地

cp -r dir1 dir2###递归式复制

*** mv

mv 被移动文件 目的地###将文将移动到指定目的地

mv 原名 新名###重新命名

mv 被移动文件 .###将文件移动到当前

***rm -f 文件###强制删除文件

rm -fr 目录###强制删除目录

***date [MMDDhhmm.ss]###更改时间[月日小时分钟.]

date [选项] 显示时间格式(以+开头,后面跟时格式)

-s  ##设置时间

-d  ##显示描述的日期

时间格式:

%H  ##显示小时,表示范围0023

%k  ##显示小时,表示范围023

%I  ##显示小时,表示范围0112

%l  ##显示小时,表示范围为1~12

%M  ##显示分钟,显示格式00~59

%S  ##显示秒,显示格式0059

%X  ##显示时间,相当于%H:%M:%S的组合

%r  ##显示时间,格式为hh:mm:ss 12小时显示

%T  ##显示时间,格式为hh:mm:ss24小时显示

%p  ##显示AM还是PM

%F  ##显示日期,格式yyyy-mm-dd

%x  ##显示年份和日期,格式为mm/dd/yyyy

%D  ##显示年份号和日期,格式为mm/dd/yy

%b%B  ##显示月份,b是简称,B是全称

%m  ##显示月份,格式为0112

%Y%y  ##显示年份,Y表示完整的年份,y表示年份的最后两个数字

%d  ##显示一个月的第几天

%c  ##显示日期和时间格式,相当于”%a %d %b %Y %r %Z”

%a%A  ##显示星期,%a是星期的简称,%A是星期的全称

%Z  ##显示时区

eg:

设置时间:

# date -s "20160505 10:03"  ##格式yyyymmdd hh:mm:ss

显示描述的日期:

# date -d "3 days ago" +%F

2016-05-02

显示时间:

$ date "+%F %a %T %Z"

2016-05-04 Wed 21:55:51 CST

# date

Tue Dec  1 17:38:18 CST 2015

CST可视为美国,澳大利亚,中国,古巴的标准时间;格林威治标准时间GSM;世界协调时间UTC;夏日节约时间DST

# date 06281234.21

Sun Jun 28 12:34:21 CST 2015

# date -d +83day

Fri Dec 18 14:49:39 CST 2015

# date -d -83day

Sun Jul  5 14:49:51 CST 2015

# date +%F

 2015-09-26

# date +"%F %H:%M:%S"

2015-12-01 17:42:19

#date "+%Y-%m-%d %H:%M:%S"

2015-12-05 11:55:32

# date --help###获取帮助用helpman

***passwd

passwd username###更改用户密码(只有超级用户root可以)

passwd###普通用户修改自己的密码

注意:

普通用户只能修改自己的密码,且须知自己原始密码,修改密码必须大于8位,不能与原始密码字符重复

# passwd -l student###冻结普通用户

Locking password for user student.

passwd: Success

# passwd -u student###解锁冻结用户

Unlocking password for user student.

passwd: Success

*** file  ###查看文件类型

*** head -数字 文件名###显示文件内容前几行,默认显示前十行

*** tail -数字 文件名###显示文件内容后几行

eg# cat num

 1

 2

 3

 4

 5

 6

 7

 8

# head -6 num | tail -3

 4

 5

 6

***cat   

cat 文件名  ##查看文件所有内容

cat  >文件名 <<biaozhi  ###输出内容到另一个文件

cat -b file ##给文件file中的每一行编号并查看

cat -b file > file1 ##file文件的每一行加编号,并将编好号的放到file1文件中

eg: $ cat > file  << end

> hello world

> u are a good student

> end

$ cat file

hello world

u are a good student

***wc ###统计文件行,单词数,字节数

# wc -l文件名###行数

-c文件名###字节数

-m文件名###字符数

-w文件名###单词数

***whoami ##查看当前用户名称

*** what is+命令  ##查看命令的意思

eg# whatis wc

wc (1)  - print newline, word, and byte counts for each file

wc (1p) - word, line, and byte or character count

*** history  ###查看历史

!数字###执行第多少条命令

!关键字###执行最近一条以关键字开头的命令

Ctrl+r+关键字###调出最近一条含有关键字的命令

上下键###从最后一条命令开始向前或向后查看

*** which+命令  //查看系统命令的路径

***echo $abc 在变量赋值之后,只需在变量前面加一个$去引用.

***cb 格式化源代码

***lint 语法检查程序

***more 显示文件

*** tab键:补齐系统中存在的文件名称,命令和命令参数

*** 改变用户身份的命令:su

su - ##加载相应用户下的环境变量,不加-root身份下执行某些命令可能显示

      “command not found”

-l  ##使目前的shell成为改变身份后用户默认的shell

-c  ##改变身份后运行一个指令后退出

-m  ##改变用户身份但不改变环境变量

***who  ##显示目前登录到系统的用户

who [选项] [file]

linuxwho默认通过/var/run/utmp文件来获取信息,若“file”选项指定另一个文件,则who不再读取/var/run/utmp文件,而是读取指定文件来获取信息

# who

root     tty1         2016-05-05 10:00

root     pts/0        2016-05-05 10:15 (172.25.50.250)

who -s  ##仅显示名称、线路、和时间字段信息。这是who默认的输出,相当于

who

-a  ##列出所有信息,相当于所有选项

-b  ##列出系统最近启动的时间日期

-r  ##显示当前系统的运行机级别

-T-w  ##显示tty终端的状态,“+”表示对任何人都可写,“-”表示仅

          root用户或所有者可写,表遇到线路故障

-l  ##列出所有可登录的终端信息

-m  ##仅列出当前终端的信息,相当于who am i who am I

-u  ##显示当前每个用户的用户名、登录终端、登录时间、活动和进程

标识,除状态以外的所有输出

-q  ##列出本地系统上的用户和用户数的清单

who命令的一般输出格式:

用户名 [状态] 线路 时间 [活动] [进程标识] (主机名)

技术分享

技术分享

用户名:用户的登录名

状态:表明线路是否对登录用户都是可写的,”+””-”

线路:登录终端,类似于pts/1pts/2tty等,此线路标识在/dev中可以找到

时间:用户登录系统的时间

活动:某个用户在自己的线路上最后一次活动发生以来到现在所用时间。如果此项是个“.”,就表示一分钟内地线路活动;如果线路保持静止已经超过24小时或者自从系统启动以来还没被使用过,那么此项的标记为“old”

进程标识:用户登录shell的进程id

主机名:登录到linux系统上的客户端机器标识,没有主机名解析写ip

***w  ##显示用户登录到系统的时间

w [选项] [用户]

-h  ##不显示输出信息的标题

-l  ##用长格式输出,相当于直接用w

-s  ##用短格式输出,不显示登录时间、JCPUPCPU时间

-V  ##显示版本信息

技术分享 

第一行:显示了当前的系统时间、系统从启动到现在已经运行的时间,登录到系统中的用户数,系统平均负载(系统1min5min15min内系统负载状况)

USER:登录系统的用户

TTY:用户使用的TTY(字符终端)名称

FROM:表示用户从哪里登录进来,一般显示远程登录主机的IP地址或主机名

LOGIN@:用户登录的日期和时间

IDLE:表某个程序上次从终端开始执行到现在所持续的时间

JCPU:表该终端上的所有进程及子进程使用系统的总时间

PCPU:当前活动进程使用的系统时间

WHAT:当前用户执行的进程名称和选项

***uname  ##显示操作系统相关信息

uanme -s  ##显示操作系统类型,相当于uname

-a  ##显示操作系统所有信息

-n  ##显示操作系统的主机名

-r  ##显示操作系统内核版本

***uptime  ##输出系统队列信息

技术分享 

表示当前系统时间、系统从开机到现在的运行时间,系统登录用户数,系统平均负载(与w命令第一行输出相同)

***last  ##列出目前与过去登入系统的用户相关信息

last [选项] [-n 显示列数]

执行last命令时,默认读取/var/log/wtmp文件,并把该文件记录的等入系统的用户名全部显示出来

last -a  ##将从何处等入系统的IP或主机名显示在每一行的末尾

-R  ##不显示登入系统的主机名或IP

-x  ##显示系统关机、重新开机及执行等级的改变等信息

-d  ##将显示的IP地址转换为主机名

-n  ##设置列出名单的显示列数

技术分享 

***dmesg  ##显示开机的信息

内核会将开机信息存储在系统缓冲区(ring buffer)中,如果开机来不及查看相关信息,可以在开机后用dmesg命令查看,或者查看/var/log/dmesg文件

dmesg -c  ##显示开机信息后,清除ring buffer信息

-s  ##设置缓冲区打大小,默认为8192

-n  ##设置记录信息的层级

***free  ##显示系统内存状态的命令

free [选项] [-s 间隔秒数]

free -b  ##以字节为单位显示内存的使用情况

-k  ##以千字节(KB)为单位

-m  ##以兆字节为单位

-t  ##显示内存的总和列

-o  ##不显示缓冲区列

-s(间隔秒数)  ##根据指定的间隔秒数持续显示内存的使用情况

技术分享 

系统的物理内存是490M,已经使用了94M,空闲396M。系统可用内存为443Mmem+buffer/cache);swap分区还未使用

 

技术分享

技术分享

 

***psprocess status)  ##显示系统进程瞬间的运行状态

参数:

-a  ##显示现行终端中的所有进程(所有用户的进程),包括其他用户进程

-x  ##显示所有系统程序,包括那些没有终端的程序

所以ax表示显示所有在终端中和不在终端中执行的程序

-u  ##以用户为主显示进程

aux  ##以用户为主显示所有进程

x  ##通常与参数u一起使用,列出较完整的信息。

a  ##显示所有进程

-a  ##显示现行终端中的所有进程(所有用户的进程),包括其他用户进程

-e  ##显示所有进程,与-A相同(将除内核进程以外所有进程的信息写到

     标准输出)

-f  ##详细显示程序执行的路径群

-ef  ##详细显示所有进程

-C <命令>  ##列出指定命令的进程

e  ##显示环境变量

f  ##显示程序间的关系

r  ##显示当前终端的进程

T  ##显示当前终端的所有进程

u  ##指定用户的所有进程

c  ##显示进程的真实名称

-c  ##只显示进程的名称,不显示进程的完整路径

-N  ##反向选择

-H  ##显示树状结构

--lines <行数> ##每页显示的行数

--width <字符数>  ##每页显示的字符数

--version  ##显示版本信息

 

# ps -u postfix  ##显示指定用户的进程信息

  PID TTY          TIME CMD

  953 ?        00:00:00 qmgr

 1182 ?        00:00:00 pickup

技术分享 

默认ps命令输出使用者自己的进程:

PID:进程的标识号

TTY:进程所属的终端控制台

TIME:进程所使用的总的CPU时间

CMD:正在执行的命令行

-的参数和不带-的参数表示意义不同:

技术分享 

linux上进程由5中状态:

(1)运行:张在运行或在运行队列中等待

(2)中断:休眠中,受阻,在等待某个条件的形成或接收到信号

(3)不可中断:收到信号后不能唤醒和不可运行,进程必须等待直到有中断发生

(4)停止:进程收到SIGSTOPSIGSTPSIGTOU信号后停止运行

(5)僵死:进程已经终止,但进程描述符存在,直到父进程调用wait()4系统调用后释放

ps工具标识进程的5中状态码:

(1)R 运行 runabled

(2)S 中断 sleeping

(3)D 不可中断

(4)T 停止 traced or stopped

(5)Z 僵死 a defunct(“zombie”) process

 

相关项目明细:

USER:用户名

UID:用户ID

PID:进程ID

PPID:父进程的进程IDparent process id

SID:会话ID

%CPU:进程的cpu占用率

%MEM:进程的内存占用率

VSZ:进程所使用的虚拟内存的大小

RSS:进程使用的驻留集大小或者是实际内存的大小,k字节

TTY:与字节关联的终端

STAT:进程的状态,进程状态使用字符表示的stat状态码

R运行(Runabledon run queue):正在运行或者在运行队列中等待

S 睡眠(Sleeping):休眠中,受阻,在等待某个条件的形成或接收到信号

I 空闲(idle

Z 僵死(Zombie,a defunct process:进程已终止,但进程描述符依然存在,直到父进程调用wait4()系统调用后释放

D 不可中断(Uninterruptible Sleepusually IO):收到信号不唤醒和不可运行,进程必须等待直到有中断发生

T 终止(Terminate):进程收到SIGSTOPSIGSTPSIGTINSIGTOU信号后停止运行

P 等待交换页

W 无驻留页:进入内存交换((从内核2.6开始无效)没有足够的记忆体分页可分配)

X 死掉的进程

< 高优先级进程

N 低优先级进程

L 内存锁页(Lock):由记忆体分页分配并锁在记忆体内

s 进程的领导者(在它之下有子进程)

|  多进程的(使用clone_thread,类似于nptl pthreads

+ 位于后台的进程组

START :进程启动时间和日期

TIME:进程使用的总的CPU占用时间(进程消耗CPU的时间)

COMMAND:执行命令的名称和参数

NInice)优先级

PRI(priority):进程优先级的编号

WCHAN:正在等待的进程资源(进程正在睡眠的内核函数名称(/root/system.map中获得)

FLAGS:与进程相关的数字标识

 

例:

# ps auxps -ef ##查看所有进程信息

# ps -eo ‘pid,uid,stat,pri,comm‘ --sort uid  ##查看当前系统进程的pid,uid,stat,pri,以uid号排序

# ps -aux | grep 进程关键字

# ps ax -o %cpu,%mem,user,pid,comm ###查看进程某项信息

# ps ax -o pid,comm 相当于 ps -eo pid,comm

# ps aux --sort +|-%cpu|%mem...###进程按指定方式排序

例一:将目前属于自己本次登入的PID等相关信息显示出来

技术分享 

各相关信息的意义:

Fflag):代表这个程序的旗标,4代表使用者为superuser;1代表分叉的但没有被执行

技术分享 

SSTAT):代表这个程序的状态

UID:代表执行者的身份

PID:进程的ID

PPID:父进程的ID

Ccpu占用资源的百分比

PRIPriority:指进程的执行优先权,其值越小优先级越大,越早被执行

NI:该进程的nice值,其表示进程可被执行的优先级的修正数值

ADDR:内核参数,指出该进程在内存的哪个部分。如果是可执行的程序,一般为-

SZ:使用掉的内存大小,单位为k字节

WCHAN:目前该程序是否正在运行中,若为-表示正在工作

TTY:登入者的终端机位置

CMD:所下达的指令名称

例二:以例一的显示格式,显示出所有的程序

 技术分享

例三:列出目前所有的正在内存当中的程序

 技术分享

USER:该进程属于哪个使用者

PID:该进程的进程id

%CPU:该进程使用掉的CPU资源百分比

%MEM:该进程所占用的物理内存百分比

VSZ:该进程已使用的虚拟内存量(k字节)

RSS:该进程占用的固定内存量(k字节)

TTY:该进程是在哪个终端机上运行——若与终端机无关则显示?,从本机中登入的用户程序显示为tty1tty6;网络连接进主机的程序显示为pts/0pts/1

STAT:该程序目前的状态,主要的状态有——

R:该程序目前正在运行,或者是可以被运行

S:该程序目前正处于休眠状态,但是可以被某些信号(signal)唤醒

T:该程序目前正在侦测或者停止

Z:该程序应该已终止,但其父进程无法正常终止它,造成僵尸(zombie)程序的状态

START:该进程被触发启动的时间

TIME:该进程实际使用CPU运作的时间

COMMAND:该进程的指令的名称

例四:列出类似程序树的信息

技术分享 

例五:找出cronsyslog这两个服务有关的PID号码

# ps -eo ‘pid,comm‘ | grep -E ‘syslog|cron‘

技术分享 

# ps aux | egrep ‘syslog|cron‘

技术分享 

***top:实时监控系统处理器状态

top -d  ##指定每两次屏幕信息刷新之间的时间间隔

-i  ##不显示闲置或僵死的进程

-c  ##显示进程的整个命令路径,而不是只显示命令名称

-s  ##使top命令在安全模式下运行,此时top的交互式指令被取消,避免

    潜在危险

-b  ##分屏显示输出信息,结合-n选项可将屏幕信息输出到文档

-n  ##top输出信息更新的次数,完成后将退出top指令

top的交互式命令:

h或?  ##显示帮助信息,给出交互式命令的一些说明总结

m  ##切换显示内存信息,这是一个开关命令

t  ##切换显示进程和cpu信息,这是一个开关命令

l  ##切换显示平均负载和启动时间信息,这是一个开关命令

i  ##忽略闲置进程和僵死进程,这是一个开关式命令

c  ##切换显示完整命令行和命令名称信息

M  ##根据驻留内存大小进行排序输出

P  ##根据cpu使用百分比大小进行排序输出

T  ##根据时间/累计时间进行排序输出

S  ##切换到累计模式

k  ##终止一个进程,系统将提示用户以输入一个需要终止进程的PID

s  ##改变top输出信息的两次刷新之间的时间。系统将提示输入新的时间,单位

是秒。如果是小数则换算成毫秒。如果输入0,系统输出将不断刷新,默认

刷新时间为5s。如果设置较小的时间,则会引起系统不断刷新,无法看清

楚输出显示情况,而且系统负载也会加大

o O  ##改变输出信息中显示项目的顺序,按的a~z将相应地列向右移动,按

         AZ将相应地列向左移动

fF  ##从当前的显示列表中添加或者删除项目。按f后会显示列的列表,按a

         z键即可显示或隐藏对应的列。最后按回车键确定

r  ##重新设置一个进程的优先级。系统提示用户输入需要改变的进程PID及需

     要设置的进程优先级。输入一个正值使优先级降低,输入一个负值使该进

     程由更高的优先级。默认值是10

W  ##将当前top设置写入~/.toprc

q  ##退出top命令

例:查看当前系统活动的进程

# top

技术分享 

项目明细:

top的输出可以分为统计时间区(前5行)和进程信息区

第一行为任务队列信息:

15:23:44 表示当前系统时间

up 3 min  表示系统已启动3分钟。

1 user  当前登录系统的用户数

load average0.04,0.03,0.00  表示系统平均负载,3个数值1min5min15min前到现在的系统平均负载值

第二行为进程信息:

  Tasks71total  进程的总数

  1 Running:正在运行的进程数

  70 sleeping:处于休眠的进程数

  0 stopped:停止的进程数

  0 zombie:僵死的进程数

第三行为cpu信息:

  CPU(s)0.0%us  表示用户进程占用CPU百分比

  0.0%sy  系统进程占用CPU的百分比

  0.0%ni  用户进程空间内改变过优先级的进程占用cpu的百分比

  100.0% id  空闲CPU占用的百分比

  0.0%wa  等待输入输出的进程占用CPU的百分比

  0.0%hi

  0.0%si

  0.0%st

第四行、第五行为内存信息:

Mem502276k total  系统物理内存大小

93572k used  已使用物理内存大小

50412k free  目前空余内存大小

buffers  用作内存缓冲区的内存大小

swap  交换分区内存大小

cached 高速缓存

进程信息区:

PID  进程的PID

USER  进程所有者的用户名

PR  进程优先级

NI  nice值,负值表示高优先级,正值表示低优先级

VIRT  进程使用的虚拟内存总量,单位KBVIRT=SWAP+RES

RES  进程使用的、未被换出的物理内存大小,单位KBRES=CODE+DATA

SHR  共享内存大小,单位KB

S  进程状态,D表示不可中断的睡眠状态,R表示运行状态,S表示睡眠状态,T表示跟踪或停止,Z表示僵死进程

%CPU  上次更新到现在的CPU时间占用比

%MEM  进程占用的物理内存百分比

TIME+  进程使用的CPU时间总计,单位为0.01s

COMMAND  正在运行进程的命令名

 

技术分享

技术分享

 

【通配符】

1*:匹配0-任意字符

2?:匹配任意单个字符

[root@localhost Desktop]# ls

file  file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

[root@localhost Desktop]# rm -fr file?

[root@localhost Desktop]# ls

file  file10

3~:匹配当前用户家目录

4username:匹配到username用户家目录

[root@localhost Desktop]# ls

file  file10

[root@localhost Desktop]# cp * ~student

[root@localhost Desktop]# ls /home/student/

Desktop    Downloads  file10  Pictures  Templates

Documents  file       Music   Public    Videos

5+(同.):当前目录

[root@localhost Desktop]# ls

file  file10

[root@localhost Desktop]# cp /etc/passwd ~+

[root@localhost Desktop]# ls

file  file10  passwd

[root@localhost Desktop]# cp /etc/group .

[root@localhost Desktop]# ls

file  file10  group  passwd

6-cd ~-cd -):当前目录之前所在的目录

[root@localhost mnt]# pwd

/mnt

[root@localhost mnt]# cd /root/Desktop/

[root@localhost Desktop]# ls

file  file10  passwd

[root@localhost Desktop]# cp * ~-

[root@localhost Desktop]# ls /mnt/

file  file10  passwd

7[abc]:文件名包含有abc

[root@localhost Desktop]# ls

filea  fileb  filec  filed  filee  filef  test

[root@localhost Desktop]# cp file[abc] test/

[root@localhost Desktop]# ls test/

filea  fileb  filec

[root@localhost Desktop]# touch file{1..5}{a..e}

[root@localhost Desktop]# ls

file1a  file1d  file2b  file2e  file3c  file4a  file4d  file5b  file5e

file1b  file1e  file2c  file3a  file3d  file4b  file4e  file5c  test

file1c  file2a  file2d  file3b  file3e  file4c  file5a  file5d

[root@localhost Desktop]# cp file?[ace] test/

[root@localhost Desktop]# ls test/

file1a  file1e  file2c  file3a  file3e  file4c  file5a  file5e

file1c  file2a  file2e  file3c  file4a  file4e  file5c

8[!abc](同<^abc>):文件名除了含有abc

[root@localhost Desktop]# ls

file1a  file1d  file2b  file2e  file3c  file4a  file4d  file5b  file5e file1b  file1e  file2c  file3a  file3d  file4b  file4e  file5c  test file1c  file2a  file2d  file3b  file3e  file4c  file5a  file5d

[root@localhost Desktop]# cp file?[!ace] test/

[root@localhost Desktop]# ls test/

file1b  file2b  file3b  file4b  file5b file1d  file2d  file3d  file4d  file5d

9[[:alpha:]]:单个字母

[root@localhost Desktop]# ls

 2file  fi2le  file  @file  File  file2  test

[root@localhost Desktop]# cp [[:alpha:]]* test/ -r

cp: cannot copy a directory, test, into itself, test/test

[root@localhost Desktop]# ls test/

fi2le  file  File  file2  test

[root@localhost Desktop]# ls test/test/

fi2le  file  File  file2

10[[:lower:]]:单个小写字母

[root@localhost Desktop]# ls

 2file  fi2le  file  @file  File  file2  test

[root@localhost Desktop]# cp [[:lower:]]* test/

cp: omitting directory test

[root@localhost Desktop]# ls test/

fi2le  file  file2

11[[:upper:]]:单个大写字母

[root@localhost Desktop]# ls

 2file  fi2le  file  @file  File  file2  test

[root@localhost Desktop]# cp [[:upper:]]* test/

[root@localhost Desktop]# ls test/

File

12[[:alnum:]]:单个字母或数字

[root@localhost Desktop]# ls

 2file  fi2le  file  @file  File  file2  test

[root@localhost Desktop]# cp [[:alnum:]]* test/

cp: omitting directory test

[root@localhost Desktop]# ls test/

 2file  fi2le  file   File  file2

13[[:punct:]]:单个符号,不包含空格或数字

[root@localhost Desktop]# ls

 2file  fi2le  file  @file  File  file2  test

[root@localhost Desktop]# cp [[:punct:]]* test/

[root@localhost Desktop]# ls test/

@file

14[[:digit:]]:数字

[root@localhost Desktop]# ls

 2file  fi2le  file  @file  File  file2  test

[root@localhost Desktop]# cp *[[:digit:]]* test/

[root@localhost Desktop]# ls test/

 2file  fi2le  file2

15[[:space:]]:单个空格

[root@localhost Desktop]# touch file " "file

[root@localhost Desktop]# ll

total 0

-rw-r--r--. 1 root root  0 Sep 27 18:34 file

-rw-r--r--. 1 root root  0 Sep 27 18:34  file

drwxr-xr-x. 2 root root 42 Sep 27 18:33 test

[root@localhost Desktop]# ls test/

hello

[root@localhost Desktop]# cp [[:space:]]* test/

[root@localhost Desktop]# ll test/

total 0

-rw-r--r--. 1 root root 0 Sep 27 18:39  file

-rw-r--r--. 1 root root 0 Sep 27 18:38 hello

vim编辑器】

vimtutorvim的说明工具,:q退出此工具

<1> 命令模式

#vim /etc/vimrc

在结尾一行加上set nu,以后用vim打开的文件会自动添加标号

:set nu | number //显示行号

:set mouse=a  //设定鼠标可以操作光标位置

:help //获得帮助;:q退出帮助文档

u  //后退,恢复到未操作前

ctrl+r  //前进,恢复到操作后

ctrl+v  //高量选择模式

:数字  //移动光标到指定行 如:1  //光标停在第一行

G  //移动光标到文件末尾

g  //移动光标到文件开头

批量添加字符』

ctrl+v可以选中一片区域,ctrl+v选中要加字符的位置,按I加入想添加的字符,按esc退出

『分屏功能』

ctrl+w s  //上下分屏

ctrl+w v  //左右分屏

ctrl+w c  //撤销光标所在屏幕

ctrl+w 上下左右 //移动光标到指定屏幕中

『替换字符』

:%s/原字符/替换后字符/g

15s/asdf/hello/g  ##替换15

搜索功能』

在命令模式下,/关键字

N向上匹配;n向下匹配

『字符管理』

d+w  //删除光标所在单词

d+l  //删除光标所在字母

d数字d //删除数字指定的行数  egd3d  //一共删除了3

d数字+上键  //向上删除指定的行数  eg:  d3上键  //删除从光标所在行向上数起的三行,并且删除光标所在行;一共删除了4

d + g  //从光标所在位置删除到文件开始处

d + G  //从光标所在位置删除到文件末尾

D  //从光标所在位置向后删除光标所在行

y+w  //复制光标所在单词

y+l  //复制光标所在字母

y数字y  //向下复制数字指定的行数

p  //粘贴

c+w  //剪切光标所在单词

c+l  //剪切光标所在字母

c数字c  //剪切数字指定行数

注意:剪切完后会进入插入模式,按esc退出插入模式后再按p要粘贴

<2> 插入模式

i  //光标所在位置插入字符

a  //光标所在字符的下一位插入

I  //光标所在行首插入

A  //光标所在行的行尾插入

o  //光标所在行的下一行插入

O  //光标所在行的上一行插入

s  //删除光标所在字符插入

S  //删除光标所在行插入

<3> 退出模式

在命令模式下输入

:q###未对文件作任何修改时退出

:q!###强制退出

:wq###退出保存

:wq!###强制退出保存

【对命令的输出进行管理】

>file1或设备 ##把正确的输出结果定向到file1这个文件中

>>file1 ##把正确的输出结果定向到file1这个文件中,并且不覆盖file1中的内容

2>file2 ##把错误的输出结果定向到file1这个文件中

&>file3 ##把输出结果(包括正确和错误的)定向到file1这个文件中

2>&1 ##把错误的当成正确的

/dev/null ##系统中的垃圾箱

管道(可以多个使用默认情况下,管道只接受正确的信息

如:ls /bin 2>&1 | wc-l

ls /bin 2>& |tee file |wc-l  ##tee把输出复制到file中,我们可以看到

find /etc/ name passwd >file 2>&1 ##把正确的和错误的都放到file

find /etc/ name passwd 2>&1 >file ##不能实现以上功能,当执行>file时,2>&1的结果已经被“扔到了地上”,不会记录


linux系统结构