码迷,mamicode.com
首页 > 其他好文 > 详细

第二周总结

时间:2019-03-18 18:22:02      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:生成   ann   跟踪   image   查看   space   清除   cti   逻辑   

Linux下的文件类型
?- 普通文件 ?d 目录文件 ?b 块设备 ?c 字符设备 ?l 符号链接文件 ?p 管道文件pipe ?s 套接字文件socket

列出当前目录内容:ls

**ls -a** 包含隐藏文件
**ls -l** 显示额外的信息
**ls -R  **目录递归通过
**ls -ld**  目录和符号链接信息
**ls -1**  文件分行显示
**ls –S**  按从大到小排序 
**ls –t **  按mtime排序 
**ls –u **  配合-t选项,显示并按atime从新到旧排序 
**ls –U**  按目录存放顺序显示 
**ls –X ** 按文件后缀排序 

touch : 创建空文件和刷新时间

cp :复制?件和?录

【例】把/etc/httpd/conf/httpd.conf?件和/etc/my.cnf?件拷贝到当前?录
[..@。。。]# cp /etc/httpd/conf/httpd.conf /etc/my.cnf ./

【例】把/etc/nginx?录及其下?所有?件和??录拷贝到当前?录
[..@。。。]# cp -R /etc/nginx/ ./

【例】复制httpd.conf?件并重命名为httpd.conf.bak
[..@。。。]# cp httpd.conf httpd.conf.bak

【例】复制/etc?录下所有?件及其??录到当前?录,并重命名为etc_bak
[..@。。。]# cp -R /etc ./etc_bak

mv : 移动和重命名文件

【例】把当前?录下nginx命令重命名为nginx_bak
[..@。。。]# mv nginx/ nginx_bak

【例】把httpd.conf?件移动到/tmp?录下
[..@。。。]# mv httpd.conf /tmp

#rm : 删除文件或目录 :rm - rf /*

tree 显示目录树
-d: 只显示目录
-L level:指定显示的层级数目

mkdir :创建文件目录
-v : 显示详细信息

rmdir 删除空目录
-p: 递归删除父空目录

tree:显??录树
【例】显?a?录的?录树
[..@。。。]# tree a
【例】查看/usr/local?录树,但仅查看2级的?录深度
[..@。。。]# tree -L 2 /usr/local

ln:创建链接?件
【例】把 /usr/sbin/apachectl?件在当前?录下创建软连接?件为apachectl
[..@。。。]# ln -s /usr/sbin/apachectl apachectl

I/O重定向和管道使?

: 表?标准输出覆盖重定向;
【例】 把/etc/fstab?件内容重定向到/tmp?录下?件名为fstab.out
[..@。。。]# cat /etc/fstab > /tmp/fstab.out

> : 表?标准输出追加重定向;
【例】把hello world追加到/tmp/fstab.out?件尾部
[..@。。。]# echo "hello world" >>/tmp/fstab.out

2> : 表?错误输出覆盖重定向;
【例】把标准错误重定向:
[..@。。。]# whch cat 2> /tmp/which.out
[..@。。。]# cat /tmp/which.out
bash: whch: command not found...

2>> : 表?错误输出追加重定向;

&> : 表?合并标准输出和错误输出覆盖重定向;
【例】合并标准输出和标准错误覆盖重定向到out.txt?件?
[..@。。。]# which cat &> out.txt
[..@。。。]# cat out.txt
/usr/bin/cat
[..@。。。]# hich cat &>> out.txt
[..@。。。]# cat out.txt
/usr/bin/cat
bash: hich: command not found...

&>> : 表?合并标准输出和错误输出追加重定向;

2>&1 :表?意义同&>即合并标准输出和错误输出覆盖重定向;
【例】 &>等价于2&>1,功能同上例
[..@。。。]# which cat > out.txt 2>&1
[..@。。。]# cat out.txt
/usr/bin/cat
[..@。。。]# wich cat >> out.txt 2>&1
[..@。。。]# cat out.txt
/usr/bin/cat
bash: wich: command not found...

<: 输?重定向;
从?件导?标准输?
【例】把out.txt?件?的内容,写到?le.txt?件?
[root@Magedu ~]# cat >file.txt <out.txt

[root@Magedu ~]# cat file.txt

/usr/bin/cat

bash: wich: command not found...

<<: 多?输?;
【例】屏幕随便输???内容,遇到END字样结尾后,屏幕内容?动保存在f1.txt?
[..@。。。]# cat > f1.txt <<END

first

scond

third

END

[..@。。。]# cat f1.txt

first 
scond 
third 

set -C命令:禁?覆盖重定向;

>|: 强制覆盖重定向(与set -C相反);

【例】禁?覆盖重定向和强制重定向
[..@。。。]# set -C
[..@。。。]# echo "hello magedu" >/tmp/fstab.out
-bash: /tmp/fstab.out: cannot overwrite existing file

设置禁?覆盖重定向后,可强制覆盖重定向
[..@。。。]# echo "hello " >| /tmp/fstab.out
[..@。。。]# cat /tmp/fstab.out
hello

set +C命令:解除禁?覆盖重定向的设置;
【例】解除禁?覆盖重定向设置
[..@。。。]# set +C

