分享生活,记录成长
表达自我,拥抱世界

Linux云计算系统学习第五天

操作系统变量概念

Linux 是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。

在命令行输入x=1234即定义了一个变量名为x,内容为1234的变量,调取输出变量在变量名前加上'$'符号即可(临时生效)

[root@krist ~]# x=1234
[root@krist ~]# echo $x
1234

如需永久生效需要在/etc/profile文件中加入变量定义,修改了/etc/profile文件里的变量定义不会马上生效,需要使用命令source /etc/profile重新加载系统环境变量才会生效(不用重新连接)

source 立即加载文件配置信息

which xxx 可以查看xxx命令所在路径位置,例如which cat,命令文件位置为/usr/bin/cat

[root@krist tmp]# which cat
/usr/bin/cat
Linux基础命令-系统内置命令

系统命令分为外置命令和内置命令,外置命令相当于第三方,并不是所有系统都有的,需要单独安装,内置命令所有系统都集成,使用help可查看所有内置命令,内置命令不受$PATH约束

系统内置命令概述说明

学习操作linux系统,其实前期就是对系统命令的掌握,在linux系统中存在大量不同功能的命令,不同的命令具有不同的作用,可以根据实际工作需要进行学习掌握,在众多命令中,可以大致将系统命令分为三个大的类型进行学习

  • 系统普通用户可以执行的命令
    表示除了管理员之外,普通用户也有权限执行的命令
  • 系统管理用户可以执行的命令
    表示只有管理员(也就是root用户)可以执行的命令,普通用户执行就会报错
  • 系统默认存在的内置命令
    基本上各种系统版本中都会默认存在的命令
    有些特殊命令不同版本系统需要下载才能执行
系统内置命令简述说明
  • 内置命令和外部命令区别
    内置命令在系统启动时就调入内存,是常驻内存的,所以执行效率高。
    而外部命令是系统的软件功能,用户需要时才从硬盘中读入内存。

  • 内置命令和外部命令判定
    可以利用以下命令对系统中的命令进行查看,哪些是内置命令哪些是外部命令

    type -  Display information about command type
    说明:用来判定命令类型
    
    [root@oldboyedu ~]# type cd
    cd is a shell builtin
    说明:表示cd命令就是一个内置命令
    
    [root@oldboyedu ~]# type mkdir
    mkdir is /usr/bin/mkdir
    说明:显示了mkdir命令文件路径信息,就表示此命令为外部命令
  • 内置命令汇总
    以下表格按照命令字母顺序进行排序说明

序号 命令 描述
01 alias 用于查看系统与设置系统别名功能
02 bg 将服务进程任务放到后台进行运行
03 bind 显示当前关键字与函数的绑定情况,或将关键字与readline函数或宏进行绑定。
04 break 在脚本文件循环配置中,从最内层循环跳出
05 builtin 运行一个内置Shell命令,并传送参数,返回退出状态0。当一个函数与一个内置命令同名时,该命令将很有用
06 cd 在系统中进行目录结构切换
07 caller caller命令返回当前活动的子程序调用的上下文,即调用堆栈信息,包括shell函数和内建命令source执行的脚本
08 command 即使有同名函数,仍然执行该命令。也就是说,跳过函数查找
09 compgen 定义shell命令信息补全功能
10 complete 定义shell命令信息补全功能
11 compopt 定义shell命令信息补全功能
12 continue 跳出脚本中本地循环,继续后续循环操作
13 declare 显示所有变量,或用可选属性声明变量
14 declare 显示所有变量,或用可选属性声明变量
15 dirs 显示当前记录的目录,和pwd功能类似
16 disown 从任务表中删除一个活动任务。
17 echo 可以将信息输出到屏幕中,类似于开发中的print
18 enable 启用或禁用Shell内置的命令
19 eval 把参数读入Shell,并执行产生的命令。
20 exec 运行命令,替换掉当前Shell
21 exit 退出当前Shell状态
22 export 对环境变量信息进行声明
23 false 定义执行结果是否为假,即提示失败信息
24 fc 历史的修改命令,用于编辑历史命令
25 fg 把后台服务进程放到前台
26 getopts 解析并处理命令行选项
27 hash 控制用于加速命令查找的内部哈希表
28 help 显示关于内置命令的有用信息。如果指定了一个命令,则将显示该命令的详细信息
29 history 将命令行曾经输入过的命令进行列表显示
30 jobs 显示放到后台的进程任务
31 kill 将运行中的进程任务进行杀掉,即停止
32 let 用来计算算术表达式的值,并把算术运算的结果赋给变量
33 local 用在函数中,把变量的作用域限制在函数内部
34 logout 退出登录Shell
35 mapfile 是从标准输入读取一行行的数据,然后每一行都赋值给一个数组的各元素
36 popd 从目录栈中删除项
37 printf 将信息输出到屏幕,功能类似echo,但功能更强大
38 pushd 向目录栈中增加项
39 pwd 打印出当前的工作目录
40 read 从标准输入读取一行,保存到指定变量中
41 readonly 将指定变量设为只读,不允许重置该变量
42 return 从函数中退出,并指定退出后返回函数执行的状态值
43 set 设置选项和位置参量
44 shift 将位置参量进行左移
45 shopt 用于显示和设置shell中的行为选项,通过这些选项以增强shell易用性
46 source 立即加载系统部分文件中的配置信息
47 suspend 终止当前Shell的运行(对登录Shell无效)
48 test 检查文件类型,并计算条件表达式
49 times 显示由当前Shell启动的进程运行所累计用户时间和系统时间
50 trap 可以接受用户操作信号,并可以对操作信号进行相应处理
51 true 定义执行结果是否为真,即提示成功信息
52 type 显示命令的类型,例如:pwd是Shell的一个内置命令
53 typeset 同declare。设置变量并赋予其属性。
54 ulimit 显示或设置进程可用资源的最大限额
55 umask 用户文件关于属主、属组和其他用户的创建模式掩码,与数据权限设置有关
56 unalias 用于取消指定系统别名功能
57 unset 取消指定变量的值或函数的定义
58 wait 等待前一个操作结束,再执行后续的操作
59 . 执行当前进程环境中的程序。同source
60 : 空操作,返回退出状态0

