linux的一些基本技能

linux的一些基本技能

exit指令==注销linux

date:显示时间与日期

cal:显示日历 cal[月][年]

bc:计算器

tab键:命令补全

ctrl+c:终止程序

man:找指令说明,/name可以实现搜索关键词,n可以迅速找到下个关键词位置

man -f:可以把说明文件列出来

who:看目前谁在线

 

 

ls -al:列出所有档案详细的权限和属性,

(1)第一栏:第一个字符是文件的属性,后9个字符三个为一组,rwx分别代表可读 可写 可执行。第一组为档案拥有者的权限,第二组为同群组的权限,第三组为其他非本群组的权限。

(2)第二栏:表示有多少档名连接到此节点。

(3)第三栏:表示这个档案的拥有者

(4)第四栏:表示这个档案所属群组

(5)第五栏:表示这个档案的容量大小

(6)第六栏:表示这个档案最近的修改日期

(7)第七栏:表示档名,若前面以.开头,则是隐藏档

 

 

cp a.c b.c //把a.c拷贝成b.c,同时会复制执行者的属性和权限

 

 

chgrp:更改档案所属群组

chgrp sen install.log //把install.log群组更改为sen

 

chown:更改档案拥有者

chown sen install.log //把install,log的拥有者改为sen

chown root:root install.log //把install.log的所属和组改为root

-R可以进行递归,目录下所有次目录权限都会改变

 

 

 

chmod:改变档案的权限,其中r==4,w==2,x==1

chmod 777 test.c

 

linux下的文件颜色意义:

蓝色表示目录;

绿色表示可执行文件;

红色表示压缩文件;

浅蓝色表示链接文件;

灰色表示其它文件;

红色闪烁表示链接的文件有问题了;

黄色是设备文件

白色是一般文件

 

根目录下的次目录

/bin:存放一些指令,如cat、chmod、chown、date等

/dev:任何装置与接口的档案

/boot:放置开机会用到的档案,包括linux核心档案,开机选单,开机所配置文件等

/etc:系统的主要配置文件,人员的账户密码等

/home:系统默认的用户家目录,新增一个账户,账户会增加进来

/lib:开机时用到的函式库,还会有内核的驱动程序

/media:可移除的装置,硬盘,软盘等等

/mnt:暂时挂载,如共享文件夹

/opt:第三方协力软件,如系统增强功能

/root:系统管理员的家目录

/sbin:开机,修复,还原所需要的指令

/srv:一些网络服务

/tmp:存放正在执行的程序,任何人都能存取

/proc:一个虚拟的文件系统,系统核心,行程信息,网络状态等等

/sys:一个虚拟的文件系统,主要记录与核心相关的信息

 

/usr:里面的数据属于不可变动,unix software resource『Unix操作系统软件资源』

/var:里面存放快取,登录以及一些软件所产生的档案

 

 

绝对路径与相对路径:绝对路径一般从根目录出发,直到文件的最终位置,相对路径是从当前路径出发,找到相邻的文件的位置(一般写程序时最好用绝对路径,因为这个写法没问题)

 

 

目录:.   :当前目录

            ..  :上一个目录

             -  :前一个工作目录

            ~  :目前用户身份所在家目录

             ~account:用户的家目录

 

cd:变换目录

pwd:显示当前目录   pwd -P:显示实际的目录(非链接)

mkdir:新建一个目录      mkdir -p:可建立多层目录      mkdir -m:可以设置权限

rmdir:删除一个目录

cp:cp a.c b.c(把a.c复制到b.c)

      cp -a a.c b.c(把a.c复制到b.c,连同所有特性)

rm:删除   rm -rf:递归删除

mv:移动档案或者更名

cat:从第一行开始显示

tac:从最后一行开始显示

chattr:给文件增加特殊属性 +a:叧能增加数据,而不能删除也不能修改数据,只有 root 才能讴定这个属性。

                                            +i:他可以让一个档案不能被删除、改名、设定连结也无法写入或新增资料

 

 

档案的特殊权限:SUID, SGID, SBIT

 

SUID :s 标志在档案拥有者的x 项目为 SUID,会暂时获得root权限,仅可用在 binary program 上, 不能够用在 shell script 上面,也不能用在目录上面

SGID:s 在群组的 x 时则称为 Set GID,可以针对档案或者目录来设定

SBIT :目前仅针对目录有效。

 

查询文件类型:file +文件

 

Which+指令    可以寻找常用指令的位置

 

locate:从已经建立的数据库通过寻找

 

alias ll='ls -al'  :建立指令的别名  

echo:用来显示变量

 

 

|:管线命令,由前一个命令所传的正确信息交给后面的指令

例如:

sen@sen-VirtualBox:~/Desktop$ echo a.txt | cat

a.txt

sen@sen-VirtualBox:~/Desktop$ vim a.txt

 

sen@sen-VirtualBox:~/Desktop$ echo a.txt | xargs cat

HHHHHHHHHHHHHHHHHHHHHH

 

从上面的例子中,我们可以得出下面的结论:

管道可以实现:将前面的标准输出作为后面的“标准输入”。

管道无法实现:将前面的标准输出作为后面的“命令参数”。

 

dmesg | grep 'eth'   在dmesg中找到有eth关键字的记录

 

grep:抓取想要的东西

grep '字符' :抓取含有特定字符的语句

grep -v  '字符':抓取不含有特定字符的语句

grep -i  '字符':抓取含有特定字符的语句(不区分大小写)

 

 

sed command file

command 部分:针对每行的内容所要进行的处理(这部分很重要很重要)。

file 部分:要处理的文件,如果忽略 file 参数,则 sed 会把标准输入作为处理对象。

 

sed 的工作原理:sed 命令是面向“行”进行处理的,每一次处理一行内容。处理时,sed 会把要处理的行存储在缓冲区中,接着用 sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。这个缓冲区被称为“模式空间”(pattern space)。

sed 所谓的删除都是在模式空间中执行的,不会真正改动原文件。)

 

command部分:

(1)范围设定

指定行数:比如‘3,5’表示第 3、第 4 和第 5行;而‘5,$’表示第 5 行至文件最后一行。

模式匹配:比如/^[^dD]/表示匹配行首不是以 d 或 D 开头的行。

 

1.sed -n '10,26p' test.txt    在test.txt中找到10到26行的数据并打印出来

 

2.将所有以 d 或 D 开头的行里的所有小写 x 字符变为大写 X 符:

      采用了 /AA/s/BB/CC/g 的语法格式,这表示我们要匹配到文件中带有 AA 的行,并且将这些行中所有的 BB 替换成 CC。

sen@sen-VirtualBox:~/Desktop$ sed '/[dD]/s/x/X/g' test2.txt

dgadajsgduwqgdugdXgwdgjdXXXX

Ddsal;kdasdj;asidXaishXkXhakXaXhasXXhasXauhX;aXhaXX

ddaslkdjadihXXaiXhXiahX;aoisXha;sXiohasXuaXh

 

3.删除每行最后的两个字符

#点号表示一个单个字符, 两个点号就表示两个单个字符
[roc@roclinux ~]$ sed 's/..$//' test

有人可能会问,用 sed‘/..$/d’test 为什么不行呢,d 不是表示删除么?用 d 是不行的,这是因为 d 表示删除整行内容,而非字符。‘/..$/d表示的是匹配所有末尾含有两个字符的行,然后删除这一整行内容,显然这和我们的初衷是相悖的。

第四个例子,我们希望删除每一行的前两个字符:

[roc@roclinux ~]$ sed 's/..//' test

通过这四个例子,相信大家对 sed 命令的最常见用法已经有了很直观的认识了,不妨在自己的实际工作中把这些知识用起来吧。

 

 

 

 

 

这个用法值得一讲,我们在 command 部分采用了 /AA/s/BB/CC/g 的语法格式,这表示我们要匹配到文件中带有 AA 的行,并且将这些行中所有的 BB 替换成 CC。

 

 

 

 

(2)动作处理

d:表示删除行。

p:打印该行。

r:读取指定文件的内容。

w:写入指定文件。

a:在下面插入新行新内容。

 

#文件内容展示一下
[roc@roclinux ~]$ cat mysed.txt
Beijing 2003
Beijing 2004
Beijing 2005
Beijing 2006
Beijing 2007
Beijing 2008
Beijing 2007
 
#我们想展示匹配了2005的行和2007的行之间的内容
[roc@roclinux ~]$ sed -n ‘/2005/,/2007/p’ mysed.txt
Beijing 2005
Beijing 2006
Beijing 2007

 

 

 

 

awk '{匹配的内容}' 匹配的文件名称

1:awk '{print $1,$4}' test   输出每行的第一,第四项内容

 

2:awk '{printf "%-8s %-10s\n",$1,$4}' test               %-8s表示右对齐8个字符,不够的用空格补齐

                                                                                    %-10s表示右对齐10个字符,不够的用空格补齐

                                                                                    用来格式化输出printf "%-8s %-10s\n",

 

 

3:awk -F, '{print $1,$2}' test                        -F来控制输出格式,使用逗号分割输出每行的第一、二项内容

 

4:awk -va=1 '{print $1,$1+a}' test

 

 

5:awk -va=1 -vb=2  '{print $1+b,$1+a}' test

 

6,awk -f file.awk test               用awk脚本运行awk程序

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值