一、基本命令
1、cd
改变路径 (.
当前目录 ..
上级目录 -
上次目录 ~
用户目录)
which
查看命令源文件所在目录
2、env
显示所有环境变量,
man,help,info,--help
[命令] 查看命令帮助
2、pwd
查看当前路径 -P
查看物理路径(非链接路径)
3、whoami
查看当前登录用户
4、mkdir
新建目录
-p
递归创建目录,不提示目录是否存在,循环向下创建所有层级目录,如果存在就会忽略。
-m
指定创建文件夹的权限
-v
显示打印创建过程信息
mkdir -p {a..c}{1..2}
创建a1,a2,b1,b2,c1,c2文件夹
5、rmdir
删除空目录
rm
删除文件或目录 (可加 -rf)
-f
:不管目录下的文件存在不存在,都不给予提示
-r
:删除此目录下的所有文件,但是此目录不删除
6、touch
创建文件或更新文件时间戳。文件存在则更新时间戳。
-a
改变文件时间戳。
touch {a..c}{1..2}.txt
创建a1.txt,a2.txt,b1.txt,b2.txt,c1.txt,c2.txt文件夹
7、mount
挂载设备
(如:mount /dev/cdrom /mnt/cdr
把光驱挂载点设置为/mnt/cdr目录)
mount
参数:ro(只读)、rw(读写)、usrquota(用户配额)、remount(再次挂载)
-t 设备格式 -o读写方式
(如:mount -t vfat -o rw /dev/sdb1 /win
以读写方式将设备/dev/sdb1挂载到/win目录)
/etc/fstab 挂载记录文件
8、umount
移除设备挂载点 (如:umount /mnt/cdr
)
9、df
查看设备挂载点,磁盘占用空间
-h
选项,可读性高的格式输出
10、uname -a
查看系统完整版本 , -r
查看内核版本 -m
查看系统是版本32 or 64
-n
查看主机名
cat /etc/redhat-release
查看CentOS版本
11、su
切换用户
passwd
修改密码
adduser
增加用户
userdel -r
用户名
12、ps -aux | less
进程查看,加less可以上下分页查看
13、ls
列出目录文件
-l
列出详细的文件信息
-t
按修改时间排序
-r
倒序
-a
列出所有文件,包含隐藏文件
-F
给不同文件加不同标识
-p
给目录文件结尾加/
--color=auto
给过滤的内容加默认颜色
14、cat
查看文件 cat 1.txt 2.txt >new.txt
合并两个文件
15、xargs
16、mv
移动文件或目录
17、cp
拷贝文件,
-r
递归拷贝目录及文件
-p
保持文件属性
18、find
路径 查找文件
-type
文件类型(f文件,d目录,b块设备,l符号链接,c字符文件,s socket)
-name
文件名
-mtime n
n表示第n天,+n表示n天之前,-n表示最近n天。
-a
and,并且;-o
or,或者;!
取反。
find /log -type f -name "a*.log" -mtime +10 |xargs rm -f
(删除/log目录下面a开头的10天之前的.log文件)
19、grep
筛选
-i
忽略大小写
-v
除外
grep -v abc a.txt
a.txt除含abc之外的行
grep 20 -A 10 a.txt
匹配打印a.txt的第20-30行,即匹配20行和20行之后的10行
grep 30 -B 10 a.txt
匹配打印a.txt的第20-30行,即匹配30行和30行之前的10行
grep 25 -C 5 a.txt
匹配打印a.txt的第20-30行,即匹配25行和25行前后各5行
20、head -n
文件名 读取文件前n行,不加参数默认前10行
tail -n
读取文件后n行,不加参数默认后10行
21、tree
显示目录树结构
yum install tree -y
安装tree程序包
22、shutdown -h now
关机
shutdown +10 '"system will shutdown after 10 minutes"
十分钟后关机并向登录用户发出提示
halt
关机命令 实际调用的是shutdown -h 关闭系统
halt -p
关闭系统并切断电源
poweroff
相当于 halt -p
shutdown -r
或reboot
重启
systemctl hibernate
保存系统状态关机到power-off状态。
23、alias
查看或创建命令别名。unalias
删除命令别名
/cp
/bin/cp
命令前加/或用命令全路径可以逃避命令别名
别名文件目录:~/.bashrc
即/root/.bashrc
24、seq
sequence序列
seq 2 3 15
打印从2-10的序列值,间隔等差3 即:2 5 8 11 14
25、sed
流编辑器,实现对文件的增删改替换查。
-n
取消默认输出
-i
修改文件内容
-e
允许多项编辑
p
打印
s
查找并替换,用一个字符串替换成另一个
g
和s
联合使用,表示对当前行全局匹配替换。
#
是分隔符,可用/@等替换。
sed -n '2,10'p a.txt
打印a.txt第2-10行。
sed -n '2'p a.txt
打印a.txt第10行
sed -n '$'p a.txt
打印a.txt最后一行
sed -i 's#klh#www#g' a.txt
把a.txt里面的klh替换成www。不加-i 只替换打印输出,不改变文件内容。
应用1:把/log目录下面的所有.log文件里面的abc字符串替换成www字符串:
find /log -type f -name "*.log" |xargs sed -i 's#abc#www#g'
sed -i ‘s#abc#www#g’ `find /log -type f -name “*.log”` 在 ` `之间的内容先执行
26、awk
过滤,输出内容。属于一门语言。
NR
代表行号
-F ":"
以冒号分隔
$n
第n行,$0
一整行,$NF
最后一行
print $2
打印第2行
awk 'NR>=2 && NR<=10' a.txt
打印a.txt第2-10行。&&
并且 ==
赋值
27、rpm -ivh 软件包名
安装rpm软件包
rpm -e 软件名
卸载rpm软件,注意是软件名,不是软件包名
-qa
列出安装的软件包
-qi
列出软件包描述信息
-ql
列出软件包文件信息
-qf
查找指定文件属于哪个RPM软件包
-Va
校验所有的 RPM软件包,查找丢失的文件
-i
安装软件
-t
测试安装,不是真的安装
-p
显示安装进度
-f
忽略任何错误
-U
升级安装
-v
检测套件是否正确安装
-q
查询软件包是否安装
28、netstat
网络命令
-r
显示路由表
-a
所有sockets
-l
显示监听服务sockets
-n
不解析进程名
-t
tcp
-u
udp
-p
显示sockets的进程pid/name
29、history
查看历史命令记录
-c
清除所有历史
-d
删除指定记录
30、export 设置变量
export HISTSIZE=10
设置保存历史记录10条
export HISTFILESIZE=5
设置保存历史记录文件~/.base_history
记录5条。
export TMOUT=10
设置10秒后退出当前登录账号
设置的变量永久生效可以追加到/etc/profile文件里面:
echo 'export HISTSIZE=10' >>/etc/profile
source /etc/profile
使配置生效
31、ln [参数][源文件或目录][链接文件或目录]
建立链接
-s
软链接(符号链接)
-n
把符号链接视为一般目录
-f
强制执行
-i
交互模式,文件存在则提示用户是否覆盖
-b
删除,覆盖以前建立的链接
-v
显示详细的处理过程
-d
允许超级用户制作目录的硬链接
32、unset
删除变量或函数
-f
仅删除函数
-v
仅删除变量
二、Linux磁盘分区
hd(IDE接口硬盘)、sd(scsi接口硬盘)
sda1:第一个硬盘第一分区
sdb3:第二个硬盘第三分区
数字1-4表示主/扩展分区 5之后表示逻辑分区
常规分区方案:数据不是贴别重要的业务(集群某个节点)
/boot (引导分区) 200M 主分区。
swap (交换分区) 内存1.5倍,最多8G-16G即可。
/ (根分区) 剩余所有空间。
数据重要分区方案:
/ 100-200G
/data 剩余所有
特大网站方案,门户(产品线多,需求不同):
/ 100-200G 剩余的需要时候再分
/etc/fstab 开机要挂载的文件系统的一个文件。
三、Linux控制台
Linux用户允许用户同时打开6个虚拟控制台(tty1~tty6),每个控制台可以不同用户登录,运行不同程序。
文本模式下可以Alt+(F1~F6)组合键切换控制台
图形模式下可以Ctrl+Alt+(F1~F6)组合键切换控制台
三、Linux运行级别
init
0
:关机
1
:单用户
2
:多用户,没有网络
3
:多用户,有网络
4
:系统使用保留给用户
5
:图形界面
6
:系统重启
runlevel 查看运行级别。
/etc/inittab 修改initdefault 行id:5:initdefault: 重启切换到runlevels 5级别
CentOS7 使用systemctl来设置启动级别
multi-user.target(多用户目标):类似级别3
graphical.target(图形目标):类似级别5
systemctl get-default
查看当前默认级别
set-default graphical.target
设置级别5:该命令把
符号连接/etc/systemd/system/default.target指向/etc/systemd/system/graphical.target
四、常用命令行快捷键
tab
命令或目录等补全
ctrl+a
光标移到首
ctrl+e
光标移到尾
ctrl+u
剪切到首
ctrl+k
剪切到尾
ctrl+y
剪切内容粘贴
ctrl+c
中断任务或删除行
ctrl+l
相当于clear清屏
ctrl+z
暂停终端运行的任务
ctrl+r
搜索历史命令
ctrl+d
退出命令行
!!
执行上一条命令
!nt
执行最近以nt开头到命令
!num
执行历史命令列表第num条命令
五、centos7更新yum源
wget安装:yum -y install wget
1、配置下centos的DNS
vi /etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8
2、备份下原来的yum源
cd /etc/yum.repos.d/
cp CentOS-Base.repo CentOS-Base.repo.bak
3、更新yum源
163:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
ailiyun:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
epel源:
yum -y install epel-release
yum clean all
yum makecache
六、Linux安全
1、清除系统版本显示
清空>/etc/issue
和>/etc/issue.net
文件。
2、修改主机名
hostname srv1
主机命名srv1
/etc/sysconfig/network
文件修改永久生效
七、网络
1、网卡配置路径:
/etc/sysconfig/network-scripts/ifcfg-eth*
ifdown eth1;ifdup eth1
停止/启动指定网卡
systemctl restart netwok
重启所有网卡
2、DNS配置文件路径
/etc/resolv.conf
(网卡配置dns地址会覆盖该文件dns地址)