参考链接:https://www.jianshu.com/p/c507f83c97a2

常见的环境变量

$PATH:决定了shell将到哪些目录中寻找命令或程序

$HOME:当前用户主目录

$MAIL:是指当前用户的邮件存放目录。

$SHELL:是指当前用户用的是哪种Shell。

$HISTSIZE:是指保存历史命令记录的条数

$LOGNAME:是指当前用户的登录名。

$HOSTNAME:是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。

$LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。

$PS1:是基本提示符,对于root用户是#,对于普通用户是$,也可以使用一些更复杂的值。

$PS2:是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符。

$IFS:输入域分隔符。当shell读取输入时,用来分隔单词的一组字符,它们通常是空格、制表符和换行符。

$0:shell脚本的名字。

$#:传递给脚本的参数个数。

$$:shell脚本的进程号

变量加载文件

文件信息:/etc/profile

临时修改PATH环境变量方法:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin;/新增命令所在文件夹

永久设置:

配置环境变量和别名文件:

在/etc/profile中加入

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin;/新增命令所在文件夹

如何设置命令别名:

alias命令查看系统的别名设置

临时设置别名的语法: alias 别名名称='命令信息'

例:alias catnet='cat /etc/sysconfig/network-scripts/ifcfg-eth0'

查看隐藏文件命令:

[root@krist ~]# ls -la
total 36
dr-xr-x---.  2 root root 4096 Jul 11 00:05 .
dr-xr-xr-x. 19 root root 4096 Jul 14 00:32 ..
-rw-------.  1 root root 1867 Jul 10 23:23 anaconda-ks.cfg
-rw-------.  1 root root 1578 Jul 13 22:53 .bash_history
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile
-rw-r--r--.  1 root root  176 Dec 29  2013 .bashrc
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc

永久设置别名的方法:

在/etc/bashrc里加入修改别名的命令

~/.bashrc ~= ~/.bash_profile 在这两个文件配置仅针对此用户生效

/etc/bashrc ~= /etc/profile 在这两个文件配置代表全局生效,即每个用户都生效

系统登录提示文件

登录之前进行提示

/etc/lssue

/etc/lssue.net

登录之后进行提示:可以对操作系统用户注意事项进行说明

/etc/motd

如何清空文件内容

echo "" > /etc/issue
>/etc/issue
linux系统中安装软件的几种方法
一、rpm包安装方式

找到相应的软件包,例如soft.version.rpm,下载到本机某个目录,进入所在目录,输入:

​ rpm -ivh soft.version.rpm

安装:
  rpm –ivh rpm的软件包名

rpm参数 参数说明
  -i 安装软件
  -t 测试安装,不是真的安装
  -p 显示安装进度
  -f 忽略任何错误
  -U 升级安装
  -v 检测套件是否正确安装
  这些参数可以同时采用。更多的内容可以参考RPM的命令帮助。

卸载:

​ rpm -e 软件名

需要注意的是,卸载使用的是软件名,而不是软件包名。另外,在Linux中还提供了象GnoRPM、kpackage等图形化的RPM工具,使得整个过程会更加简单。

