本文讲述使用Linux系统需要了解的部分知识。上一篇是:Linux基础知识2--install Linux
三、使用系统
基础知识、文件与目录、进程、Linux文献
1.Installing software on Linux
(安装前均需要先su -切换到root用户);
1)从压缩包安装:tar zxvf application.tar.gz; cd application; ./configure; make; su-; make install;
tar包安装、卸载的搭档有:Kinstall和Kife;
tar.gz包安装流程如上,tar.gz2解压命令改为:tar-xjvf software.tar.bz2
2)apt-get command *:apt-get是debian,ubuntu发行版的包管理工具,与Redhat中的yum工具类似;一般需要root权限;
apt-cache search soft:在网络上查找soft指定的软件
apt-get install soft:安装一个新的软件包
3)dpkg:deb包安装方式,流程如下:进入安装包.deb所在目录,执行dkpg -i software.version.deb;
Debian Linux提供的一个包管理器,与RPM类似,但由于RPM出现得更早,所以后者更加常见,前者只出现在Debian Linux中。
安装:dpkg -i deb的软件包名
卸载:dpkg -e 软件名
查询:dpkg -I '*软件包名*',查询当前系统安装的软件包,如:dpkg -I '*software*'
4)aptitude:与apt-get一样,是Debian及其衍生系统中功能极其强大的包管理工具。与apt-get比较,aptitude在处理依赖问题上更佳。
语法:aptitude install packagname
5)yum+rpm:rpm是Linux的一种软件包名称,以.rpm阶位,安装语法为rpm -ivh;rpm有个很大的缺点是文件的关联性太大,有时安装一个软件需要很多其他的软件包,比较麻烦,所以Redhat开发了yum安装方法,可以彻底解决这个关联性的问题,只需要配置两个文件即可安装。安装方法是:yum -y install;
yum并不是一个包,而是安装包的软件;
简单地说,rpm只能安装本地的rpm包,yum则能在线下载并安装rpm包,能更新系统,还能自动处理包之间的依赖问题;
6)rpm:全称是redhat package manager
rpm -q -a,查询已经安装的rpm包,-q代表query,-a代表all
rpm -ivh package-name:安装软件,参数如下:
-i安装软件; -t 测试安装,不是真的安装;-p显示安装进度;-f 忽略任何错误; -U升级安装; -v 检测套件是否正确安装;
-h,即hash。包档如果没有被解包, 打印50个破折号.配合-v使用可以
使得有更好的展示.
rpm -e package-name:卸载,注意,-e后面的是软件名,而不是软件包名;如要安装software-1.2.3-1.i386.rpm这个包是,应执行:rpm -ivh software-1.2.3-1.i386.rpm,而卸载时应执行:rpm -e software
注:在不同类别的Linux发行版上,安装软件的方式是不同的,如Centos中使用RPM包,而Debian使用deb包(Ubuntu属于debian系)
补充1:bin文件安装,如果下载的软件名为soft.bin,一般是个可执行文件,安装方法如下:su -成root;chmod +x soft bin;./soft.bin;即可;
补充2:Linux下软件的安装主要有两种形式,一种安装文件名为filename.tar.gz,使用tar方式安装,另一种是filename.i386.rpm,使用rpm方式安装;
Multi-user and Multi-tasking
Linux是一个多用户、多任务的操作系统,多个用户可以同时运行多个任务,彼此独立;
在使用系统之前总是需要先登录:验证username和password;
有多种登录方法:
console:Directly attached keyboard,mouse,monitor;即通过控制台登录;
serial terminal:串行端口,即命令行窗口;
network connection:通过网络连接登录,即远程登录方式;
虚拟终端(virtual terminal)
大多数的Linux发行版,其控制台都模拟了很多虚拟终端;
每一个虚拟终端都可以被视为一个分离的、直接附着的控制台:即不同的用户可以使用不同的虚拟终端;
Typical setup:VT 1-6:命令窗口;VT 7:图形窗口;
VT切换使用:Alt-Fn或者Ctrl-Alt-Fnin X(即X-window,如果没理解错的话)
Linux终端切换:
1.查看当前终端:fgconsole
2.终端切换:chvt n (n=终端的名字)
3.快捷键切换终端:CRTL+ALT+FN(1-6是终端,7是图形界面)
PS:emmm试了下Ubuntu和centos7,发现两个系统下面,快捷键切换必须都使用Ctrl+Alt+FN+键盘最上面的Fn键,而在centos7中,F1表示图形界面,2-6是命令窗口,7只有光标在闪;而Ubuntu中,1-6都是命令窗口,7是图形界面;
Linux命令
在Linux系统中,所有事情都可以通过命令行做到。而GUI,即X-window并不是运行一个OS必要的。
为了键入命令,必须先打开了一个终端模拟器,即命令窗口。
命令提示符:可以自行配置; $表示普通用户,#表示root用户
命令语法:
格式:$ command options(s) argument(s)
例如:$ ls; $ ls -l; $ ls /dev; $ ls -l /dev
一些基础的Linux命令:
passwd:改变密码
mkpasswd:生成随机密码
date, cal:找到今日的date,以及展示日历
who, finger:找到现在系统中的active用户(在Ubuntu和centos中,finger需要另外安装才行,使用sudoapt install finger即可 )
clear:清空屏幕
echo:直接输入echo后面的文本
write, wall, talk; mesg:向指定用户、所有用户、指定用户,终端发送mesg(消息);
……
2.文件与目录
1) what is a file?
-一个数据的集合
-一个可读、可写又或者既可读又可写的对象。文件拥有确定的属性,包括访问权限和类型;
2)文件结构:
通常:字节流、记录序列、记录树
Linux:字节流
3)文件类型:
常规文件:文本或者Code数据;没有特殊的内部结构;
字符特殊文件(character special file)
块特殊文件(block special file):
特殊文件代表硬件或逻辑设备;通常在/dev中;字符特殊文件通常是装置文件中的串行端口设备,如键盘、鼠标等一次性读取设备;块特殊设备表示装置文件中的可供储存的接口设备(可随机存取装置);
socket,即套接口文件:socket,又名“套接口”,用于描述IP地址和端口,应用程序是通过套接字向网络发送请求或者应答网络请求;
符号链接文件:类似Windows中的快捷方式;
目录:内容的表;目录内文件的列表;
4)目录结构:
所有Linux目录被包括在一个虚拟的unifiedfile system,即统一文件系统;
物理设备被挂载在挂载点上:软盘、硬盘分区、CD-ROM驱动器
没有像A:,C:….这样的驱动器盘符(???这是什么鬼意思)
6)与目录有关的命令:
pwd:print working directory,即输出当前目录(注意pwd不是密码的意思)
cd:change directory
mkdir:make directory,即创建目录
rmdir:remove directory,即删除目录
ls:list the contents of directories,有-l,-a,-R options
7)与文件有关的命令:
touch:update the access and/or modification time of a files(创建文件使用这个命令,格式为:touch + 文件名)
cp:copy files
mv:move and rename files
ln:link files
rm:remove files
cat:print file contents
more/less:displat files page by page
8)file permission文件权限
文件权限帮助用户保护自己的文件,避免系统中其他用户的操作;
三种读取级别:user、group、others,即文件拥有者(/文件创建者)、文件拥有者所在组、其他用户;
三种权限:rwx,即read(r)、write(w)、execute(e)
read:读取文件内容或列举目录内容
write:改变文件内容或创建和删除目录中的文件
execute:执行文件或use directory as active directory(个人理解是可以对目录内所有文件进行execute???具体不清楚)
使用ls -l查看目录内文件权限情况:
改变文件/目录权限:
第一种——模式命令:chmod <who operator what> filename
who:u=owner of file; g=group; o=other users on the system;a=all(owner+group+others)
operator:+=add permission; -=remove permission; ==clear permissions and set to mode specified
what:r=read; w=write; x=execute;
第二种——数字命令:
rwx分别用数字4,2,1表示,对于u,g,o这些不同的用户,将代表其权限的数字累加(如果有这个权限,就用数字加到结果上,如当前用户对file有rw权限,但是没有x权限,那么计算结果为:4+2+0=6),命令:chmod num1 num2 num3 filename
(num1,2,3之间没有空格,分别代表了u,g,o对当前file的权限)
默认的文件权限:新建文件和目录的默认权限如下:
File:-rw-r--r-- 644
Directory: drwxr-xr-x 755
Editing files
vi/emacs/gedit….编辑器
3.Linux进程
1)what is a process?
进程是一个任务;
进程是一个正在执行的程序实例。由执行程序、它的当前值、状态信息以及通过操作系统管理此进程执行情况的资源组成;
从更小的角度看,进程是由一个地址空间和在这个地址空间内执行的一个或多个线程,以及这些线程所需要的系统资源组成;
一个正在运行的程序就是一个进程的实例;
shell是一个读取命令然后启动适当进程的进程,比如:echo $$
2)Starting and Stopping a Process
所有的进程都是由其他进程启动的,也就是Parent/Child关系。只有一个例外:init(即PID为1的进程)是由Linux内核自身启动的。这是一个树层次结构;
一个进程可以由两个原因而终止:
当任务结束时,进程终止自身;
进程被来自其他进程的信号所终止;
3)基本命令:
ps:报告当前系统的进程状态。
pstree:display a tree of processes
jobs,fg,bg,<ctrl-z>:job controlling
kill:删除执行中的程序或工作;
nohup:run a command, ignoring hangup signals
nice,renice;
top:display top CPU processes;实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理;在top命令执行过程中可以使用一些单字母的交互命令;
4)Daemons,即守护进程
即永不停止的进程,通常是一个控制系统资源的系统进程,如打印机队列,或执行网络服务;
4.Linux文献--如何寻求帮助?:
1)"man" command:使用man命令可以阅读命令的手册;手册被存储在/usr/man;
手册由以下组成:名称(Name)、概要(Synopsis)、描述(Description)、文档(Files)、Bugs、see also;
手册分为8个章节:User Commands; Systemcalls; Libc calls; Devices; File formats and protocols; Games;Conventions,macro packages and so forth; System adminstation;
要选定正确的章节来进行搜索,添加章节号到命令,如:
man 1 passwd, man 5 passwd
2)"info":有时候作为手册替代;存储在/usr/info
info的一些命令:
space:next screen of text
delete:previous screen of text
n:next node
p:previous node
u:up node
q:quit info
<tab>:skip to next menu item
补充:info page是information page的缩写,主要是针对GNU tools的帮助文档的查看,通常情况下得到的帮助信息会比man page上面显示的要新一些。背景是90年代,GNU项目认为man page得到的信息已经过时,开发了info命令来替换man命令;
3)其他:
command --help
HOWTO Documentation
Refer to Internet