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

相关推荐

  • Linux基本知识之echo命令详解

    该博文以CentOS6.8_x86_64系统为基础,Xshell使用pts/X终端登录CentOS6.8系统,以root身份登录系统。 为什么学习echo命令?     echo是一种最常用的与广泛使用的内置于Linux的bash和C shell的命令,通常用在脚本语言和批处理文件中来在标准输出或者文件中显示一行文本或者字符串。…

    Linux干货 2016-07-29
  • 第十四周作业

    系统的INPUT和OUTPUT默认策略为DROP; [root@CentOS7 ~]# iptables -P INPUT DROP [root@CentOS7 ~]# iptables -P OUTPUT DROP 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服…

    Linux干货 2017-08-13
  • MySQL or MariaDB 简介

    DBMS:数据库管理系统 RDBMS:关系型数据库管理系统    总之:他们都是一个数据管理程序;大多都是CS架构,都有专门的通信协议进行数据交换 关系模型:               表(行或者列):二维关系 设计范式:       &…

    Linux干货 2017-01-12
  • SED命令

    sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转…

    Linux干货 2017-05-01
  • Linux Basics-重定向与管道:第一部分

    Linux Basics-重定向与管道:第一部分 概述 本教程将介绍 Linux 中重定向标准 IO 流的基本技术。学习: 什么是重定向与标准 IO 流:标准输入、标准输出和标准错误 各种流和管道的实际应用   前提条件 你应该了解 Linux 基本知识以及拥有一个正常工作的 Linux 系统,在本文说明的实例中,我采用是CentOS 7 内核版本…

    Linux干货 2016-10-29
  • Shell脚本自动部署(编译)LAMP平台

    Shell脚本自动部署(编译)LAMP平台 Shell脚本自动部署(编译)LAMP平台 为什么要用脚本进行部署? 脚本功能介绍 笔者环境 准备工作 声明 使用测试 脚本代码 Shell脚本自动部署(编译)LAMP平台 LAMP是当下非常流行的一套Web架构,我们可以在GNU/Linux下通过其他人打包的程序包来进行安装; 但是在生产环境中,很多时候都需要我们…

    Linux干货 2016-03-26