命令作用 命令
查看某个服务是否有安装 rpm -qa |grep httpd
安装软件的命令格式 rpm -ivh filename.rpm
升级软件的命令格式 rpm -Uvh filename.rpm
卸载软件的命令格式 rpm -e filename.rpm
查询软件的描述信息的命令格式 rpm -qpi filename.rpm
列出软件的文件信息的命令格式 rpm -qpl filename.rpm
查询文件属于哪个rpm的命令格式 rpm -qf filename
二、deb包安装方式

找到相应的软件包,例如soft.version.dev,下载到本机某个目录,进入所在目录,输入:

​ dpkg -i soft.version.deb

deb包管理器dpkg一般只出现在Debian Linux中,与RPM十分类似。

安装:

​ dpkg -i deb的软件包名

卸载:

​ dpkg -e 软件名

查询:查询当前系统安装的软件包

​ dpkg -l '*软件包名*'

dpkg命令解释 命令 示例
安装软件 dpkg -i filename.deb dpkg -i avg71flm_r28-1_i386.deb
安装一个目录下所有的软件包 dpkg -R dpkg -R /usr/local/src
释放软件包但不进行配置
如果和-R一起使用,参数可以是一个目录
dpkg -unpack package_file dpkg –unpack avg71flm_r28-1_i386.deb
重新配置和释放软件包
如果和-a一起使用,将配置所有没有配置的软件包
dpkg –configure package_file dpkg –configure avg71flm_r28-1_i386.deb
删除软件包(保留其配置信息) dpkg -r dpkg -r avg71flm
替代软件包的信息 dpkg –update-avail packages-file
合并软件包信息 dpkg –merge-avail packages-file
从软件包里面读取软件的信息 dpkg -A package_file
删除一个包(包括配置信息) dpkg -P
清除所有的Uninstall的软件包信息 dpkg –forget-old-unavail
删除软件包的Avaliable信息 dpkg –clear-avail
查找只有部分安装的软件包信息 dpkg -C
比较同一个包的不同版本之间的差别 dpkg –compare-versions ver1 op ver2
显示帮助信息 dpkg –help
显示dpkg的Licence dpkg –licence
显示dpkg的版本号 dpkg –version
建立一个deb文件 dpkg -b direc×y filename
显示一个deb文件的目录 dpkg -c filename
显示一个deb的说明 dpkg -I filename [control-file]
搜索deb包 dpkg -l package-name-pattern dpkg -l vim
显示所有已经安装的deb包,同时显示版本号以及简短说明 dpkg -l
报告指定包的状态信息 dpkg -s package-name dpkg -s ssh
显示一个包安装到系统里面的文件目录信息 dpkg -L package-Name dpkg -L apache2
搜索指定包里面的文件(模糊查询) dpkg -S filename-search-pattern
显示包的具体信息 dpkg -p package-name dpkg -p cacti

参考:https://www.cnblogs.com/li-mei/p/5832099.html

三、源代码包安装方式(编译安装)

找到相应的软件包,如soft.tar.gz或tar.bz2等压缩包源码,下载到本机某个目录,进入所在目录

tar.gz安装方式:

​ tar -zxvf soft.tar.gz //一般会在当前目录生成一个soft目录
tar.bz2安装方式
​ tar -xjvf soft.tar.bz2 //一般会在当前目录生成一个soft目录

​ cd soft
​ ./configure
​ make & make install

安装:

  1) 取得应用软件:通过下载、购买光盘的方法获得;
  2)解压缩文件:一般tar包,都会再做一次压缩,如gzip、bz2等,所以你需要先解压。如果是最常见的gz格式,则可以执行:“tar –xvzf 软件包名”,就可以一步完成解压与解包工作。如果不是,则先用解压软件,再执行“tar –xvf 解压后的tar包”进行解包;
  3) 阅读附带的INSTALL文件、README文件;
  4) 执行“./configure”命令为编译做好准备;
  5) 执行“make”命令进行软件编译;
  6) 执行“make install”完成安装;
  7) 执行“make clean”删除安装时产生的临时文件。
  好了,到此大功告成。我们就可以运行应用程序了。但这时,有的读者就会问,我怎么执行呢?这也是一个Linux特色的问题。其实,一般来说, Linux的应用软件的可执行文件会存放在/usr/local/bin目录下!不过这并不是“放四海皆准”的真理,最可靠的还是看这个软件的 INSTALL和README文件,一般都会有说明。

卸载:

  通常软件的开发者很少考虑到如何卸载自己的软件,而tar又仅是完成打包的工作,所以并没有提供良好的卸载方法。
  那么是不是说就不能够卸载呢!其实也不是,有两个软件能够解决这个问题,那就是Kinstall和Kife,它们是tar包安装、卸载的黄金搭档。

四、apt安装方式(安装deb包)

使用apt-cache search soft查找软件,soft是你要找的软件的名称或相关信息,找到后用apt-get install soft.version命令安装软件

apt-get是debian,ubuntu发行版的包管理工具,与红帽中的yum工具非常类似。apt-get命令一般需要root权限执行,所以一般跟着sudo命令例sudo apt-get xxxx

