Linux(CentOS)学习笔记
更改主机名:vi /etc/hostname
hadoop45
更改dns:vi /etc/resolv.conf
nameserver 202.102.199.68
nameserver 202.102.192.68
更改网卡的配置:vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=ens33
BOOTPROTO=static
IPADDR=192.168.182.45
NETMASK=255.255.255.0
GATEWAY=192.168.182.1
ONBOO=yes
更改网络配置:vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop45
更改host配置文件:vi /etc/hosts
192.168.182.45 hadoop45
rpm命令
是Redhat的软件包管理工具,类似于windows添加/删除功能
rpm -ivh 软件包名
安装软件包并显示安装进度
rpm -qa
查询已经安装哪些软件包。
rpm -q 软件包名
查询指定软件包是否已经安装。
rpm -e 软件包名
删除指定软件包。
rpm源代码包的安装
以 .src.rpm结尾的文件由软件源代码文件组成,要安装此种 rpm包,需要用下面的命令。
例如
rpm --recompile vim-4.6-4.src.rpm
这个命令将编译源代码,然后安装它。
而以下命令
rpm --rebuild vim-4.6-4.src.rpm
在安装之后,会把编译后的可执行文件再包装成RPM软件包,这样,下次安装时就可以直接安装RPM包而不用编译了。
grep命令
grep 'hadoop' core-site.xml //从core-site.xml查找包含'hadoop'的行并显示
linux根目录下常见一级目录
/bin,/sbin,/usr/bin,/usr/sbin都是用来保存系统命令,区别是两个bin目录下命令任何用户都可以使用;而sbin则只有超级用户才可以使用。
boot:启动目录,保存着启动数据,一般单独分区。
dev:特殊文件保存目录,硬件设备文件
etc:保存着系统默认的配置文件
home:普通用户的家目录
root:是超级用户的家目录
lib:是linux函数库目录
misc:挂磁带机
media:挂光盘
mnt:挂U盘、移动硬盘等
proc和sys:不能直接操作,这两个目录保存的是内存的挂载点
tmp:临时目录
usr:系统资源保存目录
var:是保存系统可变文档目录
建立目录命令:
mkdir -p [目录名]
#-p表示递归创建
切换目录命令:
cd [目录]
# cd ~ 进入当前用户的家目录
#cd - 进入上次目录
#cd .. 进入上一级目录
#cd . 进入当前目录
注意:按tab两次可以进行命令补全。
查看目录所有位置
pwd
#print working directory
删除空目录:
rmdir [目录名]
删除文件或目录:
rm -rf [文件或目录]
选项:
-r 删除目录
-f 强制(force)
复制命令:
cp [选项] [原文件或目录] [目标目录]
选项:
-r 复制目录
-p 连带文件属性复制
-d 若源文件是链接文件,则复制链接属性
-a 相当于-pdr
剪切或改名命令:
mv [原文件或目录] [目标目录]
链接命令:ln
ln -s [原文件] [目标文件]
硬链接相当于一个文件的两个不同接入点,但不能跨分区,不能针对目录使用
ln /root/anaconda-ks.cfg /tmp/ana.hard
软链接特征:
类似于windows快捷方式,软链接有自己的i节点和block块,但数据块只保存原文件的文件名和i节点号,并没有实际的文件数据
----文件搜索命令----
locate 文件名
locate命令所搜索的后台数据库:/var/lib/mlocate ,按文件名进行搜索,所以速度快,但mlocate数据库一天更新一次,对于刚刚创建的文件,就搜索不到了。但也可以手动更新:updatedb
whereis 命令名
搜索命令的命令whereis,进行搜索命令所在路径及帮助文档所在位置。
选项:
-b:只查找可执行文件
-m:只查找帮助文件
which 命令名
#搜索命令的命令
#看到命令所在位置和别名,但cd命令看不到,是因为cd是shell命令,相当dos的内部命令
PATH环境变量
#PATH环境变量:定义的是系统搜索命令的路径
#echo $PATH --显示PATH路径
find [搜索范围] [搜索条件]
#搜索文件
#避免大范围搜索,会非常耗费系统资源
#find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配。
#例:find / -name install.log
#通配符:*,?,[]
#例:find /root -name "*[cd]"
#例:find /root -user root 按所有者来搜索
#例:find /root -nouser 查找没有所有者的文件
#例:find /var/log -mtime +10 搜索10天前修改的文件
#atime:文件访问的时间
#ctime:改变文件属性
#mtime:修改文件内容
#+10:10天前,-10:10天内,10:第10天当天
#find /root -size +25k 查找大于25k的文件
#find /etc -size +20k -a -size -50k 查找etc目录大于20k并且小于50k的文件;-a表示and;-o表示or
#find /etc -size +20k -a -size -50k -exec ls -lh {} \;对搜索结果执行ls命令,后缀是固定格式。{} \;
grep [选项] 字符串 文件名
从文件中搜索包含某字符串的行,如果需要匹配,使用正则表达式进行匹配,正则表达式包含匹配。
find 和grep的区别:find搜索的是文件名,grep搜索的是文件内容。find使用通配符完全匹配;grep使用正则表达式部分匹配
man 命令
#获取指定命令的帮助
#man -k password 所有跟password相关的所有命令的帮助
whatis 命令
#介绍该命令的功能
help shell内部命令
#获取shell内部命令的帮助
#whereis cd 确定是否有shell内部命令
#如:help cd
whereis 命令
#查看命令的位置
#如果找不到命令的位置,则可能是内部命令
info命令
#获取详细命令的帮助
#所有命令的帮助文件
----压缩与解压缩命令----
常用的压缩格式:.zip .gz .bz2 .tar.gz .tar.bz2
.zip格式压缩
zip 压缩文件名 源文件
#压缩文件
zip -r 压缩文件名 源目录
#压缩目录
unzip 压缩文件
#解压缩
.gz格式压缩
gzip 源文件
#压缩为.gz的压缩文件,源文件会消失
.gzip -c 源文件 > 压缩文件
#压缩为.gz格式,源文件保留
#例如:gzip -c cangls >cangls.gz
.gzip -r 目录
#压缩目录下所有的子文件,但不能压缩目录
.gzip -d 压缩文件
#解压缩文件
gunzip 压缩文件
# 解压缩文件
.bz2格式压缩
bzip2 源文件
#压缩为.bz2格式,不保留源文件
bzip2 -k 源文件
#压缩之后保留源文件
#注意:bzip2命令不能压缩目录
bzip2 -d 压缩文件
#解压缩,-k保留压缩文件
bunzip2 压缩文件
#解压缩,-k保留压缩文件
#.gz和.bz2不支持目录压缩
tar -cvf 打包文件名 源文件
选项:
-c:打包
-v:显示过程
-f:指定打包的文件名
例如:tar -cvf longzls.tar longzls 打包
gzip longzls gz压缩
tar -xvf 打包文件名
#解包命令
#选项:
-x:解打包
#例如:
tar -xvf longzls.tar
#其实.tar.gz格式是先打包为.tar格式,再压缩为.gz格式
tar -zxvf 压缩包名.tar.gz 源文件
选项:
-z:压缩为.tar.gz格式
tar -zxvf 压缩包名.tar.gz
选项:
-x:解压缩.tar.gz格式
tar -jcvf 压缩包.tar.bz2 源文件
选项:
-z:压缩为.tar.bz2格式
tar -jxvf 压缩包.tar.bz2
选项:
-x:解压缩.tar.bz2格式
----------关机和重启命令--------
shutdown [选项] 时间
选项:
-c:取消前一个关机命令
-h:关机
-r:重启
shutdown -r 05:30 &
#将shutdown 命令放入后台执行,不占终端
shutdown -r now #立即重启
其它的关机命令
halt
poweroff
init 0
其它的重启命令
reboot
init 6
退出登录命令
logout
#远程终端工具退出
-----其他常用命令-----
挂载命令
对于硬盘,分区时首次挂载后,以后启动时就会自动挂载了。对于光盘、U盘等移动存储设备必须手动挂载,挂载就是分配盘符
mount
#查询系统中已经挂载的设备
mount -a
#依据配置文件/etc/fstab的内容,自动挂载
用户登录查看和用户交互命令
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
选项:
-t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660(光盘文件系统)等文件系统
-o 特殊选项:可以指定挂载的额外选项
挂载光盘
mkdir /mnt/cdrom/
#建立挂载点
mount -t iso9660 /dev/cdrom /mnt/cdrom/
mount /dev/sr0 /mnt/cdrom/ #将光盘设备文件挂载到指定的挂载点
#/dev/sr0代表的是光盘,它还有一个软链接文件/dev/cdrom
卸载命令
umount 设备文件名或挂载点
umount /mnt/cdrom/
#或umount /dev/sr0
#注意卸载时必须退出cdrom目录
挂载U盘
fdisk -l
#查看u盘设备文件名
mount -t vfa /dev/sdb1 /mnt/usb/
#注意Linux默认是不支持NTFS文件系统的
如果非得挂载NTFS格式的U盘,可以下载一个工具,ntfs-3g,装上以后,就可以挂载了,但是是只读的。
----用户登录查看命令-----
w 用户名
#tty1表示第一个本机登录终端
#pts/0表示第1个远程登录终端
who 用户名
#查看系统中登录了哪些用户(用户名,登录终端,登录时间),和w不同的是,w可以看到资源的占用情况,能who只能看到用户。
last
#查看当前登录和过去登录的用户信息
#实际是读取 /var/log/wtmp日志文件,这个日志文件是不能通过vi直接打开查看的,是二进制文件。
lastlog
#查看所有用户的最后一次登录时间
Shell是什么
Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
Shell的分类
Bourne Shell:从1979起Unix就开始使用Bourne Shell,Bourne Shell的主文件名为sh.
C shell:C Shell主要在BSD版的Unix系统使用,其语法和C语言相类似而得名。
echo $SHELL #可以查看当前shell
echo 输出命令
echo [选项] [输出内容]
选项:
-e:支持反斜线控制的字符转换
创建脚本
vi hello.sh
#!/bin/bash
#The first program
echo -e "\e[1;34m hello,world \e[0m"
脚本执行
赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh
通过bash调用执行脚本
bash hello.sh
Bash的基本功能
Bash是Linux标准Shell
1、命令别名与快捷键
alias
#显示系统中的别名
alias ls='ls --color=never' #不使用颜色 命令行是临时生效
vi ~/.bashrc
#写入环境变量配置文件 永久有效
unalias 别名
#删除别名
bash中常用的快捷键
ctrl+c 强制终止当前命令
ctrl+l 清屏
ctrl+a 光标移到命令行首
ctrl+e 光标移动命令行尾
ctrl+u 从光标所在的位置删除到行首
ctrl+z 把命令放入后台
ctrl+r 在历史命令中搜索
2、历史命令