linux基础命令1

内容包含:文件管理、重定向和管道、用户组和权限管理、文本处理工具

文件管理

mkdir     创建目录

-p #创建子目录,若父目录不存在,则创建父目录

例: mkdir -p /app/dir1/dir2

rmdir     删除空目录

-p #删除空目录,若父目录为空则同时删除

 

ln           创建硬链接 (不能跨分区创建)

-s 创建软链接 (可以跨分区)

重点:源文件相对路径是相对于目标文件的路径(不是相对于当前工作目录的路径)

 

file          判断文件类型

-b 只显示结果不显示文件名

-f 批量判断文件列表中的文件类型

-F 用指定符号替代:(默认输出格式 文件名:文件类型)

-L 判断软连接指向的真实文件的类型

##额外知识点##    

df -i  #查看分区支持的节点编号数

watch -n 1 命令   1秒执行一次命令

目录里存的是文件名和节点号inode

readlink 显示软连接的原始文件路径

重定向和管道

标准输入0    标准输出1    标准错误 2

>   标准输出重定向

2>   标准错误重定向

&>  所有输出重定向 等同于 2>&1

 

tr    替换或删除字符

-t 字符对应替换

-d 删除字符

-s 去重(连续重复)

-c 取反 相当于非

 

cat > f1 单行重定向

cat > f1 <<EOF   多行重定向  EOF是结束语(可以是任意字符)

 

|     管道(默认传输标准输出)

|&   传输标准输出和标准错误

|tee 屏幕输出同时存入文件

 

##额外知识点##

set -C 文件存在禁止覆盖 (单独执行)

set +C 取消禁止

/dev/null  输出信息重定向到此文件 相当于垃圾箱

mail -s 主题 用户 <

邮件正文加命令或变量必须是多行重定向

tar -cvf – /home | tar -xvf –

seq -s + 1 10 | bc

seq 1 2 100

用户组和权限管理

用户的组:主组、附加组

/etc/passwd 用户及属性信息

/etc/group  组及属性信息

/etc/shadow 用户密码及相关属性

/etc/gshadow 组密码及相关属性

/etc/skel  #创建用户家目录模板

/etc/login.defs #创建用户相关配置

 

getent   查看文件内容(passwd、shadow、gpasswd、gshadow)

+用户名  #查看文件内指定用户信息

例: getent passwd root

 

chsh      -s  #更改用户的shell        例:chsh -s /sbin/nologin zhang

-l    列出所有的shell

 

id 不加用户名 #显示当前用户登陆后的信息(不显示登陆后更改的信息)

id 用户名  #从文件中读取用户的信息

 

newgrp 组名 #临时更换主组,不改文件

 

vipw      #单独执行,相当于vi /etc/passwd

vigr        #单独执行,相当于vi /etc/group

pwck     #检查passwd文件错误

grpck     #检查gshadow文件错误

 

useradd #添加用户(默认锁定不能登陆)

-c #添加描述信息

-g #指定主组

-d #指定家目录

-s #指定shell

-G #指定辅助组

-D 查看创建用户默认配置文件内容 等同于cat /etc/default/useradd

-s 指定shell

示例:useradd -r -m -d /app/zabbix -s /sbin/nologin zabbix

 

usermod -d 指定新家目录路径

-m 移动家目录

-s  更改shell

-L  #锁定用户

-U 取消用户锁定 !!(新建用户取消锁定只有centos5可以)

-G 添加辅助组(默认覆盖)  -aG #追加辅助组

-l  修改用户名

-g 修改主组

#删除附加组        usermod -G ” 用户名  或者 usermod -G 主组名 用户名

userdel   删除用户(只删除账号,不删除其他文件)

-r 删除用户及相关文件

passwd  更改用户密码(默认更改当前登陆用户,加用户名则更改指定用户)

groupadd #创建组

 

su          #切换用户(非登陆式切换,环境没变)

su –       #登陆式切换

su -root -c ‘命令’  切换为root执行命令,然后退出root

 

passwd -e    #用户密码即时失效(密码更改时间为0)

chage           #更改用户口令相关时间

chfn              添加用户的描述信息(部门、电话等)

finger            查看用户的描述信息

 

