linux查找目录下的所有文件中是否含有某个字符串
grep '\<hello\>' file # 单词
grep -rn 'str' *
sed -i "s/aaa/bbb/g" $(grep aaa -rl .) # 替换当前目录中文件中aaa 为 bbb
-r 递归 -n 行号 -l 只打印出文件名
find . -name 'w*' -type d # 查找当前目录下所有包含w开始的文件夹
find . -maxdepth 1 -type d -name 'w*' # 查找当前目录下一级目录所有包含w开始的文件夹 # -exec rm {} \;
| xargs rm -f 使用xargs命令则只有一个进程
---
cat /usr/local/nginx/logs/access.log | grep -ioE "HTTP\/1\.[0|1]\"[[:blank:]][0-9]{3}"
i 不区分大小写,o精确输出想要内容,E政策,支持元字符, 空格; 协议状态码
IP
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.24.11
NETMASK=255.255.254.0
GATEWAY=192.168.24.1
DNS1=219.141.136.10DNS2=202.106.0.20
DNS3=114.114.114.114DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens33
UUID=00a38982-947b-494f-bab8-7af0d0394af4
DEVICE=ens33
ONBOOT=yes
搜索
find
-size 1数据块,512字节,0.5k
-amin(访问时间:分钟),-cmin(文件属性),-mmin(文件内容)
-a(and),-o(or),-exec/-ok(命令:ls -lh)\ ;
find ./ -size +163840 -a -size -204800 -exec ls -lh {} \ ; #80M~100M-type :f ,d,l
-inum inode
locate
yum install mlocate
[gid] setgid,
1、执行用户拥有执行权限
2、执行/usr/bin/locate命令时,组身份会升级为slocate组,而slocate组对/var/lib/mlocate/mlocate.db数据库拥有r权限,所以普通用户可以使用locate命令;
3、命令结束,用户组身份返回普通用户组
locate 文件名 在资料库中查找文件(updatedb同步更新,除 /tmp)
which / whereis
which 命令 所在目录及别名信息
whereis 命令 所在目录及帮助文档
grep -iv [指定字串] [文件]
help文档
man [命令或配置文件]
man passwd
man 5 passwdwhatis 命令 ,apropos 配置文件
whatis passwd
apropos passwd命令 --help,info 命令
help [Shell内置命令:umask,cd,if]
who / w 查看登录用户详细信息
uptime
网络命令
write <用户名>,Ctrl+d结束
wall <message>,广播信息
mail <用户名> ,查看发送邮件(mailx),h:list,d:del
ping -c 3 IP地址,测试网络连通性
ifconfig 查看网卡,IP地址
last 列出目前与过去登入系统的用户信息
lastlog,lastlog -u 1000(uid)traceroute,显示数据包到访问主机的节点
netstat 显示网络服务信息
netstat -rn 查看路由表mount (挂载)
firewall
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent(永久生效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone=public --query-port=80/tcp
删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent
vim
x 删除光标所在处字符
dG删除光标所在行到文件末尾内容
D删除光标所在处到行尾内容r取代光标所在处字符
:r [filename / !command,!date]
:w new_filename另存为指定文件
ZZ,:wqw:光标往后移动一个词。
0:移动光标到当前行首。(是数字0)
^:移动光标到当前行的第一个字母位置。
$:移动光标到行尾。使用关键词自动完成功能,你只需要输入开始几个字母(比如 iAmAL),然后按 <C-N>(按住 Ctrl,再按 N)或者 <C-P>。如果 VIM 没有给出你想要的词,继续按,直到你满意为止,VIM 会一直循环它找到的匹配的字符串
~/.vimrc
set nu # 设置行号
map ^P I#<ESC> # Ctrl+p,行首加入#,注释:Ctrl+v,Ctrl+p
map ^B 0x #取消#
ab mymail footstep6978@163.com a->bwhich ls
ls
\ls
rpm命令
rpm -ivh package
install,view,hash进度rpm -qi package
query,information,package:查询软件包详细信息rpm -ql package
list,package:查询包中文件安装位置rpm -qf file
查询系统文件属于哪个软件包rpm -qR package
requires,package:查询软件包的依赖性rpm -V package
verify:校验包及文件
验证内容信息:
S文件大小是否改变
M文件的类型或文件的权限是否改变
5文件MD5校验是否改变
D。。。
L文件路径是都改变
U文件的属主是否改变
G文件的属组是否改变
T文件的修改时间是否改变
文件类型:
c:config file
d:普通文档documentation
g:ghost file,鬼文件,该文件不应该被软件包包含
l:授权文件license file
r:描述文件readmerpm2cpio:将rpm包转化为cpio格式的命令
cpio是一个标准工具,用于创建软件档案文件和从档案文件中提取文件
rpm2cpio package | cpio -idv .文件绝对路径cpio 选项 < [文件|设备]
-i copy-in模式,还原
-d 还原时自动新建目录
-v 显示还原过程eg:
rpm2cpio /mnt/Packages/coreutils-8.22-21.el7.x86_64.rpm | cpio -ivd /usr/bin/ls
挂载mount
mount /dev/cdrom /mnt/cdrom
yum源:默认网络yum源:CentOS-Base.repo
配置光盘yum源:
1、禁用网络yum源:enabled=0
2、 CentOS-Media.repo:
# 源名称
[c7-media]
# file:// + /mnt/cdrom 光盘挂载地址
baseurl=file:///mnt/cdrom
enabled=1=============
# 重新挂载/home/,并使用noexec权限
mount -o remount,noexec /home# /etc/fstab 文件修复,重新挂载,加入权限
mount -o remount,rw /
date
ubuntu@ubuntu:~$ date -R #时区
ubuntu:tzselect
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
sudo hwclock --systohc //硬件CMOS
查看Linux版本
快捷键
Ctrl+A 光标移动到命令行开始
Ctrl+E 光标移动到命令行结尾
Ctrl+U 删除或剪切光标之前的命令
Ctrl+K 删除或剪切光标之后的命令
Ctrl+Y 粘贴剪切的内容
Ctrl+R 历史命令搜索
Ctrl+L 清屏
Ctrl+Z 暂停
Ctrl+C 终止
Ctrl+D wq
1970-01-01距今时间天数
date -d "1970-01-01 17987 days"
echo $(($(date --date="2019-04-01" +%s)/86400+1))
user
[root@localhost ~]# whereis useradd
useradd: /usr/sbin/useradd /usr/share/man/man8/useradd.8.gz
[root@localhost ~]# man 8 useradd
用户模板目录:/etc/skel
# 为用户设置密码 sh
echo "123456" | passwd --stdin test
chage -d 0 test
userdel -r user
权限
ACL权限:[u/g] [默认ACL权限:子文件继承父目录ACL权限] 【setfacl,getfcal】
给用户直接分配权限:
df -hT
dumpe2fs -h /dev/sda1
查询指定分区详细文件系统:-h 仅显示超级块中信息,不显示磁盘块组的信息;
查看分区ACL权限是否开启:Default mount options 选项
临时开启:mount -o remount,acl / #重新挂载 分区,并加入acl权限;
永久开启:/etc/fstab
文件特殊权限:
设置:setuid(chmod 4755 file:[s])
SUID (4)
执行的二进制程序设定SUID权限,命令执行者在执行该程序时获得该程序文件属性主的身份[执行过程中有效]
SGID(2)
SGID 针对文件
普通用户执行/usr/bin/locate命令时,组身份会升级为slocate组,而slocate组对/var/lib/mlocate/mlocate.db数据库拥有r权限,所以普通用户可以使用locate命令,命令结束,用户组身份返回普通用户组
SetGID 针对目录的作用:
1、普通用户必须对此目录拥有r和x权限,才能进入此目录
2、普通用户在此目录中的有效组会变成此目录的属组
3、普通用户对此目录拥有w权限时,新建的文件的默认属组是这个目录的属组Sticky Bit(1)
黏着位目前只针对目录有效
普通用户对该目录拥有w和x权限,可以进入此目录(拥有写入权限)
普通用户就算拥有w权限,也只能删除自己建立的文件,不能删除其他用户建立的(root除外)
文件系统属性chattr权限:
chattr +i file
lsattr [-a] file
系统命令-sudo权限:
sudo -l # 查看
/etc/sudoers
访问IP、网段、ALL(被管理主机地址)
磁盘管理
df:文件系统查看
-h 友好显示
-T 显示文件系统类型
du:统计目录或文件
-h 友好显示磁盘占用量
-s 统计总占用量,且不列出子目录和子文件的占用量df是从文件系统考虑的,不仅考虑文件占用的空间,还要统计命令或程序占用的空间;
du只计算文件或目录占用的空间fsck:文件系统修复
dumpe2fs:显示磁盘状态信息fdisk -l
查看挂载点信息及设备文件名
# 分区:m,帮助;w,保存退出;p,显示分区列表;t,改变分区的系统ID;
fdisk /dev/sdb# 格式化分区
mkfs -t ext4 /dev/sdb1
# 格式化swap
mkswap /dev/sdb6
# 加入swap分区
swapon /dev/sdb6
cached:把读出来的数据保存在内存中,当再次读取时,直接冲内存中读取,加速了数据的读取过程;
buffer:在写入数据时,先把分散的写入操作保存到内存中,当达到一定程度在集中写入磁盘,减少了磁盘碎片和硬盘的反复寻道,加速了数据的写入过程;
stat file: 列出文件的atime,ctime和mtime
cat /etc/filesystems 查看系统所支持的文件系统类型
yum install nload : 查看网卡流量
yum install sysstat : /etc/cron.d/sysstat /etc/sysconfig/sysstat sar 监控系统状态
free 查看内存使用状况
ps 查看系统进程
netstat 查看网络状况
查看网卡连接状态: mii-tool ens33, ethtool ens33
yum -y install bind-utils : nslookup 是常用来查询本机域名解析
yum install traceroute : traceroute [IP/域名] 路由跟踪
抓包工具:
tcpdump wireshark sniffer
登录后欢迎信息:/etc/motd
不管是本地登录,还是远程登录,都可以显示此欢迎信息