马哥博客做业第二周

Cnode

cp 复制命令linux

cp -p 会保留源文件的全部者,时间戳正则表达式

cp -a 保留文件全部属性,用于备份shell

root下的cp 命令是别名,cp -i 在覆盖前会提示是否覆盖vim

cp命令若是上次执行选项为--backup=numbered ,下次执行cp -b会执行上次执行过的--backup=numbered选项windows

[root@centos8 network-scripts]# stat ifcfg-ens160 
  File: ifcfg-ens160
  Size: 312           Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d    Inode: 69938036    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:net_conf_t:s0
Access: 2020-03-29 15:36:14.068397951 +0800
Modify: 2020-03-16 19:00:30.231503208 +0800
Change: 2020-03-16 19:00:30.231503208 +0800
 Birth: -
[root@centos8 network-scripts]# stat /data/ifcfg-ens160 
  File: /data/ifcfg-ens160
  Size: 312           Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 131         Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_runtime_t:s0
Access: 2020-03-29 15:36:14.068397951 +0800
Modify: 2020-03-16 19:00:30.231503208 +0800
Change: 2020-03-29 17:49:49.010994553 +0800
 Birth: -
[root@centos8 network-scripts]# cp -a ifcfg-ens160 /data/ifcfg-ens161
[root@centos8 network-scripts]# stat /data/ifcfg-ens161
  File: /data/ifcfg-ens161
  Size: 312           Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 132         Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:net_conf_t:s0
Access: 2020-03-29 15:36:14.068397951 +0800
Modify: 2020-03-16 19:00:30.231503208 +0800
Change: 2020-03-29 17:51:51.304570093 +0800
 Birth: -
[root@centos8 data]# cp --backup=numbered /etc/sysconfig/network-scripts/ifcfg-ens160 /data/ifcfg-ens160
cp: overwrite '/data/ifcfg-ens160'? y
[root@centos8 data]# ls
2  ifcfg-ens160  ifcfg-ens160.~1~  ifcfg-ens161
[root@centos8 data]# cp -b /etc/sysconfig/network-scripts/ifcfg-ens160 /data/ifcfg-ens160
cp: overwrite '/data/ifcfg-ens160'? y
[root@centos8 data]# ls
2  ifcfg-ens160  ifcfg-ens160.~1~  ifcfg-ens160.~2~  ifcfg-ens161

chown 更改文件全部者和所属组centos

[root@centos8 data]# chown rzx ifcfg-ens160
[root@centos8 data]# ll
total 20
-rw-r--r--. 1 root root 312 Mar 29 18:01 2
-rw-r--r--. 1 rzx  root 312 Mar 29 18:04 ifcfg-ens160
[root@centos8 data]# chown rzx.bin ifcfg-ens160
[root@centos8 data]# ll
total 20
-rw-r--r--. 1 root root 312 Mar 29 18:01 2
-rw-r--r--. 1 rzx  bin  312 Mar 29 18:04 ifcfg-ens160

chgrp 更改文件所属组安全

[root@centos8 data]# chgrp root ifcfg-ens160
[root@centos8 data]# ll
total 20
-rw-r--r--. 1 root root 312 Mar 29 18:01 2
-rw-r--r--. 1 rzx  root 312 Mar 29 18:04 ifcfg-ens160

chmod 更改文件权限bash

[root@centos8 data]# chmod a=rwx ifcfg-ens160
[root@centos8 data]# ll
total 20
-rw-r--r--. 1 root root 312 Mar 29 18:01 2
-rwxrwxrwx. 1 rzx  root 312 Mar 29 18:04 ifcfg-ens160
-rw-r--r--. 1 root root 312 Mar 16 19:00 ifcfg-ens160.~1~
-rw-r--r--. 1 root root 312 Mar 29 18:04 ifcfg-ens160.~2~
-rw-r--r--. 1 root root 312 Mar 16 19:00 ifcfg-ens161
[root@centos8 data]# chmod 642 ifcfg-ens160
[root@centos8 data]# ll
total 20
-rw-r--r--. 1 root root 312 Mar 29 18:01 2
-rw-r---w-. 1 rzx  root 312 Mar 29 18:04 ifcfg-ens160
-rw-r--r--. 1 root root 312 Mar 16 19:00 ifcfg-ens160.~1~
-rw-r--r--. 1 root root 312 Mar 29 18:04 ifcfg-ens160.~2~
-rw-r--r--. 1 root root 312 Mar 16 19:00 ifcfg-ens161

suid,u+s,4***权限,在运行该文件时,会临时获取该文件全部者的权限来执行,app

sgid,g+s,2***权限,在具备sgid权限的目录中建立文件时,建立的文件所属组会从改目录继承

