linux 从头开始その一 (常规操作)

面试被问到了linux的命令, 只了解一些很常用的, 所以打算全面学习下,

绝对路径: 已根名目录开头,  /user/xx

相对路径:  cd../xx

1. ls -al            列出所有文件的详细权限与属性

默认按字典序排列

-a 全部文件, 包括隐藏文件(开头为.的文件)

-l 详细信息, 包含文件的属性和权限

-t 将文件依建立时间之先后次序列出

-r-x------  1 root  root      301 Aug  6 02:10 env.txt

第一位 - 表示是文件, d 表示目录, l 表示连接文件

接下来的就不多说了

1 的代表连接数

301 是文件大小

2. chgrp chown chmod

① chgrp [-R]  修改文件的所属的用户组, -R递归修改,目录文件都修改

注意: 修改的属组必须在 /etc/group 中存在

chgrp user xx.cfg           把xx.cfg的属主改为users

②chown 【-R]  修改文件目录的属主属组 -R递归修改         它比chgrp强大

注意: 修改的用户的属主必须存在在/etc/passwd

chown  bin xx.cfg             修改文件的属主为bin

chown root:root xx.cfg      修改文件的属主和属组

chown :root                      仅修改文件的属组

③chmod  修改文件和路径的权限

1)   r:4 w:2 x:1 

      chmod 777 xx

2)   u-> user, g->group , o-> other, a -> all

      + 加入权限, -去掉权限, = 设置权限

      chmod u=rwx, go=rx    xxx           

      chmod a+w       xxx

      chmod a-w       xxx

关于文件和路径的权限:

文件:r : 可读取文件的内容      w: 可以编辑,新增或修改文件, 但是不能删除文件   x: 可执行权限

目录:r: 可以查看路径      w: 新建文件与目录, 编辑文件,进行改名,移动目录内文件   x: 能否进入工作目录(就是如果目录没有x权限,光有r的话, 只能看到路径有什么文件,最多看看文件名, 不能看文件的内容, 不能cd进去)

所以要读取文件的内容, 就必须拥有对目录的可执行权限

3.  .  ..  -  ~

. 当前目录

.. 上一级目录

- 上一个工作目录

~ 目前登陆用户的家目录

4. pwd   显示当前目录

-P 真正路径

cd /var/mail      mail是一个链接文件

pwd -P             真正路径,而非链接路径

5. mkdir, rmdir 

①mkdir  创建文件夹

-m 设置权限

-P递归创建

         mkdir test   新建个目录(文件夹)

         mkdir test/test    会报错

         mkdir -P test/test    递归创建

         mkdir -m 711 test

②rmdir   删除空路径(文件夹)

        -P  递归删除

6. cp, rm, mv

①cp  复制

 -i 若目标文件存在,覆盖时会先询问  

-P 复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间)

-r 递归复制   

-d 如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接

-a:相当于 -d、-p、-r 选项的集合                      

         cp -a  /etc/ /tmp 

②rm 删除

-f   忽略不存在的文件,

-i 删除之前先询问

-r 递归删除

\rm -r xxx          不加\  递归删除会每次都询问

     rm /xx/xxx   会报错

     rm -r /xx/xxx   可以

③  mv 移动文件,目录, 或重命名

-f  强制, 文件若存在, 不会询问, 直接覆盖

-i 若文件已经存在,会有提示

-u 已经存在, 且文件较新, 才会更新

       mv  xx  xxx

       mv b1 b2 b3        将b1 b2移到b3

7 cat  tac nl more less查看文件内容

①cat

-n   打印行号,空白也打印

-b  打印行号, 空白不打印

-A  显示全部, 各种各样的符号, 换行符啥的

        cat -n /etc/xx

②tac 与cat 类似, 不过是从后往前打印, 就是cat的逆序

③nl 添加行号打印

-b a 空行有行号

-b t  空白没行号(默认)

-n ln 行号在屏幕最左方显示

-n rn 在偏右方显示,不用0填充

-n rz 在偏右方显示, 默认六位,不足0填充, 如 000023

-w 数字, 指定行号占用符, 就是修改上面的默认六位为指定值

         nl -b a /etc/xx                      指定行号,空行也有行号

        nl -b a -n rz -w 3                  指定行号,空行也有行号, 行号3位, 不足0补充

④more 一页一页翻动

        more /etc/xx 

空格              翻下一页

Enter            下一行

/字符串         查找字符串

q                   离开

:f                   立刻显示文件名以及目前的行数

b                   返回上一次的操作,如空格 ,到了下一页, b返回上一页;

⑤ less  更强大

moer不能向前翻页, 但是less可以。

空格             向下翻一页

pagedown    向下翻页

pageup         向上翻页

Enter            下一行

g                   返回到首行

G                  跳到最后一行

/字符串         向下查找

?字符串        向上查找