[..@。。。]# echo "hello" > /tmp/fstab.out
[..@。。。]# cat /tmp/fstab.out
hello
管道符(|)作?是把前?个命令的执?结果当做后?个命令的输?

重难点

【例】**把标准错误和标准输出分别重覆盖定向到不同的?件?,即标准错误重定向到falt.txt?件,标准输出 重定向到correct.txt

[..@。。。]# which cat 2> falt.txt > correct.txt 
[..@。。。]# cat correct.txt  
 /usr/bin/cat 
[..@。。。]# cat falt.txt  

[..@。。。]# wih cat 2> falt.txt > correct.txt 
[..@。。。]# cat falt.txt  
bash: wih: command not found... 
[..@。。。]# cat correct.txt 

tr :把字符集1转换为字符集2

-c –C --complement:取字符集的补集
-d --delete:删除所有属于第一字符集的字符
-s --squeeze-repeats:把连续重复的字符以单独一个字符表示
-t --truncate-set1:将第一个字符集对应字符转化为第二字符集对应的字符
?[:alnum:]:字母和数字 [:alpha:]:字母 [:cntrl:]:控制(非打印)字符 [:digit:]:数字 [:graph:]:图形字符 [:lower:]:小写字母 [:print:]:可打印字符 [:punct:]:标点符号 [:space:]:空白字符 [:upper:]:大写字母 [:xdigit:]:十六进制字符

【例】?输?重定向的?式,把所有?写字?转换为?写
[..@。。。]# cat /etc/issue
\S
Kernel \r on an \m

[..@。。。]# tr a-z A-Z </etc/issue
\S
KERNEL \R ON AN \M

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

tr ‘a-z’ ‘A-Z’< /etc/issue 该命令会把/etc/issue中的小写字符都转换成大写字符

管道符:|

【例】把echo输出的内容,传递给tr命令,实现?写字?转换为?写字?
[..@。。。]# echo "this is test line" | tr a-z A-Z

THIS IS TEST LINE

用户组

useradd:在系统中添加?户

-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 不创建家目录,用于非系统用户

【例】在系统上添加?个?户名称为apache的?户,默认shell为/sbin/nolgoin且不创建家?录
[..@。。。]# useradd -s /sbin/nologin -M apache

groupadd:创建组

chown:修改?件所属关系

userdel : 删除用户

passwd : 设置密码,修改用户原密码

-d:删除指定用户密码
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-f:强制操作
-n mindays:指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-i inactivedays:非活动期限
--stdin:从标准输入接收用户密码
示例:echo "PASSWORD" | passwd --stdin USERNAME

组属性修改:groupmod

groupmod [OPTION]... group
-n group_name: 新名字
-g GID: 新的GID

组删除:groupdel ,groupdel GROUP

gpasswd : 更改组密码

?gpasswd [OPTION] GROUP
-a user 将user添加至指定组中
-d user 从指定组中移除用户user
-A user1,user2,... 设置有管理权限的用户列

newgrp命令:临时切换主组

  如果用户本不属于此组,则需要组密码 

修改文件的属主:chown

修改文件的属组:chgrp

文件权限

a , all 所有用户
owner 属主, u
group 属组, g
other 其他, o ?
三种权限 :
r Readable 读 4 :可使用文件查看类工具获取其内容
w Writable 写 2 :可修改其内容
x eXcutable 执行 1 : 可以把此文件提请内核启动为一个进程

chmod : 改变文件权限

技术图片

【例】修改权限为属主添加写和执?权限、属组没有读权限其它?有读和执?权限

  [。。@。。。~]# ll 1.sh 

   -rw-r--r-- 1 root root 0 Jun  3 22:16 1.sh  
   [。。@。。。~]# chmod u+wx,g-r,o=rx 1.sh 
   [。。@。。。~]# ll 1.sh 
   -rwx---r-x 1 root root 0 Jun  3 22:16 1.sh 

【例】递归设置testdir?录权限为:属组添加可读、可写、可执?权限,但其??件不添加执?权限
[。。@。。。 ~]# chmod -R g=rwX testdir/

chattr : 改变文件属性

【例7】设置?件1.sh权限为只有属主有读写权限

     [root@Magedu ~]# ll 1.sh
    -rw-r--r-- 1 root root 0 Jun  4 00:28 1.sh 
     [root@Magedu ~]# chmod 600 1.sh 
     [root@Magedu ~]# ll 1.sh
     -rw------- 1 root root 0 Jun  4 00:28 1.sh 

SGID : 权限设置

【例】设置?进制可执?程序?件chmod拥有suid权限
技术图片

【例】取消?进制可执?程序?件chmod拥有的suid权限
技术图片

【例】设置?进制可执?程序?件chmod拥有sgid权限
技术图片

【例】取消?进制可执?程序?件chmod拥有的sgid权限
技术图片

【例】对testdir?录设置sgid权限,作为协作?录
技术图片

【例】取消testdir?录sgid权限
技术图片

Sticky权限设置

【例】对testdir?录设置sticky权限,实现只有?件的所有者或root才能删除该?录下的?件
技术图片