groupadd     创建组

-r 创建系统组

-g 指定组id号

groupdel       删除组

groupmod    更改组相关属性

-n 指定新名字

-g 指定新的gid

gpasswd        -a 用户名 组名  #把用户加入组(组管理员操作)

-d 用户名 组名  #把用户从组里移除

-A 用户名 组名  #把用户设置为组管理员

groupmems -l -g 组名           #查看组内成员

-a 用户 -g 组     #把用户添加到组

-d 用户 -g 组     #从组中删除用户

-p                       #把组内的成员清空

groups   #查看当前用户的组

 

文件权限  r w x (和文件系统有关)

r,w权限对root无效,x有效

acl 访问控制列表(对多个用户或组单独设置权限

 

小x:所有文件都可以加执行权限

大X:只对目录和有执行权限的文件加执行权限

chmod     who            opt                 文件名

u,g,o,a   +,-,=   r,w,x

例:chmod u=rw,g=r,o= 文件名

 

chown 更改文件所属组

例: chown bin.ftp f1  把f1所有者改为bin,所属组改为ftp

其他:chown –reference f1 f2  按照f1权限设置f2

chgrp 更改文件所属组

 

目录权限

x:可以进入目录,基础权限

r:列出目录文件列表(需要x)

w:可以在目录中建或删除文件(需要x)

 

umask 影响用户创建的文件或目录的权限

目录:777-umask

文件权限:666-umask=结果奇数位+1    或 666-(umask-1)

umask 266 设置umask为266

.bashrc 在文件中更改umask值

umask    -p输出可被调用

-S模式方式显示

文件中更改umask值:全局 /etc/bashrc 单用户 ~/.bashrc

 

suid  4(u s)  覆盖x权限  权限号4      #4777

只能作用在二进制程序,不能作用在脚本

用户执行s权限的程序将继承所有者的权限

sgid  2(g s)

二进制程序:用户执行s权限的程序将继承所属组的权限

作用在目录:目录下生成的新文件自动继承目录所属组

对于目录的suid和sgid,只能用 u-s,g-s 去掉

 

*sticky 1(o t)  #只作用在目录才有意义

作用在目录:不能删除别人的文件

 

chattr +i/-i 文件名/目录    #文件/目录将不可被更改、删除、防止误操作

+a/-a              #只可以追加内容

+A/-A           #不更新读时间

lsattr 文件/目录 显示特定属性

 

ACL 系统中有没有这个功能取决于文件系统

设置acl之后,g权限位置显示的是mask权限

setfacl    -m u:用户名:权限 文件名    #u用户 g组

group::权限            #更改文件所属组权限

mask::权限

-x 同上                  #删除权限

-X 批量文件 文件名     #批量删除权限

-b 文件名              #清空acl

-R

-M 权限文件 文件名    #文件中按照格式

-d #默认包含指定权限(新生成文件和旧)等同于d:

-k 目录名 #删除默认权限

getfacl 文件名  #查看文件权限

 

例子:备份恢复acl权限

getfacl -R html > html.acl

setfacl -R -b html

setfacl –restore html.acl

 

ACL权限生效顺序

所有者,自定义用户,所属组|自定义组,其他

{     权限不能超过mask      }

 

例:getfacl f1 | setfacl –set-file=- f2              #f2按照f1的acl权限设置

setfacl -R –set-file=文件名 f2         #从文件中恢复权限

setfacl –set u::r,u:lqd:rw,g::r,o::- f2    #对f2文件重新设置权限

 

mask 限定了自定义用户和组的最高权限

##额外知识点##

pwunconv    pwconv                     #密码存放转换

auth –passalgo=sha256 –update     #更改加密算法

echo 密码 | passwd –stdin wang   #设置用户密码

批量创建账号和修改密码

newusers 文件名 #,文件内容格式按照passwd

cat 文件名 | chpasswd  文件内容格式 用户名:密码

 

文本处理工具

cat -n 加行号

-b 加行号,空行不加  等价于 nl

-A 显示所有控制符

-s 压缩连续空行为一行

-E 显示结束符

-V win文本能看到^M

tac 反向显示行

rev 反向显示列

 

more 分页显示 到底退出 空格下翻 b上翻(管道不起作用)

less 分页显示 到底不退出

/文本 搜索文本

 

head 文件   #默认读取前十行

-n 3  或者 -3     #显示前3行

-c3 取前3个字节

 

tail    #默认读取后十行

-f 跟踪文件后10行 (常做观察日志文件使用)

-f 文件 &  在后台监控文件后10行

-f 文件 -n0 &  #只显示新增加的行并在后台运行

-F 跟踪文件后10行并监控文件名

tailf 等同于 tail -f #性能更好,文件不增长时不访问文件

 

cut 剪切内容-以列为单位,默认tab作为分隔符

-d 指定分隔符

-f 指定列

例:  cut -d: -f1-3,7    –output-delimiter=”分隔符” 文件

#以:作为分隔符取第1和3列       更改显示分隔符

例子:df | cut -c44-46  #取第44到46个字符

 

paste 将多个指定文件按行合并 默认分隔符为tab

-d’分隔符’  指定合并后的分隔符

-s 把单个文件合并为一行,并把多个文件追加合并

 

wc   统计  显示格式: 行 单词 字节

-l 行数

-w 单词数

-L 最长行的字符数

 

sort 排序 默认第一列

-n 按数字从小到大排序

-r 倒序

-u 去重(去掉重复内容的行)

例子:sort -nr -t: -k1 /etc/passwd

 

uniq       -u 只显示不重复的行

-c 显示每行重复出现的次数

-d 只显示重复的行

##额外知识点##

dd if=/dev/zero of=/boot/bigfile bs=1M count=500     #创建指定大小的文件

inputfile           outputfile    blocksize    大小

 

~tab键  查看所有用户

 

openssl rand -bash64 100 #生成100位随机数

(超过100)

lsof | grep deleted  #查看进程占用的已经删除的文件(哪些文件被删除 还没有释放空间)

批量创建文件

touch 参数有数量限制

echo f{1..500000}|xargs touch

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88615

(0)
oranixoranix
上一篇 2017-11-18
下一篇 2017-11-19

相关推荐

  • 马哥教育网络第21期-第九周课程练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过 字符串比较来实现; #!/bin/bash nologin=$( cut -d: -f7 /etc/passwd | grep &#03…

    Linux干货 2016-11-14
  • N26-第三周作业-邢岩

    马哥门徒-N26-邢岩   “精深练习×一万小时=世界级技能”。髓鞘质是不可逆的,就让我们包裹一层厚厚的髓鞘质吧!今天继续我的练习。   第一题,列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可  ~]# who | cut -d' ' -f1 | sort -u &nbs…

    Linux干货 2017-02-14
  • 网络管理命令

    网络管理

    Linux干货 2018-01-07
  • Shell脚本编程3

    Shell脚本编程3  一、杂项知识整理 1、select与case select是个无限循环,因此要记住用break命令退出循环,或用exit命令终止脚本。也可以按ctrl+c退出循环,自动生成数字的选择项,适合创建菜单。 select经常和case联合使用。与for循环类似,可以省略in LIST,此时使用位置参量$1、$2等传递参数。 cas…

    Linux干货 2016-08-19
  • Linux添加swap交换分区

    添加swap交换分区 SWAP即交换分区是一种类似于Windows系统虚拟内存的功能,将一部分硬盘空间虚拟成内存来使用,从而解决内存容量不足的情况,因为SWAP毕竟是用硬盘资源虚拟的,所以速度上比真实物理内存要慢很多,一般只有当真实物理内存耗尽时才会调用SWAP。 1、创建一个分区,看上篇文章,别着急w保存退出 修改分区的类型输入t: Comman…

    Linux干货 2016-09-07
  • 软链接和硬链接详解

    软连接和硬链接图解 硬链接 符号链接 软链接和硬链接详解 软链接和硬链接详解 Linux下的链接文件有点类似于Windows的快捷方式,但又不完全一样。链接文件有两种:一种是硬链接,另一种是符号链接(又称软链接)。 UNIX文件系统提供了一种将不同文件链接至同一个文件的机制,我们称这种机制为链接。它可以使得单个程序对同一文件使用不同的名字。这样的好处是文件系…

    Linux干货 2016-09-06