现在的位置: 首页 > 综合 > 正文

4、Linux的日常使用

2018年02月05日 ⁄ 综合 ⁄ 共 7630字 ⁄ 字号 评论关闭

系统安装完成后,使用root用户进入系统:

进入系统后,默认使用的是用户的个人目录(也叫做用户的home目录),可以使用:pwd 命令显示当前的工作目录。root用户的个人目录(home目录)是/root

用户的home目录属于用户个人,对用户是可读可写的。我们应该养成好的习惯,个人的文件保存到个人的home目录,便于日后的查找和管理。根目录下还有很多其他目录,查看某个目录下的文件和目录,使用 ls 命令

因为root用户的权限太大,一般使用不要使用root用户,建立一个一般用户,必要时在转换为root用户。建立用户的命令:useradd username,设置密码命令:passwd username

对于root用户的个人目录,是保存在跟目录下,即/root,而对于一般用户,其个人的目录是保存在/home目录下的。

通过ls -l /home,可以看到,在/home目录下有一个redhat子目录,这个目录属于用户redhat和组redhat,权限是700,只对用户可读写执行。

退出系统(相当于windows的注销)使用:exit 命令。然后使用新建的redhat用户登录。

在用户的home目录下,自动创建了几个隐藏文件,是用户的配置文件。其中.bash_profile和.bashrc是初始化用户登录环境的配置文件,如果想对用户进行特殊配置,在这个文件中设置。.bash_logout是用户退出系统时自动执行的脚本(配置)文件。

如果想使用超级用户(root),则可以使用 su - 命令,转换为超级用户,退出当前超级用户环境,使用exit命令,查看当前用户,使用whoami命令。

注意超级用户的提示符是“#”,一般用户是“$”。

关于linux的目录结构:

linux文件系统的最顶端是/,我们称/为Linux的root,也就是 Linux操作系统的文件系统。Linux的文件系统的入口就是/,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。
1. /
/目录也称为根目录,位于linux文件系统目录结构的顶层。在很多系统中的唯一分区。如果还有其他分区,必须挂在到/目录下某个位置。整个目录结构呈树型结构,因此也称为目录树。
2. bin
bin是binary的缩写,bin目录为命令文件目录,也称为二进制目录。包含了供系统管理员及普通用户使用的重要的linux命令和二进制(可执行)文件,包含shell解释器等,该目录不能包含子目录。
3. boot
boot目录,该目录中存放系统的内核文件和引导装载程序文件。例如:RHEL5的内核文件:vmlinuz-2.6.18-8.el5xen。
4. dev
dev是device(设备)的缩写。也称设备(device)文件目录,这个目录下是所有Linux的外部设备,存放连接到计算机上的设备(终端、磁盘驱动器、光驱及网卡等)的对应文件,包括字符设备和块设备等,其功能类似DOS下的.sys和Win下的.vxd。在Linux中设备和文件是用同种方法访问的。例如:/dev/hda代表第一个物理IDE硬盘。
5. etc
etc目录存放系统的大部分配置文件和子目录。X Window系统的文件保存在/etc/X11子目录中,与网络有关的配置文件保存在/etc/sysconfig子目录中。该目录下的文件由系统管理员来使用,普通用户对大部分文件有只读权限。etc是来源于拉丁语全称etcetera,表示等等之人(或物)。

/etc下有几个重要的子目录:

/etc/init.d
这个目录是用来存放系统或服务器以System V模式启动的脚本,这在以System V模式启动或初始化的系统中常见。比如Fedora/RedHat;
/etc/xinit.d
如果服务器是通xinetd模式运行的,它的脚本要放在这个目录下。有些系统没有这个目录,比如Slackware,有些老的版本也没有。在Rehat/Fedora中比较新的版本中存在。
/etc/rc.d
这是Slackware发行版有的一个目录,是BSD方式启动脚本的存放地;比如定义网卡,服务器开启脚本等。
/etc/X1
这是X-Windows相关的配置文件存放地。