命令 作用
apt-get install packagename 安装一个新软件包
apt-get remove packagename 卸载一个已安装的软件包(保留配置文件)
apt-get --purge remove packagename 卸载一个已安装的软件包(删除配置文件)
apt-get autoremove 因为apt会把已装或已卸的软件都备份在硬盘上,所以如果需要空间的话,可以让这个命令来删除你已经删掉的软件
apt-get autoclean 定期运行这个命令来清除那些已经卸载的软件包的.deb文件。通过这种方式,可以释放大量的磁盘空间。如果需求十分迫切,可以使用apt-get clean以释放更多空间。这个命令会将已安装软件包裹的.deb文件一并删除
apt-get clean 这个命令会把安装的软件的备份也删除,不过这样不会影响软件的使用
apt-get upgrade 更新所有已安装的软件包
apt-get dist-upgrade 将系统升级到新版本
apt-cache search string 在软件包列表中搜索字符串
apt-cache showpkg pkgs 显示软件包信息
apt-cache stats 查看库里有多少软件
apt-cache dumpavail 打印可用软件包列表
apt-cache show pkgs -cache pkgnames 打印软件包列表中所有软件包的名称
dpkg只能安装已经下载到本地机器上的deb包. apt-get能在线下载并安装deb包,能更新系统,
且还能自动处理包与包之间的依赖问题,这个是dpkg工具所不具备的
五、yum安装方式(安装rpm包)

rpm包的安装有个很大的缺点就是文件的关联性太大,有时装一个软件要安装很多其他的软件包。为此RedHat开发了yum安装方法,他可以彻底解决这个关联性的问题,只要配置两个文件即可安装,安装方法是:yum -y install 。yum并不是一种包,而是安装包的软件,相当于一个软件集合的仓库。

rpm 只能安装已经下载到本地机器上的rpm 包. yum能在线下载并安装rpm包,能更新系统,
且还能自动处理包与包之间的依赖问题,这个是rpm 工具所不具备的
命令 作用
yum repolist all 列出所有仓库
yum list all
yum list all 列出仓库中所有软件包
yum info 软件包名称 查看软件包信息
yum install 软件包名称 安装软件包
yum reinstall 软件包名称 重新安装软件包
yum update 软件包名称 升级软件包
yum remove 软件包 移除软件包
yum clean all 清除所有仓库缓存
yum check-update 检查可更新的软件包
yum grouplist 查看系统中已经安装的软件包组
yum groupinstall 软件包组 安装指定的软件包组
yum groupremove 软件包组 移除指定的软件包组
yum groupinfo 软件包组 查询指定的软件包组信息
yum list updates mysql* 查找mysql的更新
yum groupupdate 软件包组 更新某个组件的所有软件包
yum list available/updates/installed/recent 列出仓库中所有可用的软件包/列出仓库中比当前系统更新的软件包/列出已安装的软件包/列出新加入仓库的软件包

参考:https://www.jb51.net/LINUXjishu/32188.html

Wget命令详解

Wget支持http,https,ftp,file(本地文件)等协议
Wget命令的安装
yum install wget
Wget命令的使用方法
Wget http://www.baidu.com/dd/1.jpg 从百度网络路径下载1.jpg文件到当前目录
Wget –O /etc/yum.repos.d/ http: //mirrors.aliyun.com/repo/epel-6.repo 下载文件到指定目录
Wget –c 网址 断点续传
Wget --spider 网址 测试是否能正常访问
Wget --mit-rate=100k –O /etc/yum.repos.d/ 网址 限制下载的速度
Wget --no-check-certificate 网址 wget下载时,某些资源必须使用--no-check-certificate选项,不检查证书
使用wget实现ftp下载时:Wget --file-user=USERNAME –file-password=PASSWORD FTP地址

创建yum源

1)本地源配置方法:

Yum源类型
http://
https://
ftp://
file:///
本地源配置
mkdir /tmp/luo /mnt/11
mount /dev/cdrom /mnt/11
cp –a /mnt/11/ /tmp/luo
vi /etc/yum.repos.d/CentOS-Media.repo
编辑源文件CentOS-Media.repo
[c7-media] name=CentOS-$releaserver - Media
baseurl=file:///tmp/luo/
enabled=1
gpgcheck=0
FTP源配置
baseurl=ftp://FTP地址/centos7
网络源配置
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
baseurl=http://mirror.centos.org/centos/7/os/x86_64/

baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

2)网络源配置方法:

备份原始yum源文件

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载新的CentOS-Base.repo到/etc/yum.repos.d/

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

运行 yum makecache 生成缓存

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:DDblog » Linux云计算系统学习第五天

分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

立即登录   注册

DD博客

联系我们每天好心情
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活