CentOS7的学习笔记

命令格式与目录处理命令ls
ls -a 全部 包括隐藏文件
ls -l h 详细信息 人性化
ll -h 显示当前目录下的所有文件的 信息 大小以mb表示

ls -l /文件 就是查看文件的信息
ls -l /root 查看指root目录下的详细信息
ls -ld /root 查看指定目录的信息而不是底下的信息
ls -i 软节点 唯一标识目录或者文件
详细信息中这些
-文件
d目录
i 软节点

所有者u只能有1个 用户组g可以有多个 其他人o三类
权限三类
w写
r读
x执行

df查看分区信息

当然位置是/root
exit退出
cd 进入指定目录 cd /tmp cd ..返回上一级目录 pwd显示当前目录全路径 cd .是当前目录

目录处理 命令
mkdir 创建目录 mkdir /xx 在根目录下创建xx目录 表示绝对路径 如果是 mkdir xx则表示在当前目录下创建目录
mkdir -p创建多级目录 mkdir /aa/bb /aa/cc 可同时创建多个目录 不是说 在哪个位置创建目录 就会在其下创建该目录 都是在根目录下创建的
rmdir 删除指定目录 但必须为空

cd 文件 文件 /目标地址
cd -r 目录 目录 /目标地址
cd -p保存文件的属性信息不变
赋值目录的时候 复制的是最后那块地方/aa/bb则将bb赋值过去
cd -pr /tmp/aa/zz /root/ss 意思就是 将zz赋值到root中再重命名为ss

ctrl+l清屏或者clear

mv是移除 可以写全路径 如果在aa/ss 的aa目录下 可以mv ss /root也实现了剪切 不需要-r可以剪切一个或者多个目录
剪切的时候也可以重命名和 复制一样
同一个 目录下 mv xx zz 就是将xx改名为zz
询问操作 y 或者n

rm删除一个文件 rm -f强制删除 不询问
rm -rf删除目录
rm -rf *删除全部当前目录

文件处理命令
创建文件是touch 如果没有“ss aa” 那就相当于创建了2个文件 不能有空格 带空格就得双引号 不推荐

cat显示内容 cat 文件 或者cat -n 文件 有行号 小文件
tac可以倒着显示内容
more可以显示大文件 空格或者f可以向下翻页 回车 可以 一行 一行翻 q是退出
less可以往上翻 上键盘就行 还可以 /加要寻找的内容 按n往下找下一个匹配的关键字
只是查看前几行 head -n 行号 目标文件 没有-n 默认是前10行
tail刚好和head相反
退出某个状态是 ctrl+c
tail -f 可以动态显示文件末尾的内容(了解)监控日志

ln -s /etc/issue /tmp/ss
软链接 相当于是图标 以l开头 三个rwx 只是个符号指针 非常小 打开软链接 就会去找源文件打开 如果删除源文件 软连接无法打开 i节点和源文件不一样 可以跨分区 可以跨区也可以针对目录
ln /etc/issue /tmp/ss
硬链接相当于cp -p+同步更新 和源文件大小一样 和源文件一模一样属性 就算源文件被删除 被丢失 依然存在
拷贝一份到其他地方 然后删除源文件 硬链接还是可以显示 i节点和源文件一样 i节点映射在两个文件上 所以可以实现同步 不能跨分区 不能针对目录
实验:
echo “sdfsdf” >>/etc/issue
硬链接结尾内容也增加了”sdfsdf”

修改文件或者权限:
只有两种人能修改权限 一个是管理者root 一个是所有者
r—4
w—2
x—1
无–0

chmod 640(三个数字) 文件或者目录
chmod -R 777 文件或者目录 递归修改,改变目录权限同时,改变它底下的所有文件或者目录权限
也可以用 u,g,o(用户) +-=权限 文件或者目录
添加一个普通用户:
useradd jjc
passwd jjc
添加密码就行

mkdir /tmp/father
touch /tmp/father/son
chmod 777 /tmp/father
此时 father目录是777 而son不是
我们用创建的jjc登陆 删除son是可以成功的
删除一个文件条件是 对文件所在目录有写权限 而不是文件的权限
r 可以查看文件内容 可以列出目录的内容 ls
w 可以修改文件内容 可以在目录中创建,删除文件
x 可以执行文件(指令之类) 可以进入目录

