Centos7 修改主机名
查看当前的主机名
[root@localhost]# hostname localhost [root@localhost]# hostnamectl Static hostname: localhost.localdomain Transient hostname: localhost Icon name: computer-vm Chassis: vm Machine ID: f1d9ecb6c6bd4e02b58e19bba402056c Boot ID: 91603e0798814b54a928e70fd2a2754f Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-693.el7.x86_64 Architecture: x86-64
临时修改主机名
[root@localhost# hostname yin 临时修改,重启服务器后就不生效了 [root@localhost]# hostname yin [root@localhost]# hostname -i 查看本机器名对应的ip地址 fe80::20c:29ff:fe5f:6d17%ens33 192.168.75.205
永久修改主机名
方法一: 使用hostnamectl命令
[root@xlucas1 ~]# hostnamectl set-hostname xlucas2
方法二:修改配置文件 /etc/hostname 保存退出
[root@xlucas1 ~]# vi /etc/hostname xlucas2
yum 源
阿里 yum 源设置
阿里云Linux安装镜像源地址:http://mirrors.aliyun.com/
CentOS系统更换软件安装源
// 备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup // 下载新的CentOS-Base.repo 到/etc/yum.repos.d/ curl -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo // 运行yum makecache生成缓存 yum clean all yum makecache
配置本地yum、163、epel 源
都知道redhat不收费,但是其yum服务是要收费的,不想出钱那就自己配置yum源就好了。
经过请教大神出正确的做法,一般来说配置3个源就够了:
1.本地yum源,就是你本地的ISO
2.配置163源
3.配置epel源
配置本地yum源
创建一个文件夹用来挂载ISO mkdir /mnt/cdrom
执行挂载 mount -o loop /dev/cdrom /mnt/cdrom
这个时候你到/mnt/cdrom下就会发现生成了很多文件。继续: cd /etc/yum.repos.d 新建一个本地源文件,并编辑 vi local.repo
添加如下代码: [local] name=local baseurl=file:///mnt/cdrom (这里既是3个/,没写错) gpgcheck=0 enabled=1
这时候本地yum源就完成了。可以试下,yum install pip 是否成功。
配置163yum源
[163] name=163 baseurl=http://mirrors.163.com/centos/7/os/x86_64/ gpgcheck=0 enabled=1
这里要注意的是,baseurl这一项,你要到http://mirrors.163.com/centos这里,去找到你对应的redhat版本的目录,然后点os、再点x86_64(一般都有),然后用你地址栏上显示的网址替换上面的baseurl就行了,保存退出。
配置epel源
rpm -vih http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
(这个链接经常变,自己http://dl.fedoraproject.org/pub/epel/7这里往下找就行了)
注意,我的redhat是7,所以如果你的版本不是7,那你要到http://dl.fedoraproject.org/pub/epel找到你对应版本的rpm包,然后用上面的命令下载,这条命令的作用就是在/etc/yum.repos.d目录下生成epel源。
好了,有了这三个,基本是所有的包都能装了。如果还有找不到的,那你就按照这样的方法自己在配别的源就好了,甚至可以自己写一个yum源。
环境变量
设置变量的三种方法
在/etc/profile文件中添加变量【对所有用户生效(永久的)】
# vi /etc/profile export PATH=/home/kylin : $PATH
# source /etc/profile
在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】
$ vi /home/guok/.bash.profile 添加如下内容: export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib $ source /home/guok/.bash_profile
直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】
在shell的命令行下直接使用[export 变量名=变量值]
PATH声明
PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N> 你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效。 如果想立刻生效,则可执行下面的语句:$source .bash_profile 需要注意的是,最好不要把当前路径”./”放到PATH里,这样可能会受到意想不到的攻击。 完成后,可以通过$ echo $PATH查看当前的搜索路径。这样定制后,就可以避免频繁的启动位于shell搜索的路径之外的程序了。
常用的环境变量
PATH 决定了shell将到哪些目录中寻找命令或程序 HOME 当前用户主目录 HISTSIZE 历史记录数 LOGNAME 当前用户的登录名 HOSTNAME 指主机的名称 SHELL 当前用户Shell类型 LANGUGE 语言相关的环境变量,多语言可以修改此环境变量 MAIL 当前用户的邮件存放目录 PS1 基本提示符,对于root用户是#,对于普通用户是$
环境变量相关命令
- 设置一个新的环境变量hello fs@ubuntu:~$ export HELLO="Hello"
fs@ubuntu:~$ echo $HELLO - 使用env命令显示所有的环境变量 - 使用set命令显示所有本地定义的Shell变量 fs@ubuntu:~$ set
- 使用unset命令来清除环境变量 set可以设置某个环境变量的值。清除环境变量的值用unset命令。如果未指定值,则该变量值将被设为NULL。 fs@ubuntu:~$ unset $TEST \\删除环境变量TEST
- 使用readonly命令设置只读变量 如果使用了readonly命令的话,变量就不可以被修改或清除了。 fs@ubuntu:~$ export TEST="Test" \\增加一个环境变量TEST
fs@ubuntu:~$ readonly TEST \\将环境变量TEST设为只读
fs@ubuntu:~$ unset TEST \\此变量无法删除
bash: unset: TEST: cannot unset: readonly variable
fs@ubuntu:~$ TEST="NEW" \\此变量不可更改
bash: TEST: readonly variable
源码包编译
源码包安装
编译 make -j 4 使用4个进程同编译
--prefix 指定安装的位置 --user 指定运行的用户 --group 制定运行的组
计划任务
计划任务:在某个时段自动执行某个任务。
at
只能执行一次
systemctl status atd ctrl +D 结束
at -l 查看计划任务 任务编号 、执行时间 、执行者 at 20:00 2017-4-12 at now +10min 在10分钟后执行 删除at 计划任务:atrm + 计划任务的编号
cron 主程序
周期行计划任务
- Crond 服务: 1.系统级别 2.用户级别的计划任务 - 主文件: /etc/crontab 针对用户级别的计划任务: 对于root用户: 命令:crontab -e 创建一个计划任务 crontab -l 显示 crontab -r 删除计划任务
crontab -e # 写法 分 时 日 月 星 谁做后面的事情 命令
每月 9,18,22 这几天的凌晨1点1分,执行一个备份脚本 1 1 9,18,22 * * /root/backup.sh 每月 9-22号这几天的凌晨1点1分,执行一个备份脚本 1 1 9-22 * * /root/backup.sh 每5分钟,执行一次 */5 * * * * /root/backup.sh
anacron :解决cront 错过时间后,不执行cron计划任务的问题。 anacron的作用:机器重启后,侦测在关机的这一段时间期间,有没有cron每有执行的计划任务, 如果有,开机后,anacron会立即执行没有执行的任务。
Curl
curl模拟Http 的get 或 post请求
查看网页源码
$ curl www.sina.com
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <a href="http://www.sina.com.cn/">here</a>.</p> </body></html>
保存下来,可以使用-o参数
$ curl -o [文件名] www.sina.com
自动跳转
有的网址是自动跳转的。使用-L参数,curl就会跳转到新的网址。
$ curl -L www.sina.com
显示头信息
-i参数可以显示http response的头信息,连同网页代码一起。 -I参数则是只显示http response的头信息。 $ curl -i www.sina.com
显示通信过程
-v参数可以显示一次http通信的整个过程,包括端口连接和http request头信息。 $ curl -v www.sina.com // 查看更详细的通信过程。 $ curl --trace output.txt www.sina.com 或者 $ curl --trace-ascii output.txt www.sina.com
发送表单信息
发送表单信息有GET和POST两种方法。GET方法相对简单,只要把数据附在网址后面就行。
$ curl example.com/form.cgi?data=xxx POST方法必须把数据和网址分开,curl就要用到–data参数。 $ curl -X POST --data "data=xxx" example.com/form.cgi 如果你的数据没有经过表单编码,还可以让curl为你编码,参数是--data-urlencode。 $ curl -X POST--data-urlencode "date=April 1" example.com/form.cgi
HTTP动词
curl默认的HTTP动词是GET,使用-X参数可以支持其他动词。
$ curl -X POST www.example.com $ curl -X DELETE www.example.com
Referer字段
有时你需要在http request头信息中,提供一个referer字段,表示你是从哪里跳转过来的。
$ curl --referer http://www.example.com http://www.example.com
User Agent字段
这个字段是用来表示客户端的设备信息。服务器有时会根据这个字段,针对不同设备,返回不同格式的网页,比如手机版和桌面版。
iPhone4的User Agent是 Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7
curl可以这样模拟: $ curl --user-agent "[User Agent]" [URL]
cookie
使用--cookie参数,可以让curl发送cookie。
$ curl --cookie "name=xxx" www.example.com
至于具体的cookie的值,可以从http response头信息的Set-Cookie字段中得到。 -c cookie-file可以保存服务器返回的cookie到文件,-b cookie-file可以使用这个文件作为cookie信息,进行后续的请求。 $ curl -c cookies http://example.com $ curl -b cookies http://example.com
增加头信息
有时需要在http request之中,自行增加一个头信息。--header参数就可以起到这个作用。
$ curl --header "Content-Type:application/json" http://example.com
HTTP认证
有些网域需要HTTP认证,这时curl需要用到--user参数。
$ curl --user name:password example.com
get请求
curl "http://www.baidu.com" 如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地 curl -i "http://www.baidu.com" 显示全部信息 curl -l "http://www.baidu.com" 只显示头部信息 curl -v "http://www.baidu.com" 显示get请求全过程解析
post请求
curl -d "param1=value1¶m2=value2" "http://www.baidu.com" 通过脚本发送post请求,顺便附带文本数据,比如通过”浏览”选择本地的card.txt并上传发送post请求: curl -F "blob=@card.txt;type=text/plain" "http://172.16.102.208:8089/wiapi/score?leaderboard_id=7778a8143f111272&score=40&app_key=8d49f16fe034b98b&_test_user=test01" 其中-F 为带文件的形式发送post请求, blob为文本框中的name元素对应的属性值。
注意:本文归作者所有,未经作者允许,不得转载