n                  重复前一个搜索(与 / 或 ? 有关)

N                  反向重复前一个搜索(与 / 或 ? 有关)

q                   离开

8 数据截取   head, tail

①  head  -n  数字              返回前几行

         head /xx/xx             默认返回前十行

         head -n 20 /xx/xx     返回前20行

         head  -n -100 /xx/xx  不打印后面的100条数据,(如有130条数据,-100 只打印前30条数据)

② tail  -n  数字                返回后几行

         -f           持续刷新后面的所接收的文件中的内容

         tail -n 20 /xx/xx

         tail -n +100 /xx/xx     打印100条以后的数据, 即打印101条到最后

③ 显示 /etc/xx.conf       第11行到20行

        head -n 20 /etc/xx.conf  | tail -n 10

9 查看二进制文件 od

-t a 利用默认的字符串来输出

-t c  使用ASCII字符串输出

-t d   十进制输出

-t o   八进制输出

-t x    十六进制输出

-t f     浮点输出

       od -t c /xx/xx 

10 三个时间

① 修改时间, 内容修改时更新(mtime)

② 状态时间, 状态改变, 权限与属性修改时(ctime)

③ 读取时间 , 内容被读取时修改(atime)

data; ls -l /etc/xx ; ls -l --time=atime  /etc/xx ; ls -l --time=ctime /etc/xx

打印: 当前时间

            建立时间

            读取时间

            更新时间

11 touch 新建空的文件, 修改读取,修改, 新建时间

-a   定义读取时间

-c   修改文件时间, 若文件不存在, 不建立新文件

-d  可以加自定义日期

-m 可以修改mtime,

-t 可以加自定义时间[YYYYMMDDhhnm]

           touch -t 201911111111 xxx  

 

12 默认权限 umask

输入 umask    ——>  0022                    减掉权限,第一位时特殊权限,属组和其他用户减去w权限

输入 umask  ——>    u=rwx,g=rx,o=rx

对于 新建文件的权限为:
                                     -rw-rw-rw    减掉umask  -rw-r--r--

对于 目录的权限为:

                             drwxrwxrwx     减掉 umask drwx-r-x-r-x

对于特殊权限:
                        属主属组用s替代x的位置, s权限包括x的权限, 若s在属主则是SUID, SUID=4; 在属组则是SGID=2

                 其他用户是用t代替的位置,SBIT=1

                 如-rwsr-x-r-x    则权限表示为4755,    正常是755, 因为s在属主, 所以前面加了个4

                 -rwsr-sr-x         则表示7755

                -rwxr-x-r-t        1755

                -rwSrwSrwT        表示7666           如果大写则表示,没有x权限, 所以是6

                

13 执行文件(命令的文件位置)的查找which

-a        找到的命令均列出, 不止第一个被找到的命令

which -a ifconfig

 

14 文件的查找 whereis, locate, find

whereis 和 locate 比find快

①whereis       只在几个特定文件下找, 所以快

          -l 列出whereis 查找的文件

          -b 只找二进制文件

          -m 只找说明文件manual路径下找

          -s 只找source 文件

          -u 不在b m s  中找

②locate         在已经建立的数据库中查找,  /user/lib/mlocate里面的数据,不直接在硬盘找。数据库每天自动更新一次,但是如果在自动更新前, 新建的文件,locate是没法找到的, 要手动更新。 执行updatedb,可能会报错(yum install mlocate) 就可以了。

-i        忽略大小写

-c       不输出文件名, 仅计算文件数量

-l        输出几行

-S      数据库信息

-r       加正则

locate -l 5 passwd

③find        find强大但是慢,它扫描全部用盘,找到文件。

1)可以选择mtime,atime, ctime。以mtime为例

-mtime n

-mtime +n         他们的区别如下

-mtime -n

-newer 文件名     比文件新的就列出

<---+4 --|    4   |--------- -4 -------------->

_|_____|_____|_____|_____|_____|_____|____

            5         4         3         2         1       现在

find / -mtime 0               找到24小时内的修改

find /etc -newer /etc/passwd       列出比etc 下比/etc/passwd新的文件

2)-uid n

     -gid n 

     -user name 

     -group name

     -nouser             拥有者不在  /etc/passwd

     -nogroup           属组不在    /etc/group

       find /home -user xx

       find / -nouser

3) -name

    -size    +大于, -小于, c 1B   k 1K    -size +50k               大于50k的文件

    -type TYPE  + 正规文件     设备文件 b,c    目录d, l链接文件1, s :socket, p: FIFO

    -perm mode            权限刚好等于4755, 什么之类的

    -perm -mode            必须包含(大于)指定权限

   -perm /mode             包含任一mode权限

find /-name passwd

find -perm /7000

4)额外操作

-exec command 

-print

find /user/bin /user/sbin -perm /7000 -exec ls -l {} \;

{} 代表找到的内容

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值