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
w 能够查看每一个终端上正在运行什么程序
通常状况下,相对路径指定相对于当前工做目录,特殊场景下,是相对于某目录的位置
ls -R 列出当前全部文件夹下全部的文件, 遍历
ls -ld * 列出*的属性
ll --time=atime * 查看*文件的查看时间
ll --time=ctime * 查看*文件的属性更改的时间
Inode 每一个文件的惟一标识,节点编号,df -i 能够查看各个磁盘分区inode的使用状况,inode所有使用完后将没法建立新文件,不管硬盘空间还有多大
ll ~- 显示上次目录
*没法匹配.开头的隐藏文件
l. 只显示隐藏文件别名 ls -d .*
ls -d */ 只显示当前目录下的子目录
echo $$ 能够查看当前终端使用的shell的pid
/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的行到整个文件的结尾的全部行
地址定界后跟一个编辑命令
d 删除
y 复制
w file: 将范围内的行另存至指定文件中
r file:在指定位置插入指定文件中的全部内容