sticky,g+t,1***权限,在具备sticky权限的目录中建立的文件,只有root用户和文件全部者才能删除该文件,防止其余用户恶意删除本身的文件

chattr +i +a 为文件增长特殊属性,防止root用户误操做,+i可让文件没法删除,更名,修改,+a可让文件只能追加内容,没法删除更名。

chpasswd 批量修改用户口令

chage 修改密码策略

-d LAST_DAY  上次更改密码的时间

-m --mindays MIN_DAYS 更改密码后没法马上修改密码的期限

-M --maxdays MAX_DAYS 密码有效期

-W --warndays WARN_DAYS 密码到期前几天提醒

-I --inactive INACTIVE #密码过时后的宽限期

-E --expiredate EXPIRE_DATE #用户的有效期

-l 显示密码策略

chsh 临时修改shell类型

chfn 修改我的信息

D

dd if=/dev/zero of=/data/bigfile bs=1M count=700

建立一个700M的大文件

[root@centos8 data]# dd if=/dev/zero of=/data/bigfile bs=1M count=700
700+0 records in
700+0 records out
734003200 bytes (734 MB, 700 MiB) copied, 3.75938 s, 195 MB/s
[root@centos8 data]# ll
total 716820
-rw-r--r--. 1 root root       312 Mar 29 18:01 2
-rw-r--r--. 1 root root 734003200 Mar 29 18:14 bigfile

G

getent passwd | shadow |group| gshadow name 

查看/etc/下的passwd、shadow、group、gshadow文件,命令后面能够加用户名或者组名来只查看改用户或组,至关于 cat /etc/passwd  | shadow |group| gshadow

groupadd  建立组  -g能够指定gid,-r能够建立系统组,linux6及之前为1-499,linux7之后为1-999

[root@centos8 data]# groupadd -g 10010 ren
[root@centos8 data]# getent group ren
ren:x:10010:
[root@centos8 data]# groupadd -g 587 -r zi
[root@centos8 data]# getent group zi
zi:x:587:

groupmod 修改组属性 -n 修改组名字   -g 修改组的GID

groupdel 删除组

getfacl 查看acl权限

gpasswd 修改组密码

groups 查看用户属于哪一个组

[root@centos8 data]# groups rzx
rzx : rzx ren

groupmems 管理附加组的成员关系 

-g 更改成指定组 (只有root能使用)

-a 指定用户加入组

-d 从组中删除用户

-p 从组中清除全部成员

-l list #显示组成员列表

[root@centos8 data]# groups rzx
rzx : rzx ren
[root@centos8 data]# groupmems -d rzx -g ren
[root@centos8 data]# groups rzx
rzx : rzx

[root@centos8 data]# groupmems -g ren -l
rzx  root 
[root@centos8 data]# groupmems -g ren -p
[root@centos8 data]# groupmems -g ren -l
[root@centos8 data]# 

L

lsof    lsof |grep delete 查看目前正在使用的文件
ln 设置连接,ln * * 建立硬连接,ln -s * * 建立软链接,硬连接不支持跨分区和文件夹,至关于源文件的另外一个名字,删除源文件后硬连接不会受影响,文件还在里面;软链接支持跨分区和文件夹,删除软链接文件自己不会删除源文件,删除源文件会致使软链接没法使用

lsattr 显示文件的特殊属性

M

mkdir -p ,建立目录时,若是目标父目录不存在则建立出来父目录再建立目标目录

[root@centos8 data]# ll
total 716820
-rw-r--r--. 1 root root       312 Mar 29 18:01 2
-rw-r--r--. 1 root root 734003200 Mar 29 18:14 bigfile
-rw-r---w-. 1 rzx  root       312 Mar 29 18:04 ifcfg-ens160
-rw-r--r--. 1 root root       312 Mar 16 19:00 ifcfg-ens160.~1~
-rw-r--r--. 1 root root       312 Mar 29 18:04 ifcfg-ens160.~2~
-rw-r--r--. 1 root root       312 Mar 16 19:00 ifcfg-ens161
You have mail in /var/spool/mail/root
[root@centos8 data]# mkdir asd/asd/
mkdir: cannot create directory ‘asd/asd/’: No such file or directory
[root@centos8 data]# mkdir -p asd/asd/
[root@centos8 data]# ll
total 716820
-rw-r--r--. 1 root root       312 Mar 29 18:01 2
drwxr-xr-x. 3 root root        17 Mar 29 18:39 asd
-rw-r--r--. 1 root root 734003200 Mar 29 18:14 bigfile
-rw-r---w-. 1 rzx  root       312 Mar 29 18:04 ifcfg-ens160
-rw-r--r--. 1 root root       312 Mar 16 19:00 ifcfg-ens160.~1~
-rw-r--r--. 1 root root       312 Mar 29 18:04 ifcfg-ens160.~2~
-rw-r--r--. 1 root root       312 Mar 16 19:00 ifcfg-ens161