注意 root 默认进去是在/root
其他用户在 /home/用户名

改变文件所有者
改变文件的所有者 只有root才有这个权限 所有者没有这个权限 root和所有者都可以改变文件或者目录的权限

chown 用户名 文件或者目录

改变文件的所有组

groupadd brothers 添加组
chgrp brothers 目标目录或者文件

umask -S
u=rwx,g=rx,o=rx
所以新创建的目录权限是如此: drwxr-xr-x
默认创建的文件权限:-rw-r–r–
默认新建的文件是不具有可执行的权限(比如防范病毒)

修改默认的权限分配
umask
0022 对应的权限是 777-022=755 对应 u=rwx,g=rx,o=rx
umask 021(子掩码) 777-021=756 对应 u=rwx g=wx o=rw 缺省权限
创建的 也是 缺省组,默认是 所有者的名字

文件或者目录搜索
根据关键字查找
find 范围 -name 关键字 (精准搜索)
find 范围 -name 关键字(模糊查询) 或者关键字*之类的以关键字为开头的 还有?匹配单个字符
如 熊猫???以熊猫为开头,后面包括三个字符
find
find 范围 -iname 关键字 (精准搜索) 不过不区分大小写
*任意字符
?单个字符
根据大小范围查找
find 范围 -size +数据块
1数据块= 512字节 0.5K
100MB=102400KB=204800数据块
+n 大于 -n小于 n等于
根据所有者来查找
find 范围 -user 所有这名字
根据所属组来查找
find 范围 -group 所属组名字

find 范围 -amin 或者 -cmin 或者-mmin -时间(分钟为单位)
-amin访问时间
-cmin 文件属性 即ls可以看到的属性
-mmin 文件内容
find /ect -cmin -5
表示找出5分钟内ect中被修改属性的文件和目录

连接词:
-a 两个条件同时满足
-o 两个条件满足其一即可

find /etc -size +100 -a -size -200
就是 在/etc下查找 大于100数据块 小于200数据块的文件

根据文件类型查找type
f文件 d目录 l软链接文件
find /etc -name init* -a -type f
或者是o
对找到的结果可以直接进行操作
find /etc -name init -exec ls -l {} \;
查看找到名为init文件或者目录的属性
-exec/命令 {} \;是固定的
exec改为ok的化 就会对每个文件进行操作的时候都会询问确认
find . 查找当前目录
find . -inum i节点号 -exec rm {} \;
根据i节点删除当前目录下文件
ls -i 显示当前目录下的文件名或者目录名和i节点号 唯一的
ls -i
find . inum 656437 -exec rm {} \;
删除当前目录下i节点为656437的文件或者目录

快速搜索 :locate 文件名(不需要目录)
和everything一样快 ,因为内部维护了一个资料库实时跟新
不像find是遍历查找某一块区域
不过 locate不是实时查找的
比如刚创建的文件是找不到的
可以 updatedb手动更新资料库
就可以用locate了
注意 在/tmp目录下创建的文件是无法locate的
因为它是临时文件 即使updatedb也无法查找到
忽略大小写查找:locate -i 文件名

which 命令 可以查找命令所在的完整目录和别名
which cp 查找cp命令所在的目录就知道它的哪些所有者可以使用
就比如 你rm 文件 是先找别名 对原命令进行过修饰
/bin/rm 文件 直接找到原命令 执行

whereis 命令 列出命令,配置文件所在的目录 还有帮助文档所在目录 结尾1的是命令的帮助 5是配置文件的帮助
如man passwd 优先查看的是命令的帮助文档信息
可以 man 5 passwd 就是查看 passwd配置文件的信息
grep 关键字 文件地址 返回的是该关键字在文件中的 一整行
grep -i 关键字 文件地址 不区分大小写查询

注意:

都是注释行

反向查找
grep -v ^# 文件地址 意思就是把以#为开头的文件内容去掉 返回剩下部分

帮助命令

man可以查看命令的帮助或者 配置文件的帮助
q可以退出
/-l可以快速定位
n进行下一个查找

man+配置文件名称就行了 一般都是查看配置文件的作用和 格式
man+命令名称 开头 选项作用 /-l可以快速定位选项

whatis 命令 可以直接看到该命令的简短介绍信息
apropos 配置文件的简短介绍信息

命令 –help列出选项及作用

date查看系统当前时间
man date 查看使用规范 就可以修改了

内置命令 找不到所在位置 不能使用 man查看帮助 如cd umask
结果是 shell内置的命令

注意:
shell 查看内置命令的帮助信息 要 help+ 命令
man查看配置文件 不需要绝对路径

用户管理命令
useradd 添加管理员
passwd 更改密码
root可以更改全部人密码 就算简单也没事 如123456
用户本身只能更改自己密码 而且 要符合复杂密码规范

who可以查看当前登陆用户信息:登录名 登陆终端tty1表示本地终端 pts/0 pts/1 表示远程终端 以及登陆时间 登陆的服务器IP地址 没写就是本季登陆
w 可以显示更多信息: 当前时间 up服务器运行时间 users用户数量 average负载情况 IDLE 空闲时间 JCPU是累计占用CPU时间 PCPU当前用户执行操作占用cpu时间 WHAT 当前执行了什么操作

压缩解压命令
linux .gz
windows .zip rar
.zip 两者都可以使用

压缩成gz: 只能压缩文件 不能压缩目录 而且不保留源文件
rm -rf *
ls
touch xx
gzip xx
ls
解压缩:
gunzip xx.gz

压缩路径 tar.gz
tar -zcvf c是创建一个打包文件 f是指定文件名 z是创建打包的同时压缩 v是显示打包的文件
tar zcvf 新生成的压缩文件 打包源文件 保留源文件

解压:
目录:
tar -zxvf 压缩包

压缩成zip:
文件:
zip 新生成的文件 源文件 生成zip压缩包 而且保留源文件
目录:
zip -r 新生成的文件 源文件 生成zip压缩包 而且保留源文件
解压:
unzip zip压缩文件

gz升级版:bzip2 压缩比大 还可以 -k长生压缩文件后保留源文件
bzip2 源文件 不保留源文件
bzip2 -k 源文件 保留源文件

tar.bz2:
tar -cjf 生成文件名字 源文件 使用bzip2打包目录
生成文件名字要以 tar.bz2结尾

解压:
bunzip2 压缩包文件
bunzip2 -k 压缩包文件 是保留压缩包

tar -jxf 压缩目录

网络命令:

write:
write 用户名
ctrl+删除才是三处
ctrl+d 发送结束
无法发送中文
只能发送给在线用户

wail:
wall 广播谁都可以收到 不需要加用户名
ping 测试网络连通性
ping ip地址
ping -c 3 ip地址 就传送三次 主要观察 packet loss丢包率

ifconfig:
临时设置ip地址 ifconfig eth0 ip地址
ifconfig可查看网卡信息
有一个真实网卡 和回环网卡 127.0.0.1
HWaddr mac地址
Bcast 广播地址
Mask 子网掩码

mail: 发送邮件
mail 用户名
Subject:test
ctrl+d发送

收件方 直接mail就可以读取
h键可以查看邮件列表
直接邮件前面的数字回车就可以看该邮件
d +数字 删除对应邮件
q退出

last:
记录所用用户的登陆信息 以及何时重启过
lastlog:
显示所有用户最后一次登陆时间
lastlog -u 用户id 这样只看指定用户登陆信息

traceroute 地址 显示数据包到主机间的路径

windows下 ipconfig /all 而可以查看网关ip

解决linux ping: unknown host www.baidu.com
先ping网关 其实就是 你的ip地址 不过 最后是1而已 如192.168.1.1

修改ip ;
ifconfig eth0 192.168.1.146
ping 192.168.1.1 检查是否和网关通信

1.cat /etc/resolv.conf

2.netstat –r

3.cat /etc/sysconfig/network

4.cat /etc/sysconfig/network-scripts/ifcfg-eth0

5.traceroute 第一行就是自己的网关

6.ip route show

7.route -n

以上几个是比较常用的查询网关的命令

Linux命令行修改dns

echo “nameserver 202.202.202.20 “>> /etc/resolv.conf

ubuntu:
apt-get install traceroute

netstat -tlun 查看tcp udp占用的端口信息(本机监听的端口)
netstat -an 查看本机所有的网络连接
netstat -rn 查看本机路由表 查看默认网关

setup可以配ip地址 (某些可以使用)

挂载 mount 要挂载的 分配挂载的名字 分配的地址
mount /dev/sr0 /mnt/cdrom/
umount /dev/sr0 不能在挂载点内卸载

