操作系统变量概念
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 生成缓存
评论前必须登录!
立即登录 注册