mail 发送邮件

[root@centos8 data]# mail -s hahaha root <<!
> aaaaaaaaaa
> !
[root@centos8 data]# mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 6 messages 6 new
>N  1 Mail Delivery System  Wed Mar 25 14:13  83/2758  "Undelivered Mail Returned to Se"
 N  2 rzx                   Thu Mar 26 21:40  19/672   "help"
 N  3 rzx                   Thu Mar 26 21:48  19/634   "help"
 N  4 rzx                   Thu Mar 26 21:53  34/1020  "help"
 N  5 rzx                   Thu Mar 26 21:54  34/1020  "help"
 N  6 root                  Sun Mar 29 18:38  18/581   "hahaha"
& 6
Message  6:
From root@centos8.1.rzx.org  Sun Mar 29 18:38:21 2020
Return-Path: <root@centos8.1.rzx.org>
X-Original-To: root
Delivered-To: root@centos8.1.rzx.org
Date: Sun, 29 Mar 2020 18:38:21 +0800
To: root@centos8.1.rzx.org
Subject: hahaha
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root <root@centos8.1.rzx.org>
Status: R

aaaaaaaaaa

N

newgrp 临时切换主组

O

openssl rand -base649 或者12     生成随机字符

P

pstree 查看用户使用的进程并以树状排列出来

[root@centos8 data]# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─agetty
        ├─alsactl
        ├─atd
        ├─auditd─┬─sedispatch
        │        └─2*[{auditd}]
        ├─automount───4*[{automount}]
        ├─avahi-daemon───avahi-daemon
        ├─bluetoothd
        ├─chronyd
        ├─crond
        ├─cupsd
        ├─dbus-daemon───{dbus-daemon}
        ├─dnsmasq───dnsmasq
        ├─firewalld───{firewalld}
        ├─gssproxy───5*[{gssproxy}]
        ├─ksmtuned───sleep
        ├─libvirtd───16*[{libvirtd}]
        ├─lsmd
        ├─master─┬─cleanup
        │        ├─local
        │        ├─pickup
        │        ├─qmgr
        │        └─trivial-rewrite
        ├─mcelog
        ├─packagekitd───3*[{packagekitd}]
        ├─polkitd───5*[{polkitd}]
        ├─rngd───{rngd}
        ├─rpc.statd
        ├─rpcbind
        ├─rsyslogd───2*[{rsyslogd}]
        ├─smartd
        ├─sshd───sshd───sshd───bash───pstree
        ├─sssd─┬─sssd_be
        │      └─sssd_nss
        ├─systemd─┬─(sd-pam)
        │         ├─dbus-daemon───{dbus-daemon}
        │         └─pulseaudio───2*[{pulseaudio}]
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-machine
        ├─systemd-udevd
        ├─tuned───3*[{tuned}]
        └─vmtoolsd───{vmtoolsd}

R

rename 批量修改文件名

rev   echo “**” |rev 将双引号内字符按倒序排列

rmdire 只能删除空文件夹

S

shred 在数据安全需求较高的场景下安全删除文件,使文件没法恢复

su - -c cmd 切换用户执行命令后退回当前用户

stat 查看文件的详细属性

[root@centos8 data]# stat ifcfg-ens160 
  File: ifcfg-ens160
  Size: 312           Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 131         Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_runtime_t:s0
Access: 2020-03-29 18:47:13.698008002 +0800
Modify: 2020-03-29 18:47:13.698008002 +0800
Change: 2020-03-29 18:47:13.698008002 +0800
 Birth: -

setfacl 设置ACL权限

[root@centos8 data]# setfacl -m u:rzx:r ifcfg-ens160 
[root@centos8 data]# getfacl ifcfg-ens160 
# file: ifcfg-ens160
# owner: root
# group: root
user::rw-
user:rzx:r--
group::r--
mask::r--
other::r--

acl只针对指定的用户和组,没法针对other进行限制,在文件具有ACL时,chmod修改权限时 时是设置acl中的mask的参数

T

tree 查看目录结构

tail -f *  查看文件倒数10行的内容而且不退出

tee 