6. home
home目录中包含系统上各个用户的主目录,子目录名称即为各用户名。
7. lib
lib目录下存放了各种编程语言库。典型的linux系统包含了C、C++和FORTRAN语言的库文件。用好这些语言开发的应用程序可以是使用这些库文件。这就使软件开发者能够利用那些预先写好并测试过的函数。/lib目录下的库映像文件可以用来启动系统并执行一些命令。目录/lib/modules包含了可加载的内核模块。/lib目录存放了所有重要的库文件,其他的库文件则大部分存放在/usr/lib目录下。其作用类似于Windows里的.dll文件
8. lost+found
lost+found目录,这个目录平时是空的,在EXT2或EXT3文件系统中,当系统意外崩溃或机器意外关机,产生的一些文件碎片放在这里。在系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方法来修复,或者移动文件到运来的位置上。有点类似于DOS下的.chk文件
9. opt
opt目录表示的是可选择的意思,有些软件包也会被安装在这里,某些第三方应用程序通常安装在这个目录。
10. root
root目录为系统管理员的主目录。
11. usr
usr目录是linnux系统中最大的系统之一,很多系统中,该目录是最为独立分区挂载的。该目录中主要存放不经常变化的数据,以及系统下安装的应用程序目录。
12. mnt
mnt目录主要用来临时挂载文件系统,为某些设备提供默认挂载点,如floppy,cdrom。这样当挂载了一个设备如光驱时,就可以通过访问目录/mnt/cdrom下的文件来访问相应的光驱上的文件了。
13. proc
proc目录是一个虚拟的文件系统,该目录中的文件是内存中过的映像。可以通过查看该目录中的文件过去有关系统硬件运行的详细信息,例如使用more或者less命令查看/proc/interrupts文件以获取硬件中断(IRQ)信息,查看/proc/cpuinfo文件以获取CPU的型号、主频等信息。
14. sbin
s就是Super User的意思,sbin目录下保存系统管理员或者root用户的命令文件。/usr/sbin存放了应用软件,/usr/local/sbin存放了通用的根用户权限的命令。
15. tmp
tmp目录存放了临时文件,一些命令和应用程序会用的到这个目录。该目录下的所有文件会被定时删除,以避免临时文件占满整个磁盘。
16. var
var目录以及该目录下的子目录中通常保存经常变化的内容,如系统日志、邮件文件等。

16. initrd
系统启动时的临时目录

想要查看目前系统中分区的情况,使用df 命令,df命令显示了当前系统各个分区使用情况,包括总的大小,已经使用和还剩余的空间。可以使用df -h使结果更容易阅读。