关机重启命令:
关机:
shutdown -h now 马上关机
shutdown -h 时间 定时关机
shutdown -r now 马上重启
shutdown -r 时间 定时重启
shutdown -c 取消前一个关机命令
最好先断开服务 再shutdown
权限不够就用 sudo shutdown -r now
还可以 reboot 重启

renlevel:查询系统运行级别 图形界面是5
init 可以更改级别
login 退出登陆

vim 文件名
命令模式 插入模式 编辑模式
iao 进入编辑模式 esc是退出编辑
:是进行命令 操作
set nu 加行号
set nonu 取消行号
wq 保存退出

定位:
按两个小写gg到第一行 一个大写G最后一行
行号 +大写G 定位到指定行号
:行号也行
0是行首 $是行尾

查找
查找是 /string n是下一个 查找是严格区分大小写的
set ic 是不区分大小写
set noic是区分大小写

替换:
:%s /全文替换/要替换的字符串/新的字符串/g是不询问
:起始行,终止行s/要替换的字符串/新的字符串

:w 保存修改
:wq 保存并退出
:q!不保存退出
w: 另存为

如果是只读文件
wq!可以强制保存 但是只有文件所有者或者root可以使用

导入:
:r 文件地址 导入该文件到编辑的光标处
:!命令 就是执行操作
:r! 命令 导入命令执行的结果
:r!date

定义快捷键:
:map ctrl+v+p I# 就是ctrl+p就是注释 在首行加#并且esc退出 还可以用于其他常用的内容 如邮箱
:map ctrl+v+b 0x 去掉首字母
替换:ab 替换字符串 被替换字符串 只要打出替换字符串 加空格就变被替换字符串

永久生效如果是 root 则在/root/.vimrc
如果是 用户 则在/home/username/.vimrc中
加入生效即可
前面不需要:

rpm安装:
先往光驱添加rpm包
挂载的话 :
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom/
umount是卸载

yum在线管理
比命令行要好 因为 解决了依赖性

查看yum源信息:
cat /etc/yum.repos.d/CentOS-Base.repo
首先要更改源 国外比较慢
备份本地yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
获取阿里yum源配置文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
更新cache
yum makecache
查看
yum -y update
查询所有可用软件包列表
yum list
yum search 关键字 搜索服务器上所有和关键字相关的包
yum -y install 包名
install 安装
-y是自动回答yes

升级:
yum -y update 包名 如果没有包名就把 整个系统更新包括内核 也许有错误
卸载:
yum -y remove 包名 卸载包名有关的或者以来的包 如果 其他程序也依赖了 它的包 那也无法启用
它是全部卸载的 所以少用

显示已经安装的软件包
yum list installed
查看可以安装的软件包
yum list tomcat
安装软件包
yum -y install tomcat
卸载软件包
yum remove tomcat
列出软件包的依赖
yum deplist tomcat
info 显示软件包的描述信息和概要信息
yum info tomcat
升级所有的软件包
yum update
升级某一个软件包 ,以升级 tomcat 为例
yum update tomcat
检查可更新的程序
yum check-update
查看软件安装路径是通过whereis 命令

软件包组的安装和卸载

CentOS 7.0中已经没有service命令,而是启用了systemctl服务器命令

sudo权限
修改权限 要root才可以修改

sudo -l 查看可用的sudo命令
whereis shutdown 可以查看命令所在位置
su - 用户名 切换用户

visudo 分配普通用户权限
要分配的用户名 ALL或者要访问的ip地址即(服务器ip) 不是来源ip 命令全路径

jjc ALL=/sbin/shutdown -r now 授予jjc可以重启服务器

sudo 绝对路径的命令 或者 直接命令也行

RPM安装的服务 查看服务自启动状态
chkconfig –list是服务自启动查看命令 2 3 4 5启动就是 自启动的

whereis shutdown 可以查看命令所在位置

使用 systemctl list-unit-files 查看开机启动项
ps aut | grep crond 查看进程
ps -le查看系统中所有的进程

备份与恢复:
如果是 完全备份
直接 tar 然后cp就行
先检查是否有dump(无法使用dump)
rpm -qa |grep dump
https://segmentfault.com/a/1190000013618534

你可能感兴趣的:(Linux学习系列)