echo “***” | tee /*  ***重定向到*中并显示执行结果,若是名字相同会覆盖内容

echo “***” | tee -a /*  ***重定向到*中并显示执行结果,若是名字相同会追加内容

tar 压缩、解压缩工具

U

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

[root@centos8 data]# useradd -d /data/zi -u 3306 -g zi -s /bin/nologin zi
[root@centos8 data]# getent passwd zi
zi:x:3306:587::/data/zi:/bin/nologin

/bin/nologin  /bin/false 用户没法登陆的shell类型 nologin会提示没法登陆,false不会提示但也没法登陆

usermod 修改用户属性

userdel 删除用户

umask 掩码,建立新文件或目录时减去umask的值就是文件或目录的默认权限,目录的默认权限为777-umask,文件的默认权限为666-umask,文件默认不容许带执行权限,因此计算得出的值为奇数则须要+1来生成权限

(umask 666;touch /data/2.aaa)只对括号内新建立获得文件生效

V

vi 文本编辑工具

vim 文本编辑工具,vi的强化版

W

能够查看每一个终端上正在运行什么程序

 

 

通常状况下,相对路径指定相对于当前工做目录,特殊场景下,是相对于某目录的位置

 

 

ls -R  列出当前全部文件夹下全部的文件,   遍历

ls -ld * 列出*的属性

ll --time=atime * 查看*文件的查看时间

ll --time=ctime * 查看*文件的属性更改的时间

Inode 每一个文件的惟一标识,节点编号,df -i 能够查看各个磁盘分区inode的使用状况,inode所有使用完后将没法建立新文件,不管硬盘空间还有多大

ll ~- 显示上次目录

 

*没法匹配.开头的隐藏文件

 

l. 只显示隐藏文件别名   ls -d .*

 

ls -d */ 只显示当前目录下的子目录

 

echo $$  能够查看当前终端使用的shellpid

/dev/urandom 随机字符 head -c+数字   能够取出前*位的字符

 

/etc/null 垃圾箱

 

>=1> 将输出结果重定向,会覆盖源文件,>>向文件中追加内容

 

2>   将报错、警报、提示信息重定向,2>>向文件中追加内容

 

cat /dev/null > *  清空*文件

 

echo -n > *  清空*文件

 

> * 清空*文件

 

&> 把全部输出重定向,&>>向文件中追加内容

 

(命令;命令) > * 将多个命令结果重定向

 

{命令;命令;} > * 将多个命令结果重定向,每一个命令结尾都得加;

 

<输入重定向

 

 

cat > /*  <<EOF   多行重定向,在输入完后须要在结尾输入EOF

 

 

PS2   影响多行重定向提示符的变量,也叫作就地文本

 

tr -dc  abc 除了abc其余全删除,回车符也会删除,输入完须要ctrl+d提交

 

 

管道符只能传标准输出,没法传标准错误

 echo {A..Z} | tr ' ' '\n' 输出A-Z而且换行 

 

dos2unix unix2dos windows文本文件和linux文本文件格式互相转换

 vim   

  1 set nu 显示行号
  2 set ai  自动缩进,换行时与上一行对齐
  3 set paste 复制保留格式
  4 set cul  显示所在行,会有一条横线

i insert, 在光标所在处输入
I 在当前光标所在行的行首输入
a append, 在光标所在处后面输入
A 在当前光标所在行的行尾输入
o 在当前光标所在行的下方打开一个新行
O 在当前光标所在行的上方打开一个新行
插入模式 --- ESC-----> 命令模式
命令模式 ---- : ----> 扩展命令模式

命令模式下

   ZZ 保存退出
   ZQ 不保存退出

扩展命令模式下

w 写(存)磁盘文件
wq 写入并退出
x 写入并退出
X 加密
q 退出
q! 不存盘退出,即便更改都将丢失
r filename 读文件内容到当前文件中
w filename 将当前文件内容写入另外一个文件
!command 执行命令
r!command 读入命令的输出

地址定界

:start_pos,end_pos cmd

# 具体第#行,例如2表示第2行

#,# 从左侧#表示起始行,到右侧#表示结尾行

#,+# 从左侧#表示的起始行,加上右侧#表示的行数,范例:2,+3 表示2到5行

. 当前行

$ 最后一行

.,$-1 当前行到倒数第二行

% 全文, 至关于1,$

/pattern/ 从当前行向下查找,直到匹配pattern的第一行,:正则表达式

/pat1/,/pat2/ 从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束

#,/pat/ 从指定行开始,一直找到第一个匹配patttern的行结束

/pat/,$ 向下找到第一个匹配patttern的行到整个文件的结尾的全部行

地址定界后跟一个编辑命令

删除

复制

w file: 将范围内的行另存至指定文件中

r file:在指定位置插入指定文件中的全部内容

相关文章
相关标签/搜索