11.11大促主会场
新人页面
精选商品
首月0月租体验,领12个月京东PLUS
自营热卖

01.Linux 常用命令

空心人 1年前   阅读数 108 0

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&param2=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元素对应的属性值。


注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: