92人加入学习
(0人评价)
马哥Linux云计算2019面授班预习视频课程
价格 ¥ 9999.00
会员免费学 购买课程

安装操作系统usr

硬盘dev

用户信息etc   用户账号 passwd

临时文件tmp

进程proc

启动操作boot

1.00.00安装centos6.10

free

cat/pruc/meminfo

[展开全文]

0.28.00硬件hardware系统和软件software系统

1.00.00二jim

[展开全文]

0:20:00开发接口;ABI;  API; POSIX

实模式:软件直接访问

保护模式:软件不能直接访问

[展开全文]
创建shell脚本
第一步:使用文本编辑器来创建文本文件
第一行必须包括shell声明序列:#!
示例:#!/bin/bash
添加注释
注释以#开头
第二步:运行脚本
给予执行权限,在命令行上指定脚本的绝对或相对路径
直接运行解释器,将脚本作为解释器程序的参数运行
检测脚本中的语法错误
bash -n /path/to/some_script
调试执行
bash -x /path/to/some_script
[展开全文]
按列抽取文本cut
-d DELIMITER: 指明分隔符,默认tab
-f FILEDS:
#: 第#个字段
#,#[,#]:离散的多个字段,例如1,3,6
#-#:连续的多个字段, 例如1-6
混合使用:1-3,7
-c 按字符切割
--output-delimiter=STRING指定输出分隔符
收集文本统计数据wc
计数单词总数、行总数、字节总数和字符总数
可以对文件或STDIN中的数据运行
wc story.txt
39 237 1901 story.txt
行数 字数 字节数
常用选项
-l 只计数行数
-w 只计数单词总数
-c 只计数字节总数
-m只计数字符总数
-L 显示文件中最长行的长度
文本排序sort
把整理过的文本显示在STDOUT,不改变原始文件
sort [options] file(s)
常用选项
-r 执行反方向(由上至下)整理
-R 随机排序
-n 执行按数字大小整理
-f 选项忽略(fold)字符串中的字符大小写
-u 选项(独特,unique)删除输出中的重复行
-t c 选项使用c做为字段界定符
-k X 选项按照使用c字符分隔的X列来整理能够使用多次uniq
uniq命令:从输入中删除前后相接的重复的行
uniq [OPTION]... [FILE]...
-c: 显示每行重复出现的次数
-d: 仅显示重复过的行
-u: 仅显示不曾重复的行
注:连续且完全相同方为重复
常和sort 命令一起配合使用:
sort userlist.txt | uniq -c
 
[展开全文]

umask值 可以用来保留在创建文件权限

umask+default=777目录|666文件
umask功能:将777|666中对应的权限去掉,得出默认权限

默认权限:
文件:666-umask,如果有奇数加1,偶数不变
目录:777-umask

 

[展开全文]

u:代表所有者

g:代表所属组

o:代表other

a:代表所有人

指定权限[-+=]

chown u+rw:所有者增加读和写权限

对于目录:
读:可以列出文件名
执行:可以进入目录,可以访问目录的文件内容
写:创建和删除文件

对于文件:

读:能看到内容

写:能修改

执行:能够运行

面试题:

需要的最小权限

cp/app/fstab/data/dir1

1)cp:只需要有执行权限

2)/app/fstab:app目录要有执行权限、fstab读权限

3)/data/dor1:data目录要有执行权限、目录要有执行权限和写权限

[展开全文]
查看用户相关的ID信息
id [OPTION]... [USER]
-u: 显示UID
-g: 显示GID
-G: 显示用户所属的组的ID
-n: 显示名称,需配合ugG使用
切换用户或以其他用户身份执行命令
su [options...] [-] [user [args...]]
切换用户的方式:
su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变 当前工作目录
su - UserName:登录式切换,会读取目标用户的配置文件,切换至家目 录,完全切换
root su至其他用户无须密码;非root用户切换时需要密码
换个身份执行命令:
su [-] UserName -c 'COMMAND'
选项:-l --login
su -l UserName 相当于 su - UserName设置密码
passwd [OPTIONS] UserName: 修改指定用户的密码
常用选项:
-d:删除指定用户密码
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-f:强制操作
-n mindays:指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-i inactivedays:非活动期限
--stdin:从标准输入接收用户密码
示例:echo "PASSWORD" | passwd --stdin USERNAME修改用户密码策略
chage [OPTION]... LOGIN
-d LAST_DAY
-E --expiredate EXPIRE_DATE
-I --inactive INACTIVE
-m --mindays MIN_DAYS
-M --maxdays MAX_DAYS
-W --warndays WARN_DAYS
-l 显示密码策略
示例:
chage -d 0 tom 下一次登录强制重设密码
chage -m 0 –M 42 –W 14 –I 7 tom
chage -E 2016-09-10 tom 用户相关的其它命令
chfn 指定个人信息
chsh 指定shell
finger
练习
创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为
"Gentoo Distribution"
答:useradd -s/bin/csh -c'Gentoo Distribution'-G bin,root gentoo
 