【例】取消testdir?录的sticky权限
技术图片

acl特殊权限

【例】在/testdir/dir?创建的新?件?动属于g1组,组g2的成员如:alice能对这些新?件有读写权限,组 g3的成员如:tom只能对新?件有读权限,其它?户(不属于g1,g2,g3)不能访问这个?件夹。
技术图片

【例】备份/testdir/dir?所有?件的ACL权限到/root/acl.txt中,清除/testdir/dir中所有ACL权限,最后 还原ACL权限
getfacl对?录操作时,不能使?绝对路径;

技术图片

文本处理

cat命令:查看?件全部内容

less命令:分页显??件内容

【例】分页查看/var/log/messages?件,?件最后不退出

    [。。@。。。~]# less /var/log/messages  

head命令:查看?件?部的内

 -c # 指定获取前#字节 
 -n # 指定获取前#行  
 -# 指定行数 

【例】查看1.sh?件的前3?内容
技术图片

tail命令:查看?件尾部的内容

-c # 指定获取后#字节 
-n # 指定获取后#行 
-# 同上 
-f 跟踪显示文件fd新追加的内容,常用日志监控  , 相当于 --follow=descriptor 
-F 跟踪文件名,相当于--follow=name --retry 

技术图片

监视查看1.sh?件尾部是否有内容增加

     [。。@。。。~]# tail -f 1.sh   

di?命令:?较两?件

【例】?较1.sh和2.sh两?件的不同
技术图片

cut命令:按列抽取?本内容

-d DELIMITER: 指明分隔符,默认tab  -f FILEDS:    
#: 第#个字段     
#,#[,#]:离散的多个字段,例如1,3,6     
#-#:连续的多个字段, 例如1-6               
混合使用:1-3,7
-c 按字符切割  --output-delimiter=STRING指定输出分隔符 

【例】截取/etc/passwd?件第??,以冒号为分隔符,抽取第7个字段
技术图片

sort命令:?本排序

        -r 执行反方向(由上至下)整理
        -R 随机排序 
        -n 执行按数字大小整理
        -f 选项忽略(fold)字符串中的字符大小写 
        -u 选项(独特,unique)删除输出中的重复行
        -t  c 选项使用c做为字段界定符 
        -k  X 选项按照使用c字符分隔的X列来整理能够使用多次

【例】以1.sh?件??内容的空格分隔,按第3段从?到?排序
技术图片

wc命令:?本数据统计

【例】统计/etc/pass?件有多少?

[。。@。。。~]# cat /etc/passwd | wc -l 

 50 

uniq命令:?本去重

【例】统计2.sh?件中相同内容的?出现的次数
技术图片

grep命令和正则表达式应?

Linux文本处理三剑客

grep :文本过滤工具

sed :文本编辑工具

awk : 文本报告生成器

 --color=auto: 对匹配到的文本着色显示 ?
 -m  #  匹配#次后停止 ? 
 -v 显示不被pattern匹配到的行 ? 
 -I 忽略字符大小写 
 -n 显示匹配的行号 ?
 -c 统计匹配的行数 ?
 -o 仅显示匹配到的字符串 
 -q 静默模式,不输出任何信息 
 -A # after, 后#行 ? -B # before, 前#行 
 -C # context, 前后各#行 ?
 -e 实现多个选项间的逻辑or关系  grep –e ‘cat ’  -e ‘dog’  file ?
 -w 匹配整个单词 ? 
 -E 使用ERE 
 -F 相当于fgrep,不支持正则表达式 ?
 -f file 根据模式文件处理 

基本正则表达式元字符

字符匹配:

.    匹配任意单个字符   
[]   匹配指定范围内的任意单个字符,示例:[wang]   [0-9]    [a-z]   [a-zA-Z] 
[^]  匹配指定范围外的任意单个字符  

技术图片

匹配次数

技术图片

*匹配前面的字符任意次,包括0次 
贪婪模式:尽可能长的匹配  
*.* 任意长度的任意字符 
\? 匹配其前面的字符0或1次
\+ 匹配其前面的字符至少1次 
\{n\} 匹配前面的字符n次 
\{m,n\} 匹配前面的字符至少m次,至多n次  
\{,n\} 匹配前面的字符至多n次 
\{n,\} 匹配前面的字符至少n次 

位置锚定:定位出现的位置

【例】查找/etc/passwd?件?包含root字符串的?
技术图片

【例】查找2.sh?件?显?不包含111字符串的?
技术图片

【例】显?/etc/passwd?件中以bash结尾的?
技术图片

【例】找出“ldd /usr/bin/cat”命令的结果中的?件路径
技术图片

【例】找出ifcon?g命令结果中所有IPv4地址
技术图片

【例】将此字符串:welcome to magedu linux 中的每个字符去重并排序,重复次数多的排到前?
技术图片

egrep命令:同grep命令,但?持扩展的正则表达式

【例】使?egrep取出/etc/rc.d/init.d/functions路径的?录名
技术图片

第二周总结

标签:生成   ann   跟踪   image   查看   space   清除   cti   逻辑   

原文地址:https://blog.51cto.com/14234291/2364833

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!