1、批量替换某个目录下所有文件中的某个字符串
例如将www.xuejiwnei.me替换成www.xuejinwie.com
sed -i "s/www.xuejinwei.me/www.xuejinwei.com/g" `grep www.xuejinwei.me -rl .`
2、CentOS安装过程中,可以使用Ctrl+Alt+F2可以切换到字符界面;Ctrl+Alt+F3可以切换到查看安装信息的界面。
3、查看分区信息
cat /proc/partitions
4、查看分区信息
cat /proc/meminfo
5、查看交换分区信息
cat /proc/swaps
6、Linux虚拟终端翻页:Shift+Pgup
7、关闭图形界面
init 3 # 启动字符界面
开启图形界面
init 5 # 启动图形界面
startx # 不会改变系统运行级别
8、grep显示匹配内容前后
grep -C 5 # 显示匹配字符所在行的前后5行
grep -B 5 # 显示匹配字符所在行的前5行
grep -A 5 # 显示匹配字符所在行的后5行
8、终端 --> terminal
物理终端: /dev/console 控制台
虚拟终端:tty Ctrl+Alt+F[1-6] /dev/tty#
伪终端:SSH连接 /dev/pts/N
图形终端: /dev/tty7
串行终端: /dev/ttyS#
9、查看系统支持的shell
cat /etc/shells
查看当前系统shell
echo $SEHLL
10、命令提示符:promapt
[ localhost@root ~]#
PS1=[ \h@\u \W]\$
含义:
\h 主机名
\u 用户名
\w 当前工作目录的基名
\W 当前工作目录
\t 显示24小时时间格式
\T 显示12小时时间格式
\! 命令历史数
\# 开机后命令历史数
\$ 当前用户属性,$表示普通用户,#表示root用户
PS1="\[\e[1;31m\][\[\e[0m\] \[\e[1;33m\]\u@\h\[\e[0m\] \[\e[1;36m\]\w\[\e[0m\]\[\e[1;31m\] ]\[\e[0m\]\[\e[1;32m\]\\$\[\e[0m\]"
11、取目录的基名
basename /usr/local/nginx
取上一级的所有路径
dirname /usr/local/nginx
12、shell命令
内部命令
内部命令比外部命令优先级高,优先使用。
查看命令类型:type CMD
禁用内部命令:enable -n CMD
启用内部命令:enable CMD
查看被禁用的命令:enable -n
查看所有内部命令:help # 被禁用的内部命令前面有 * 号显示
外部命令
查看外部命令路径:
which {-a|--skip-alias} CMD # 查找命令路径 {显示全部命令路径|忽略别名信息}
whereis
hash缓存表:缓存外部命令,内部命令不会在hash表中缓存
hash # 查看命令缓存
hash -r # 全部删除命令缓存
hash -d CMD # 从缓存表中清除CMD的记录
hash -t CMD # 打印缓存表中CMD的路径
hash -p /path/to/file CMD_ALISE # 给缓存表中的CMD定义别名
命令别名
alias # 查看系统定义的所有别名
alias CMD='CMD_ALISE' # 定义别名
unalias CMD # 取消定义的别名
unalias -a # 取消所有别名
\grep root /etc/passwd # 使用原始命令,不使用别名定义
# 或者全路径使用命令/usr/bin/grep root /etc/passwd
# 或者使用单引号 'grep' root /etc/passwd
13、帮助信息
内部命令
help COM
man bash
外部命令
man CMD
info CMD
按关键字查找相关命令:man -k KEYWORD
查找帮助文档的存放路径:man -f COM
其他帮助文档:
/usr/share/doc目录下的文档
14、文件传输
rz # 上传
sz # 下载
15、命令历史相关变量
......
16、vmware中识别新磁盘
echo '- - -' > /sys/class/scsi_host/host2/scan
17、在Linx中,有些文件系统的中,文件名称不区分大小写,例如vfat文件系统。
18、文件有两类数据:元数据(metadata)、数据。
文件名最长255个字节,包括路径在内,文件名称最长为4095个字节。
19、管道文件
prw-------. 1 root root 0 Jul 6 15:23 dmeventd-client
prw-------. 1 root root 0 Jul 6 15:23 dmeventd-server
20、终端文件名称颜色显示配置文件
/etc/DIR_COLORS
21、创建含有特殊字符的文件或目录时,文件路径写全|或者加上转义符号'\'
rm -rf ./abc # ./表示当前文件
22、文件通配符
* # 零个或多个字符
? # 任意单个字符
~+ # 当前工作目录
~- # 上一个工作目录
[0-9] # 任意单个数字
[a-z] # 任意单个字母 注意:在Linux中,字母排序是按aAbBcCdDeEfFgG....的顺序
[A-Z]
[^CHAR1-CHAR2|CHAR1
23、预定义的字符集
[:alnum:] 代表英文大小写字符及数字,亦即 0-9, A-Z, a-z
[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
[:blank:] 代表空白键与 [Tab] 按键两者
[:cntrl:] 代表键盘上面的控制按键,亦即包括 CR, LF, Tab, Del.. 等等
[:digit:] 代表数字而已,亦即 0-9
[:graph:] 除了空白字符 (空白键与 [Tab] 按键) 外的其他所有按键
[:lower:] 代表小写字符,亦即 a-z
[:print:] 代表任何可以被打印出来的字符
[:punct:] 代表标点符号 (punctuation symbol),亦即:" ' ? ! ; : # $...
[:upper:] 代表大写字符,亦即 A-Z
[:space:] 任何会产生空白的字符,包括空白键, [Tab], CR 等等
[:xdigit:] 代表 16 进位的数字类型,因此包括: 0-9, A-F, a-f 的数字与字符
22、同时创建多文件
touch file{1..9}
23、创建一个空文件 (重定向)
> filename
注意:这种方式会覆盖掉文件
>> filename
24、剔出用户
pkill -kill -t pts/2
25、CentOS 7 添加默认路由
ip route add default via 172.18.0.1 dev ens33
26、索引节点 inode
inode:存储文件的元信息,包括创建者、时间戳、文件大小等属性。
inode元信息:
* 文件的字节数
* 文件拥有者的User ID
* 文件的Group ID
* 文件的读、写、执行权限
* 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
* 链接数,即有多少文件名指向这个inode
* 文件数据block的位置
每个数据块大小为4K。
27、CentOS 7和CentOS6 设置默认启动字符界面
CentOS7:
#!/bin/bash
#
case $1 in
"off")
echo -e "\033[32m graphic interface off.\033[0m"
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
reboot
;;
"on")
echo -e "\033[32m graphic interface on.\033[0m"
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
reboot
;;
"*")
echo -e "\033[31m Parameter error!\033[0m"
;;
esac
CentOS6:
修改inittab文件
id:3|5:initdefault:
28、yum源配置,如果有yum的名称相同,则不会识别yum源。
29、扫描局域网IP
nmap -sP -PI -PT 172.18.0.0/16 >> /ip0.log
cat /ip0.log | grep -v "MAC" | grep -v "Host" | cut -d' ' -f5 | head -n 184 | tail -182
30、screen
开启screen会话后,screen进程和当前bash进程剥离,成为一个单独的进程。Ctrl+A D 剥离当前screen会话,screen之下的bash进程中运行的进程会自动进入后台运行。
31、分区类型
MBR
GPT
32、Linux 分区规划
/dev/sda1 mount /boot
/dev/sda2 mount /
/dev/sda3 mount /data
33、Linux安装过程中
Atl + F1-6可以切换查看不同的信息
34、修改图形界面的Linux开机自动登录
/etc/gdm/custom.conf
[daemon]
AutomaticLoginEnable=true
AutomaticLogin=root
35、/etc/motd
设置登录欢迎信息
motd : message of the tody
36、命令调用优先级:别名、内部命令、hash表、外部命令 内部命令的历史记录不会hash到缓存中。
37、Linux 配置DNS
1、/etc/sysconfig/network-scripts/ifcfg-ens33
PEERDNS="yes" # 是否在BOOTPROTO为dhcp时接受服务器指定的DNS地址
DNS1=
DNS2=
2、在/etc/resolv.conf配置文件中配置的DNS临时生效。
38、关于su命令
su USERNAME # 半切换,bash环境变量还是前一个用户的配置,不读取USERNAME的环境配置文件
su - USERNAME # 完全切换,相当于重新登录,读取USERNAME的环境配置文件
39、CentOS 7 进入单用户模式修改root密码
开机界面 e
ro ,修改为 init=/sysroot/bin/sh
chroot /sysroot
passwd root
touch / .autorelabel
exit
reboot
40、CPU频率|超频
频率:CPU一秒内发生的脉冲数。单位Hz
41、服务器/家用,CPU型号|类型
42、数据单位
b bit 比特
B Byte 字节
KB
MB
GB
TB
PB
EB
ZB
YB
1KB=1024Byte
44、时区问题
1、时区
1863年首次使用时区的概念。理论时区:子午线东西各延伸7.5度,即每15度一个时区。
中国面积广大,东西横跨经度64°,分布在从东五区到东九区的五个时区内。为了便于东西间的联系,现在全国都采用东八区的标准时间,
也就是“北京时间”,作为全国统一的时刻。
2、UTC 世界协调时间(Universal Time Coordinated,UTC)
GMT 格林威治标准时间(Greenwich Mean Time GMT) 指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线
经度为零的地点在英国『格林威治』
CST 国家标准时间(Central Standard Time CST)
# UTC和GMT时间一样,都与英国伦敦的本地时间相同。
3、修改时区
cp /etc/share/zoneinfo/Asia/Shanghai /etc/localtime
45、冯诺依曼体系简介
计算机组成架构:运算器、控制器、存储器、输出设备、输入设备
46、单引号和双引号的引用性质
反向单引号。变量引用
单引号强引用。不识别变量
双引号弱引用。变量识别
47、whatis
CentOS6:
查找本地数据库,进而查找数据信息的。 makewhatis 可以手动生成数据库。
数据库位置在/var/cache/man/whatis
CentOS7:
mandb 命令生成数据库
数据库位置在/var/cache/man
48、man的配置文件/etc/man.config(CentOS6) | /man_db.conf(CentOS7)
man -M /path/to/man.file
man命令
选项:
-a # 列出所有章节手册
-k keyword # 列出所有匹配的页面
-f # 相当于whatis
49、切换终端
ch vt 1
50、Linux文档
http://www.nginx.org
http://kbase.redhat.com
http://access.redhat.com
http://tldp.org
http://www.slideshare.net
51、终端录屏
script -t 2> /works/time.log -a /works/cmd.log # 记录
scriptreplay time.log cmd.log # 播放
52、配置/etc/issue文件
\l # 插入当前tty的名称
\m # 平台架构,相当于umame -m
\d # 当前如期
\s # 操作系统名称,相当于umame -s
\n # 显示主机名,相当于uname -n
\r # 显示内核版本,相当于uname -r
\t # 显示当前时间
\u # 显示当前用户登录数量
53、查询某个命令是由那个安装包安装的
rpm -qf /usr/bin/bash
或者
yum whatprovides patch # 支持统配符
54、取随机数
head -c 500 /dev/urandom | tr -dc '0-9A-Za-z' | head -c 20
55、apache更换家目录问题
1、path 主要作用就是对目录文件访问权限进行控制
2、
AllowOverride none
Require all denied
表示apache默认对根目录是拒绝访问的。
56、数据单位|带宽问题
1B(Byte字节)=8bit b
1KB (Kilobyte 千字节)=1024B
1MB (Mega byte 兆字节 简称“兆”)=1024KB
1GB (Giga byte 吉字节 又称“千兆”)=1024MB
1TB (Tera byte 万亿字节 太字节)=1024GB,其中1024=2^10 (2的10次方)
1PB(Peta byte 千万亿字节 拍字节)=1024TB
57、最小化安装的CentOS中bz2压缩包不能解压问题
问题原因:缺少lbzip2包
解决办法:yum install lbzip2
58、dd命令修改MBR中的最后两个字节
# 将mbr中的最后两个字节55AA覆盖掉
dd if=/dev/zero of=mbr bs=1 count=2 seek=510 conv=notrunc
seek= 表示在 [输入目的地] 509个字节处开始将输出的内容复制
skip= 表示在 [输出的内容] N个字节处开始复制
notrunc 不截断输出
60、当前终端宽度和长度
[ root@localhost /works/test ]# echo $LINES
46
[ root@localhost /works/test ]# echo $COLUMNS
191
61、高可用性 High availability,缩写为 HA
指系统故障无法运行使用的时间与系统总运行时间的比较。A(可用性),MTBF(平均故障间隔),MDT(平均修复时间)
A=MTBF/(MTBF+MTTR)
可用性 年故障时间
99.9999% 32秒
99.999% 5分15秒
99.99% 52分34秒
99.9% 8小时46分
99% 3天15小时36分
62、冒泡排序算法
1、比较第一个数和第二个数,如果第一个数比第二个数大,则交换位置
2、比较第二个数和第三个数,如果第二个数比第三个数大,则交换位置,否则不交换
3、一轮比较之后,最大的排到的最后
4、一次对每一对相领是数进行比较,达到排序的目的
63、命令引用时,` ` 和 $()是等价的
64、异或问题
1 1 0
0 1 1
1 0 1
0 0 0
65、进程优先级问题
66、bash中整数及小数的计算
在Linux中可以计算的工具let和expr都只能计算整数的运算。bc支持任意精度的浮点运算。
echo "scale=5;$1/$2" | bc
scale=N # 指定精度
67、SElinux关闭问题
/etc/sysconfig/selinux 中配置关闭SElinux不生效。需要在/etc/selinux/config配置文件中配置关闭。
68、httpd更换家目录
例如DocumentRoot "/works/test"
则默认用户对/works/test目录下的文件没有访问权限,即是对/works/test的限制,
使用则可以对html中的文件访问权限进行限制。
69、解压initramfs文件
CentOS6:
# 查看文件类型,发现是gzip格式压缩的文件
file initramfs-2.6.32-696.el6.x86_64.img
# 修改文件名
mv file initramfs-2.6.32-696.el6.x86_64.img file initramfs-2.6.32-696.el6.x86_64.img.gz
# 解压文件
gunzip file initramfs-2.6.32-696.el6.x86_64.img.gz
# 再次查看文件类型,ASCII cpio archive
file file initramfs-2.6.32-696.el6.x86_64.img
# 利用cpio接开归档文件
cpio -ivd < initramfs-2.6.32-696.el6.x86_64.img
CentOS7:
/usr/lib/dracut/skipcpio initramfs-3.10.0-514.el7.x86_64.img | zcat | cpio -ivd
70、apache 隐藏版本设置指令
ServerTokens Prod
ServerTokens Full (or not specified)
Server sends (e.g.): Server: Apache/2.4.2 (Unix) PHP/4.2.2 MyMod/1.2
ServerTokens Prod[uctOnly]
Server sends (e.g.): Server: Apache
ServerTokens Major
Server sends (e.g.): Server: Apache/2
ServerTokens Minor
Server sends (e.g.): Server: Apache/2.4
ServerTokens Min[imal]
Server sends (e.g.): Server: Apache/2.4.2
ServerTokens OS
Server sends (e.g.): Server: Apache/2.4.2 (Unix)
71、禁用 CentOS7 Ctrl + Alt del 重启
删除 /usr/lib/systemd/system/ctrl-alt-del.target 软链接即可。
72、Nginx负载均衡,存在二级代理
location / {
proxy_pass http://web;
proxy_set_header Host $host;
}
httpd 使用 fastcgi 代理动态:
354 ProxyRequests Off
355 ProxyPassMatch ^/(.*\.php)$ fcgi://172.18.26.6:9000/discuz/$1
356 AddType application/x-httpd-php .php
357 AddType application/x-httpd-php-source .phps