创建下面的用户、组和组成员关系
名字为webs 的组
用户nginx,使用webs 作为附加组
用户varnish,使用webs 作为附加组
用户mysql,不可交互登录系统,且不是webs 的成员,nginx,varnish,
mysql密码都是mag
答:groupadd webs
useradd -G webs nginx
useradd -G varnish
useradd -s/sbin/nologin mysql
echo magedu|passwd --stdin nginx
echo magedu|passwd --stdin varnish
echo magedu|passwd --stdin mysql
[展开全文]
用户创建:useradd
useradd [options] LOGIN
-u UID
-o配合-u 选项,不检查UID的唯一性
-g GID 指明用户所属基本组,可为组名,也可以GID
-c "COMMENT“ 用户的注释信息
-d HOME_DIR
以指定的路径(不存在)为家目录
-s SHELL 指明用户的默认shell程序,可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,...] 为用户指明附加组,组须事先存在
-N 不创建私用组做主组,使用users组做主组
-r 创建系统用户 CentOS 6: ID<500,CentOS 7: ID<1000
-m 创建家目录,用于系统用户
-M 不创建家目录,用于非系统用户
-u UID: 新UID
-g GID: 新主组
-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被 覆盖;若保留原有,则要同时使用-a选项
-s SHELL:新的默认SHELL
-c 'COMMENT':新的注释信息
-d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据, 同时使用-m选项
-l login_name: 新的名字
-L: lock指定用户,在/etc/shadow 密码栏的增加 !
-U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉
-e YYYY-MM-DD: 指明用户账号过期日期
-f INACTIVE: 设定非活动期限
 
 
删除用户
userdel [OPTION]... login
-r: 删除用户家目录
chpasswd 修改口令
 
[展开全文]

管道(使用符号“|”表示)用来连接命令

命令1 | 命令2 | 命令3 | …

将命令1的STDOUT发送给命令2的STDIN,命令2的STDOUT发送到命令3的 STDIN

STDERR默认不能通过管道转发,可利用2>&1 或 |& 实现

最后一个命令会在当前shell进程的子shell进程中执行

组合多种工具的功能 ls | tr ‘a-z’ ‘A-Z’

seq 90 100:90到100之间数字

seq 90 3 100:以90开头三个三个往上加不超过100

seq -s+100:1到100相加

seq-s+100|bc:1到100相加求和

[展开全文]

命令>文件所在地 文件名

>代表覆盖的意思

命令》文件所在地 文件名

》代表追加效果

set -C 禁止将内容覆盖已有文件,但可追加

>| file 强制覆盖

set +C 允许覆盖

tr命令

tr 转换和删除字符

tr [OPTION]... SET1 [SET2]

选项: -c –C --complement:取字符集的补集

-d --delete:删除所有属于第一字符集的字符

-s --squeeze-repeats:把连续重复的字符以单独一个字符表示

-t --truncate-set1:将第一个字符集对应字符转化为第二字符集对应的字符

[:alnum:]:字母和数字

[:alpha:]:字母

[:cntrl:]:控制(非打印)字符

[:digit:]:数字

[:graph:]:图形字符

[:lower:]:小写字母

[:print:]:可打印字符

[:punct:]:标点符号

[:space:]:空白字符

[:upper:]:大写字母

[:xdigit:]:十六进制字符

从文件中导入STDIN 使用 < 来重定向标准输入

tr –d abc < /etc/fstab 删除fstab文件中的所有abc中任意字符

cat > file mage wangxiaochun 按ctrl+d离开,可以使用文件来代替键盘的输入

cat < file1 > file2 cat < file1 >> file1

[展开全文]

命令模式

100iwang [ESC] 粘贴“wang”100次

常见Command

y 复制、d 删除、gU 变大写、gu 变小写

例如: 0y$ 命令 0 → 先到行头 y → 从这里开始拷贝 $ → 拷贝到本行最后一个字符

di" 光标在”“之间,则删除”“之间的内容

