Linux OS 学习笔记(1)
1. root
1)由普通用户进入root
首先,要允许 su 到 root,在当前用户(系统安装时建立的用户及密码)终端输入:sudo passwd
2)退出root权限:
3)关闭root登录
修改如下文件:
$vim /etc/sudoers/
赋予某个用户root权限。如:用户sysadmin。确保在编辑上述文件时使用的用户是系统已有的用户。找到下面这行:
root ALL=(ALL) ALL
增加一行:
root ALL=(ALL) ALL
sysadmin ALL=(ALL) ALL
关闭通过SSH直接访问root,需要再次打开sshd_config,找到下面这行:
#PermitRootLogin yes
更改为:
PermitRootLogin no
然后保存文件,重启sshd守护进程使改动生效:
sudo /etc/init.d/sshd restart
1)export命令:
#export $NODE_PATH=/opt/node-v7.8.0-linux-x86/lib/node_modules
可用命令export查看是否设置成功:
...
declare -x PATH="/opt/node-v7.8.0-linux-x86/lib/node_modules"
export的效力仅及于该次登陆操作。
命令 export $PATH="路径”(或“PATH=$PATH:路径”) ($PATH为环境变量名,如DVSDK;调用时用$DVSDK)可以把这个路径加入环境变量,但是退出这个命令行就失效了。要想永久生效,需要把这行添加到环境变量文件里。有两个文件可选:“/etc/profile”和用户主目录下的“.bash_profile”,“/etc/profile”对系统里所有用户都有效,用户主目录下的“.bash_profile”只对这个用户有效。与DOS/Window不同,UNIX类系统环境变量中路径名用冒号分隔,不是分号。
2)修改profile文件:
#vi /etc/profile
在里面加入:export PATH="$PATH:/opt/au1200_rm/build_tools/bin"
3) 修改.bashrc文件:
# vi /root/.bashrc
在里面加入:export PATH="$PATH:/opt/au1200_rm/build_tools/bin"
后两种方法一般需要重新注销系统才能生效,最后可以通过echo命令测试一下:
# echo $PATH
3. Linux下源码的安装
Linux下源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install).
1)configure
Configure 是一个脚本,可通过命令查看具体信息:
./configure -help
--prefix=PREFIX install architecture-independent files in PREFIX [/usr/local] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [same as prefix]
其他的参数不管,重点关注上述--prefix参数。使用这个参数可将软件安装到--prefix参数后指定的路径中,方便管理和移植.
2)编译
make
3)安装
make install
以上操作都是在源文件目录里进行.
4. echo命令
看了别人的介绍已经十分详细,传送门如下:
1)echo基础输出:http://www.zsythink.net/archives/96,http://www.cnblogs.com/ZhangShuo/articles/1829589.html
2)echo输出带格式字符:http://www.zsythink.net/archives/111
5. ssh_config和sshd_config配置文件
SSH(Secure Shell)是专为远程登录会话和其他网络服务提供安全性的协议。现在远程管理linux系统基本上都要使用到ssh,原因很简单:telnet、FTP等传输方式是以明文传送用户认证信息,本质上是不安全的,存在被网络窃听的危险。利用SSH协议可以有效防止远程管理过程中的信息泄露问题,透过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。ssh_config和sshd_config都是ssh服务器的配置文件,前者是针对客户端的配置文件,后者则是针对服务端的配置文件。
1)ssh_config文件参数
带“#”表示该句为注释不起作,该句不属于配置文件原文,意在说明下面选项均为系统初始默认的选项。说明一下,实际配置文件中也有很多选项前面加有“#”注释,虽然表示不起作用,其实是说明此为系统默认的初始化设置。
"Host"只对匹配后面字串的计算机有效,“*”表示所有的计算机。从该项格式前置一些可以看出,这是一个类似于全局的选项,表示下面缩进的选项都适用于该设置,可以指定某计算机替换*号使下面选项只针对该算机器生效。
"ForwardAgent"设置连接是否经过验证代理(如果存在)转发给远程计算机。
"ForwardX11"设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAY set)。
"RhostsAuthentication"设置是否使用基于rhosts的安全验证。
"RhostsRSAAuthentication"设置是否使用用RSA算法的基于rhosts的安全验证。
"RSAAuthentication"设置是否使用RSA算法进行安全验证。
"PasswordAuthentication"设置是否使用口令验证。
"FallBackToRsh"设置如果用ssh连接出现错误是否自动使用rsh,由于rsh并不安全,所以此选项应当设置为"no"。
"UseRsh"设置是否在这台计算机上使用"rlogin/rsh",原因同上,设为"no"。
"BatchMode":批处理模式,一般设为"no";如果设为"yes",交互式输入口令的提示将被禁止,这个选项对脚本文件和批处理任务十分有用。
"CheckHostIP"设置ssh是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为"yes"。
"StrictHostKeyChecking"如果设为"yes",ssh将不会自动把计算机的密匙加入"$HOME/.ssh/known_hosts"文件,且一旦计算机的密匙发生了变化,就拒绝连接。
"IdentityFile"设置读取用户的RSA安全验证标识。
"Port"设置连接到远程主机的端口,ssh默认端口为22。
“Cipher”设置加密用的密钥,blowfish可以自己随意设置。
“EscapeChar”设置escape字符。
2)sshd_config文件参数
"Port"设置sshd监听的端口号。
"ListenAddress”设置sshd服务器绑定的IP地址。
"HostKey”设置包含计算机私人密匙的文件。
"ServerKeyBits”定义服务器密匙的位数。
"LoginGraceTime”设置如果用户不能成功登录,在切断连接之前服务器需要等待的时间(以秒为单位)。
"KeyRegenerationInterval”设置在多少秒之后自动重新生成服务器的密匙(如果使用密匙)。重新生成密匙是为了防止用盗用的密匙解密被截获的信息。
"PermitRootLogin”设置是否允许root通过ssh登录。这个选项从安全角度来讲应设成"no"。
"IgnoreRhosts”设置验证的时候是否使用“rhosts”和“shosts”文件。
"IgnoreUserKnownHosts”设置ssh daemon是否在进行RhostsRSAAuthentication安全验证的时候忽略用户的"$HOME/.ssh/known_hosts”
"StrictModes”设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。
"X11Forwarding”设置是否允许X11转发。
"PrintMotd”设置sshd是否在用户登录的时候显示“/etc/motd”中的信息。
"SyslogFacility”设置在记录来自sshd的消息的时候,是否给出“facility code”。
"LogLevel”设置记录sshd日志消息的层次。INFO是一个好的选择。查看sshd的man帮助页,已获取更多的信息。
"RhostsAuthentication”设置只用rhosts或“/etc/hosts.equiv”进行安全验证是否已经足够了。
"RhostsRSA”设置是否允许用rhosts或“/etc/hosts.equiv”加上RSA进行安全验证。
"RSAAuthentication”设置是否允许只有RSA安全验证。
"PasswordAuthentication”设置是否允许口令验证。
"PermitEmptyPasswords”设置是否允许用口令为空的帐号登录。
"AllowUsers”的后面可以跟任意的数量的用户名的匹配串,这些字符串用空格隔开。主机名可以是域名或IP地址。
6. /etc/fstab
当Linux系统下划分了新的分区后,需要将这些分区设置为开机自动挂载,否则,Linux是无法使用新建的分区的。 /etc/fstab 文件负责配置Linux开机时自动挂载的分区。
该文件包含六个域:
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/hda1 / ext3 errors=remount-ro 0 1
/swapfile swap swap defaults 0 0
/dev/hdc /media /cdrom0 udf,iso9660 user,noauto 0 0
1)设备名称(file system )
这里用来指定你要挂载的文件系统的设备名称或块信息,也可以是远程的文件系统。可以是实际分区名,也可以是实际分区的卷标(Lable)。如果磁盘是SATA接口,且有多个磁盘,则每个磁盘被标记为 /dev/hda 、 /dev/hdb、 /dev/hdc 等以此类推;而每个磁盘的分区被标记为 /dev/hda1、 /dev/hda2等。如果磁盘是SCSI类型,则多个磁盘会被分别标记为 /dev/sda、/dev/sdb等等。分区同理。如果使用标签来表示,则格式如:1 LABLE=/
2)默认挂载点
创建挂载点方法如下:
# mkdir /mnt/hda1 创建挂载/dev/hda1分区的目录;
# chmod 777 /mnt/hda1 打开权限,所有用户可读可写可执行;
执行完了以上两步就可以在/etc/fstab里使用这个挂载点了。
3)文件系统类形。如果想了解你的kernel目前支持哪些文件系统,可以查看/proc/filesystems的内容。
Linux file systems: ext2, ext3, jfs, reiserfs, reiser4, xfs, swap.
Windows:
vfat = FAT 32, FAT 16
ntfs= NTFS
Note: For NTFS rw ntfs-3g
CD/DVD/iso: iso9660
Network file systems:
nfs: server:/shared_directory /mnt/nfs nfs <options> 0 0
smb: //win_box/shared_folder /mnt/samba smbfs rw,credentials=/home/user_name/winbox-credentials.txt 0 0
auto: The file system type (ext3, iso9660, etc) it detected automatically. Usually works. Used for removable devices
(CD/DVD, Floppy drives, or USB/Flash drives) as the file system may vary on thesedevices.
4)挂载选项
fstab中的第四列表示设备或者分区所需要的挂载选项。这一列也是fstab中最复杂最容易出错的一列,如果你想知道更多的东西,求助于man。
auto 和 noauto:这是控制设备是否自动挂载的选项。auto是默认选择的选项,这样,设备会在启动或者你使用mount -a命令时按照fstab的内容自动挂载。如果你不希望这样,就使用noauto选项,如果这样的话,你就只能明确地通过手工来挂载设备。
user 和 nouser:这是一个非常有用的选项,user选项允许普通用户也能挂载设备,而nouser则只允许root用户挂载。nouser是默认选项,这也是让很多 Linux新手头疼的东西,因为他们发现没有办法正常挂载光驱,Windows分区等。如果你作为普通身份用户遇到类似问题,或者别的其他问题,就请把 user属性增加到fstab中。
exec 和 noexec: exec允许你执行对应分区中的可执行二进制程序,同理,noexec的作用刚好相反。如果你拥有一个分区,分区上有一些可执行程序,而恰好你又不愿意,或者不能在你的系统中执行他们,就可以使用noexec属性。这种情况多发生于挂载Windows分区时。exec是默认选项,理由很简单,如果 noexec变成了你/根分区的默认选项的话……
ro: 以只读来挂载文件系统。
rw: 以可读可写的属性来挂载系统。
sync 和 async:对于该文件系统的输入输出应该以什么方式完成。sync的意思就是同步完成,通俗点讲,就是当你拷贝一个东西到设备或者分区中时,所有的写入变化将在你输入cp命令后立即生效,这个东西应该立马就开始往设备或者分区里面拷贝了。而如果是async,也就是输入输出异步完成的话,当你拷贝一个东西到设备或者分区中时,可能在你敲击cp命令后很久,实际的写入操作才会执行,换句话说,就是进行了缓冲处理。
有时候这种机制蛮不错的,因为sync会影响你系统的运行速度,但是这也会带来一些问题。想一想,当你希望将一个文件拷贝到u盘上时,你执行了 cp 命令,却忘记执行umount命令(它会强行将缓冲区内容写入),那么你拷贝的文件实际上并没有在u盘上面。如果你是使用的mv命令,而你又很快将u盘拔出……恭喜你,文件会从这个星球上消失的。因此,虽然async是默认属性,但是对于u盘,移动硬盘这种可移动存储设备,最好还是让他们使用sync选项。
defaults: 所有选项全部使用默认配置,包括rw, suid, dev, exec, auto, nouser, 和 async。
一般用户没有特殊需求,直接使用defaults就可以了。看完介绍,我们再回过头去看看前面的示例内容,以光驱为例,主要关注挂载选项这里,可以看到,光驱和其他分区设备的不同是ro,因为普通光驱是只读的。而exec则让你可以从光驱上直接执行某些程序。
5)dump:能否被dump备份命令作用:dump是一个用来作为备份的命令。
通常这个参数的值为0或者1。0:代表不要做dump备份;1:代表要每天进行dump的操作;2:代表不定日期的进行dump操作
6)fsck选项,告诉fsck程序以什么顺序检查文件系统,为0就表示不检查,(/)分区永远都是1,其它的分区只能从2开始,当数字相同就同时检查(但不能有两1),
参考:http://lspgyy.blog.51cto.com/5264172/1297432;http://diamonder.blog.51cto.com/159220/282542;http://www.cnblogs.com/qiyebao/p/4484047.html