df命令不能显示每个目录的大小,想要查看每个目录的使用情况,使用du命令,du -sh /* 查看根目录下所有目录的使用情况。


可以看到,根目录一共使用了2.3G,/usr目录用了2.2G,可见大部分软件系统都安装在/usr下。

想要查看磁盘的分区情况使用 fdisk -l /dev/hd? 命令

如果使用的硬盘支持DMA,可以查看或启动DMA,命令hdparm  /dev/hd? 使用 hdparm -d0  /dev/hd?可以关闭DMA选项,使用hdparm -d1 /dev/hd? 可以打开DMA选项

注意看using_dma项。

我们可以将这条命令写在/etc/rc.local,这个文件是系统初始化的脚本文件。在系统启动自动执行、运行的任务都要写进这个文件,是提供给系统管理员自定制系统开机启动程序使用的,在linux启动的最后阶段,系统会执行存于rc.local中的命令。

下面开始检查网络情况。

使用ping 命令测试网络的连通性:ping cn.redhat.com  测试的结果:ping unknown host cn.redhat.com,无法解析主机名称,这有可能是我们的DNS服务器配置的有问题,查看DNS的配置,配置文件为:/etc/resolv.conf,这个文件中保存了DNS的配置信息

可以使用more /etc/resolv.conf查看文件内容

查看网络配置的命令:ifconfig——(interface config)

ifconfig默认打印当前机器所有的网络接口的配置信息。一般在我们的物理机器上,有一个网卡,显示就应该有eht0和lo两个接口的信息,eth表示以太网网卡,0表示第一个,第二个就应该是eth1,lo是回环设备,是本地的一个永远的连接,ip固定为127.0.0.1,ifconfig后可以直接跟接口设备:

如果要修改接口设备的ip地址等信息,如这里的eth0IP地址,可以使用netconfig,这时一个文本模式的图形界面,

选择Yes,出现

这里可以配置Ip地址,网络掩码,默认网关,主命名服务器,也可以使用DHCP自动获取。这个配置信息并没有马上修改我们设备的ip地址,我们需要使用service network restart
命令来从新启动网络服务,以使配置信息起作用。

查看默认路由:route -n 命令,

这里可以看到,默认网关是192.168.1.1。

ifconfig命令除了显示网络接口配置信息,也可以修改网络地址:

ifconfig命令如果没有使用后面的netmask,则使用默认的掩码,如192.168.1.X是C类地址,默认掩码就是255.255.255.0,如果使用10.0.0.X,默认就是255.0.0.0,是A类地址。

使用ifconf配置ip后在使用route命令查看路由,会发现默认网关被删除了。

使用route命令手工添加默认网关:route add default gw 192.168.1.1

default表示是默认网关,即到达任何目的网络都要经过这个网关,gw表示网关,后边紧跟网关的地址。

ifconfig和route命令配置的信息并没有马上写入配置信息文件中,当系统重新启动时信息就消失了,这主要用于手工调试机器用,为了保存配置信息,使用netconfig,这主要是因为netconfig将配置信息保存在了配置文件中。

系统的网络配置脚本都存放在/etc/sysconfig/network-scripts目录下,这下面有所有网络接口的启动和关闭配置脚本


可以看到ifcfg-开头的文件,netconfig命令就是将配置信息写在这些文件中。文件名后面是相应的设备。

上面我们使用ifconfig将网络地址改为了192.18.1.26,然后我们看一下ifcfg-eth0的内容:

可以看到配置文件中的地址依然是192.168.1.25。ONBOOT表示这个地址系统启动时就自动激活,BOOTPROTO表示接口启动时的特征,有static,和dhcp或none。使用service network restart命令本质上就是加载这里的配置文件,把配置文件中的信息加载进当前的环境中。重启网络:

可以看到,网络配置信息又回到了192.168.1.25了。所以我们修改网络地址,有时可以直接手工修改ifcfg-eth0这个文件就可以了。修改完毕后,使用service network restart就行了。

在配置网卡时,有个问题要注意,在/etc/sysconfig目录下有network-scripts和networking两个子目录,使用netconfig修改的network-scripts目录下的ifcfg-eth0配置文件,redhat还有一个命令neat,这个命令会自动的把网络配置资料写到另外一个目录就是networking目录下的profiles子目录,而且这个目录是优先。当使用neat命令配置网卡后,再次使用netconfig命令就会失效,必须手工清除networking/profiles目录下的文件才可以。

还可以使用redhat的工具集,在命令行输入redhat-config-后连续按两次tab键

其中redhat-config-network-tui就是文本模式的图形配置界面,这就是neat-tui,这两个是一个工具。输入neat-tui后:

两个选项,一个是编辑设备的,一个是编辑DNS的,选择第一项:

这里将27改为29,OK保存,在选择编辑DNS:

增加一个dns:202.102.129.68

保存,

对于RHEL5.4,没有了netconfig命令,只有neat-tui命令,使用neat-tui命令配置网络后,

network-scripts下的ifcfg-eth0没有了,变成了ifcfg-eth,同时在networking目录下的子目录中也存在同样的文件:

具体目录:/etc/sysconfig/networking/profiles/default,这个目录下也有一个resolv.conf,保存dns信息。

一个疑问:这两个目录下的文件到底哪一个优先呢?

做了一个实验,修改一个目录下的配置文件,重新启动网络服务,修改另一个目录中的配置文件,重新启动网络服务,发现不管修改哪个文件,重新启动后都生效了,是不是这两个文件本身就是一个?。

然后学习用户的环境情况。

用户的语言环境:locale命令

使用locale -a选项,可以列出LANG所支持的所有选项,LANG是语言的定义

重新设置LANG,查看显示的不同:

LANG的配置信息保存在/etc/sysconfig/i18n里面:

使用LANG=命令,配置信息并没有写进i18n文件中:

在/etc/sysconfig目录中,主要存放大部分的服务器程序配置文件,以及系统启动的初始化脚本配置文件。

如:hwconf文件中存放有当前设备的所有硬件信息,是由系统的硬件检查器检测到的硬件信息。安装系统时有个工具:kudzu,能够自动检查我们的硬件配置资料,形成hwconf文件,如果计算机使用了一段时间,增加了新硬件,想让系统自动检测新硬件,使用命令:service kudzu start,kudzu是一个开机自运行脚本,每次开机即使没有新硬件也会运行。


如果不希望每次开机都启动这个脚本,可以关闭。

修改系统的启动脚本,可以使用chkconfig 服务名称 --list,如chkconfig kudzu --list,

可以看到,kudzu在级别3~5上自动开启。

可以使用setup命令来调整相应服务的启动,setup是一个综合的设置配置工具,启动setup,出现如下画面:

可以看到,setup可以配置认证信息、防火墙、键盘、网络、系统服务、时区和X配置项(图形模式)。

选择第一项,进行认证信息配置:有多种认证方式

对于防火墙:

对于网络配置,直接启动neat-tui工具,对于服务配置,如下:

带星符号的都是系统启动时自动运行的服务,可以通过去掉星号禁止启动时运行。

可以使用chkconfig --list显示所有的服务启动项信息:以下是在实验的机器上此命令所列的服务:

可以看到,kudzu服务在使用setup去掉配置后,其在级别3上是off,在4和5级别上依然是on。

上面列出的服务都是靠系统初始化命令init启动的,它们都有0~6一共7种运行状态(级别),而最后面列出的xinetd based services后的服务是一些特殊的服务,它们不是靠init启动的,他们是依靠xinetd启动的,xinetd是一个独立的互联网服务器的服务器,是一个超级服务器,它可以启动很多子服务。xinetd本身是一个系统服务,可以看到它在3~5上是自启动的,只要xinetd服务启动,它就能启动它所管理的子服务。通过上图可以看到xinetd所管理的子服务都是off状态,如果要使其自动运行,使用chkconfig
服务名 on
命令激活。

再看一下:

使用service xinetd restart命令重新启动xinetd服务,就会启动tftp子服务。

init命令启动的所有服务的脚本都放在一个目录/etc/init.d下:

在/etc/init.d目录下的服务都有7种状态:0~6一共7种运行级别。我们运行service xinetd restart本质上就是运行/etc/init.d下的相应服务脚本。而xinetd又会检查自己的配置目录,它的配置目录是/etc/xinetd.d:

这个目录下包含了所有xinetd管理的子服务的所有配置脚本文件,文件中保存了服务的启动状态。chkconfig tftp on命令本质上就是修改了/etc/xinetd.d/tftp文件中的相应状态。看下面的画面:

修改后:

系统的7个运行级别,本质上/etc/rc?.d,即/etc/rc0.d、/etc/rc1.d、/etc/rc2.d、/etc/rc3.d、/etc/rc4.d、/etc/rc5.d、/etc/rc6.d,查看一下:ls /etc/rc?.d

所列出的是相应的服务,其中以K打头的是不启动的,如果服务启动过,那就杀死,以S打头是启动的。

/etc/rc?.d这7个目录实际上是7个符号链接,它们具体指向如下:

/etc/rc?.d实际指向/etc/rc.d/rc?.d目录,ls -l /etc/rc.d/rc3.d

可以看到,这些目录中的文件全部都是符号链接,实际位置是/etc/rc.d/init.d。例如我们配置的kudzu服务,

看一下所有的:

所有7个运行级别中的脚本都是指向同一个文件/etc/init.d/kudzu文件。

运行的级别可以使用runlevel命令来检查。

当前运行的级别是3,说明当前运行的脚本都是来自/etc/rc3.d。

注意一个服务sshd,做远程服务管理的,是使用加密传输的,安全性比较好,telnet是明文传输,不安全。

我们怎样知道现在运行到哪个级别,应该运行哪个目录下的脚本呢?也就是什么时候需要相应的目录呢?这可以参考/etc/inittab文件,这是系统初始化的主要配置文件。就是init要使用的配置脚本,查看文件内容:

配置的第一行   id:3:initdefault:   表明系统默认会进入级别3

配置的第二行   si::sysinit:/etc/rc.d/rc.sysinit  表明系统初始化是运行/etc/rc.d/rc.sysinit这个脚本来做的。

进入相应的运行级别目录,是通过l?:0:wait::/etc/rc.d/rc ? 来进入的。

关于系统服务的配置,还有一个快速工具就是ntsysv:

可以看到,就是setup命令中service config项启动的工具。

抱歉!评论已关闭.