yi( 光标在()之间,则复制()之间的内容

vi[ 光标在[]之间,则选中[]之间的内容

dtx 删除字符直到遇见光标之后的第一个 x 字符 ytx 复制字符直到遇见光标之后的第一个 x 字符

扩展命令模式:

地址定界 :start_pos,end_pos

# 具体第#行,例如2表示第2行

#,# 从左侧#表示起始行,到右侧#表示结尾行 #,+# 从左侧#表示的起始行,加上右侧#表示的行数 示例:2,+3 表示2到5行

. 当前行

$ 最后一行

.,$-1 当前行到倒数第二行

% 全文, 相当于1,$

/pattern/ 匹配pattern的行

/pat1/,/pat2/ 从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束 #,/pat/ /pat/,$

使用方式:后跟一个编辑命令 d y w file: 将范围内的行另存至指定文件中 r file:在指定位置插入指定文件中的所有内容

在扩展命令模式下完成查找替换操作

格式:s/要查找的内容/替换为的内容/修饰符

修饰符:

i 忽略大小写

g 全局替换,默认情况下,每一行只替换第一次出现

gc 全局替换,每次替换前询问

查找替换中的分隔符/可替换为其它字符 s@/etc@/var@g s#/boot#/#i

命令模式:查找 /PATTERN:从当前光标所在处向文件尾部查找 ?PATTERN:从当前光标所在处向文件首部查找 n:与命令同方向 N:与命令反方向

撤消更改

u 撤销最近的更改

#u 撤销之前多次更改

U 撤消光标落在这行后所有此行的更改

Ctrl - r 重做最后的“撤消”更改

. 重复前一个操作

#. 重复前一个操作#次

编辑二进制文件

以二进制方式打开文件

vim –b binaryfile 

扩展命令模式下,利用xxd命令转换为可读的十六进制 :%!xxd 

插入模式下,编辑二进制文件 扩展命令模式下,利用xxd命令转换回二进制 :%!xxd -r

保存退出

可视化模式

允许选择的文本块 v 面向字符 V 面向行 ctrl-v 面向块

可视化键可用于与移动键结合使用 w ) } 箭头等

突出显示的文字可被删除,复制,变更,过滤,搜索,替换等 使用多个“窗口”

多文件分割 vim -o|-O FILE1 FILE2 ...

-o: 水平分割

-O: 垂直分割

在窗口间切换:Ctrl+w, Arrow

单文件窗口分割

Ctrl+w,s:split, 水平分割

Ctrl+w,v:vertical, 垂直分割

ctrl+w,q:取消相邻窗口

ctrl+w,o:取消全部窗口

:wqall 退出 

定制vim的工作特性

配置文件:永久有效 全局:/etc/vimrc

个人:~/.vimrc 

扩展命令模式:当前vim进程有效

(1) 行号 显示:set number,简写 set nu 取消显示:set nonumber, 简写 set nonu (2) 忽略字符的大小写 启用:set ignorecase,简写 set ic 不忽略:set noic (3) 自动缩进 启用:set autoindent,简写 set ai 禁用:set noai

(4) 复制保留格式 启用:set paste 禁用:set nopaste

(5) 显示Tab和换行符 ^I 和$显示 启用:set list 禁用:set nolist

(6) 高亮搜索 启用:set hlsearch 禁用:set nohlsearch 

(7) 语法高亮 启用:syntax on 禁用:syntax off

(8) 文件格式 启用windows格式:set fileformat=dos 启用unix格式:set fileformat=unix 简写 set ff=dos|unix

(9) 设置文本宽度 set textwidth=65 (vim only) set wrapmargin=15

(10) 设置光标所在行的标识线 启用:set cursorline,简写 set cul 禁用:set nocursorline

 

[展开全文]

vim

+# 打开文件后,让光标处于第#行的行首,+默认行尾

+/PATTERN 让光标处于第一个被PATTERN匹配到的行的行首

–b file 二进制方式打开文件

–d file1 file2… 比较多个文件

-m file 只读打开文件

vim -e file 或 ex file 直接进入ex模式

 

命令模式 --> 插入模式  

i insert, 在光标所在处输入  

I 在当前光标所在行的行首输入  

a append, 在光标所在处后面输入  

A 在当前光标所在行的行尾输入  

o 在当前光标所在行的下方打开一个新行

O 在当前光标所在行的上方打开一个新行

插入模式 --------> 命令模式 ESC

命令模式 --------> 扩展命令模式 :

扩展命令模式 --------> 命令模式 ESC,enter

扩展命令模式:

:q 退出

:q! 强制退出,丢弃做出的修改

:wq 保存退出

:x 保存退出

:w 写(存)磁盘文件

: r filename 读文件内容到当前文件中  

:w filename 将当前文件内容写入另一个文件 :!command 执行命令

: r!command 读入命令的输出

命令模式

ZZ 保存退出

ZQ 不保存退出

命令模式光标跳转 

字符间跳转: h: 左 l: 右 j: 下 k: 上 #COMMAND:跳转由#指定的个数的字符 

单词间跳转:

w:下一个单词的词首

e:当前或下一单词的词尾

b:当前或前一个单词的词首

#COMMAND:由#指定一次跳转的单词数 当

前页跳转:

H:页首

M:页中间行

L:页底

zt:将光标所在当前行移到屏幕顶端

zz:将光标所在当前行移到屏幕中间

zb:将光标所在当前行移到屏幕底端

行首行尾跳转:

^ 跳转至行首的第一个非空白字符

0 跳转至行首

$ 跳转至行尾 

行间移动:

#G 或者扩展命令模式下:# 跳转至由第#行

G 最后一行 1G, gg 第一行

句间移动: ) 下一句 ( 上一句 

段落间移动: } 下一段 { 上一段

Ctrl+f 向文件尾部翻一屏

Ctrl+b 向文件首部翻一屏

Ctrl+d 向文件尾部翻半屏

Ctrl+u 向文件首部翻半屏

字符编辑:

x 删除光标处的字符

#x 删除光标处起始的#个字符

xp 交换光标所在处的字符及其后面字符的位置 ~ 转换大小写

J 删除当前行后的换行符

替换命令(r, replace)

r 替换光标所在处的字符

R 切换成REPLACE模式

删除命令:

d 删除命令,可结合光标跳转字符,实现范围删除

d$ 删除到行尾

d^ 删除到非空行首

d0 删除到行首

dw 删除整个单词

de删到下一个单词词尾

db

#COMMAND

dd:删除光标所在的行

#dd 多行删除 

D:从当前光标位置一直删除到行尾,等同于d$

复制命令(y, yank):

 y 复制,行为相似于d命令

 y$

 y0

 y^  

ye  

yw  

yb

 #COMMAND  

yy:复制行

#yy 复制多行  

Y:复制整行

粘贴命令(p, paste):

p 缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘 贴至当前光标所在处的后面

P 缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘 贴至当前光标所在处的前面

 

[展开全文]

创建硬链接  ln  文件名

创建软连接 ln-s   文件名

硬链接和软链接区别
1本质:硬链接:同一个多个名字,软链接不同文件
2跨分区
3目录
4相互关系:
5原始与链接文件关系
6链接数
7相对路径:硬:相对于CWD;软件:相对于软链接文件的相对路径
8文件类型
9l链接文件的大小 

file [options]

-b 列出文件辨识结果时,不显示文件名称

-f filelist 列出文件filelist中文件名的文件类型

-F 使用指定分隔符号替换输出文件名后默认的”:”分隔符

-L 查看对应软链接对应文件的文件类型

--help 显示命令在线帮助

面试题:下面两个区别

ln -s /data/file1/data/file2

mv /data/file1/data/file2

[展开全文]

目录操作

tree 显示目录树 :

   -d: 只显示目录

   -L level:指定显示的层级数目

   -P pattern: 只显示由指定pattern匹配到的路径

mkdir 创建目录 :

   -p: 存在于不报错,且可自动创建所需的各目录

   -v: 显示详细信息

    -m MODE: 创建目录时直接指定权限

rmdir 删除空目录:

   -p: 递归删除父空目录

   -v: 显示详细信息

   rm -r 递归删除目录树

例:(1) 如何创建/testdir/dir1/x, /testdir/dir1/y, /testdir/dir1/x/a, /testdir/dir1/x/b, /testdir/dir1/y/a, /testdir/dir1/y/b

答:mkdir /testdir/dir1/{x,y}/{a,b}-pv

(2)如何创建/testdir/dir2/x, /testdir/dir2/y, /testdir/dir2/x/a, /testdir/dir2/x/b

答:mkdir /testdir/dir2/{x/{a,b},y}-pv

(3) 如何创建/testdir/dir3, /testdir/dir4, /testdir/dir5, /stdir/dir5/dir6, /testdir/dir5/dir7

答 :mkdir/testdir /dir/{3,4,5/dir{6,7}}-pv

用户在一个分区里面提示No space但还有足够空间可以建立是为什么呢?因为他的节点占有率100%节点编号用光了

 

[展开全文]

 

cp复制 

cp -r 复制文件夹

cp -a 备份;归档

cp -av 备份并显示文件

cp -d不复制原文件,只复制链接名

cp-p保留特定权限所有者 时间

cp-v显示文件 v越多显示越多越详细

cp-u 只复制源比目标更新文件或者不存在文件;更新数据

cp-b目标存在,覆盖前先备份

例:每天将/etc/目录下所有文件,备份到/data独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd,备份过程可见

cp -av /etc/ /data/ backup'date +%F'

例:创建/data/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有权限

cp -pr /root/ /data/rootdir

mv 移动 

mv -i交互式  

mv-f 强制  

mv-b 目标存在,覆盖前先备份

rm 删除文件

rm-f强制删除

 

[展开全文]