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

【Linux】Linux命令学习(笔记二)

2013年09月19日 ⁄ 综合 ⁄ 共 5564字 ⁄ 字号 评论关闭

 

suaLinux账户管理】

1, 怎样登入Linux主机?当你输入账号密码系统怎么判断呢?

1)先寻找 /etc/passwd 文件里有木有这个账号

没有:跳出

有:将跟该账号对应的UID 与 GID 读出来,还有 shell设定与家目录(home)

2)再寻找 /etc/shadow 文件里对应的 GID跟UID 密码是不是符合

符合:登入系统

不符合:跳出

root的 UID 跟 GID均为 0

2, passwd 的构造

第一栏:账号名称

第二栏:密码(由于将密码搬到etc/shadow 中就用 x代替)

第三栏:UID

第四栏:GID 跟/etc/group 文件有关

第五栏:说明

第六栏:家目录

第七栏:shell 沟通人类下达命令与硬件之间真正动作的界面!

3, shadow 的构造

第一栏:用户名

第二栏:密码(密码栏第一个字符为 * 表示用户不用来登陆)就是说管理员只要在“不听话”的账号密码前加一个 * 他就登陆不上了!

【root密码忘记了怎么办?】

Single 模式登陆进入 /etc/shadow 文件编辑将密码清空:登陆后用 passwd再设定密码就可以了。

第四栏:上次更改密码的日期。15274为累计天数

第五栏:密码需要变更的天数

第六栏:以后的都不重要了…………囧囧囧

4, /etc/group 与 /etc/gshadow简介

群组名称密码群组ID 支持的账号名称

了解下就行了

5, 增加使用者的一般步骤

Groupadd –g 600 test //-g 是自行设置GID大小

Groupdel test

Useradd -u 666 -g 600 -d /home2 -s bash tian

// UID 666 属于GID为600的群组 -d 说明家目录 -s 说明 shell

//此外使用useradd 时候系统会自动的将 /etc/skel 复制为家目录要想增加家目录下面的东西只需要在使用 useradd 之前更改 /etc/skel

6, 关于账号变更时间、密码长度、密码最小值、UID_MIN、GID_MAX的设定在/etc/login.defs

关于useradd 命令的情况及其设定在文件 /etc/default/useradd

7, passwd 命令的使用

查看其存放位置:which passwd ls –l `which passwd`存放在/usr/bin/passwd

Passwd root 根据提示更改密码

8, sudo 执行root用户才能执行的命令

sudo vi /etc/shadow但是需要输入使用者的密码而不是 root密码

9,查询账户的 UID GID (除了在 /etc/passwd /etc/group中直接查看)

Id root

Finger root //查询相关信息

Groups //直接输入就可以看到当前用户所属的群组

【一, 例行性命令】定时做的任务

1, 关于使用图形化设置界面命令的解答

ntsysv //打开界面

如果 RedHat 提示找不到命令的话,应该是变量设置的问题!

解决方法如下:

1) 先在命令行中输入
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin:
回车
这样你可以临时恢复环境变量设置,
然后就可以用了。想一直有用的话
#或者$ cd ~
vi .bashrc或者vi .bash_profile
然后把上边那句写进去,好象要加点什么吧。
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin$PATH
下次使用bash的时候就生效了。

2) 长久设置(没有解决)

2, at 用法(一次性执行的命令)

【】/etc/crontabcron服务会每分钟读一次这个文件跟下面的文件

【】当你下达命令时候,命令会写在:/var/spool/cron目录中自动创建一个以用户名命名的文档记下命令

【】执行的记录放在:/var/log/cron

1)at –m time (例如:at -m 10pm 在晚上10点执行****任务执行时屏幕输出结果)

-m //表示屏幕输出执行结果

time格式:04:20 2011-11-03; 4pm+3 days;三天后的下午4点执行

1am May 30 //5月30 凌晨1点执行

写上时间后会出现这个符号>写上要执行的命令 Ctl+D 结束命令

2)atq //查看当前任务

3)atrm number //删除任务这里的number 为任务号 atq可以查看

3,crontab用法(可以循环执行的命令)

参数解析:-l //列出crontab的内容

-e // 编辑crontab

-r //删除crontab的内容(全部删除)

例题:Crontab -e //进入vi编辑界面

59 23 1 5 * mail tianshuai </home/test/lover.txt

解析:分钟/小时/日/月/年(*代表什么都适合)

意义:想要在每年的 5月1号 23:59 发一份信给tianshuai

// */5 每隔5分钟执行一次

收到的mail 会存放在 /var/spool/mail/tianshui 文件内

【二, 程序与资源管理】

1,X-Window只是Linux下的一套软件,不能算操作系统

2,man 命令(系统执行man命令的时候会到 /etc/man.conf中查找 MANPATH而MANPATH存放在 /usr/share/man /usr/local/man中)

, 3,背景工作管理

1) &让命令在背景执行。如:Find / -name test &

2) Ctrl + Z 背景执行不被 Ctrl +C中断(比如:vi 编辑时可以先暂停)

3) Jobs 查询

4) fg number //将暂停的任务拿到前台来执行

5) bg number //将背景中任务由暂停à运行

6) kill number // -9 强制中断进程

7) ps –aux //查看正在执行的系统进程。

重要的一列:STAT:该程序的状态,( R )为可执行的,( S )为该程序正在睡眠中,就是没有执行了,( T )正在侦测或者是停止了,( Z )僵尸程序,就是 zombie 死掉的程序啦!需要以 kill 除去啰!

Ps -l //也可以显示

8) Top 查看进程 //动态查看,每隔5秒刷新

9) Free 查看内存使用情况

10) Uname -a //所有系统信息 -p //CPU信息 -n //列出host name -r//kenel 版本信息

ps –aux | grep crondd

【三, 开机流程与Loader】没仔细看

【四, 原始码与Tarball】

1),File aa.txt //查看文件的类型及相关信息

2),利用Patch 更新原始码

1,原始代码,想更新expatch.old

expatch.old

echo tianshuai

expatch.new

echo tianshuai

echo is a student

2,输入命令查看两个文档不同

diff -c expatch.old expatch.new

输出:

*** expatch.old 2011-11-04 19:42:09.000000000 +0800 //这是等待更新的

--- expatch.new 2011-11-04 20:03:24.000000000 +0800

***************

*** 1 ****

--- 1,2 ----

echo tianshuai

+ echo is a good student //先添加代码

3,vi patch.path

将上述代码拷贝进去

执行命令:patch –p0 < expatch.patch

3),静态链接库 lib***.a

编译行为:整个静态链接库都整合到执行文件

独立执行状态:编译成功后可以独立执行,不必要求读取函数库

升级难度:需要从新编译

动态链接库 lib***.so

编译行为:编译后只指向动态函数库位置,没有整合到执行档中

独立执行状态:不可以独立执行,必要求读取函数库存在且目录不变

升级难度:不需要重新编译

4),验证软件的正确性

MD5sum -bct filename

-b //binary 的读文档方式

-c //检验MD5sun的档案指纹

-t //文字形态读取 MD5sum 的档案指纹

【六,RPM与SRPM套件管理员】

1),RPM (RedHat Package Manager) *******.rpm

安装套件时不需要将套件源码编译,但是一定要跟当初安装的主机的环境一致才可以安装。必须满足套件的相依性属性需求。安装的时候会将套件的信息写入RPM数据库,以便未来的查询、验证、与反安装。

缺点:反安装时,不要把系统底层套件移除,否则会出现问题。

2),SRPM(Source RedHat Package Manager) ********.src.rpm

带源码的套件。就是要想安装需要,编译一下。

好处是,自己可以修改源码后再编译。

3),详解RPM

rpm -i ****.rpm //安装时

-I //安装的意思

-v //显示细节

-h //已安装信息列显示安装进度

rpm -e **** //卸载

提示:can't create transaction lock on /var/lib/rpm/__db.000

原因:没有以root身份登录安装

解决方案:su root 然后安装就可以了

4),linuxqq-v1.0.2-beta1.i386.rpm

套件名版本释放次数适合的硬件平台附文件名

********************制作成功RPM********************************

5)1,下载zxvf rp-pppoe-3.10.tar.gzhttp://www.roaringpenguin.com/pppoe/

2,最好转到root身份下执行 su root

3, cp /home/rp-pppoe-3.10/rp-pppoe.spec /usr/src/redhat/SOURCES/

cp /home/rp-pppoe-3.10.tar.gz /usr/src/redhat/SOURCES/

//需要将配置文件跟压缩包同时拷贝到制作RPM 所需路径下

4, cd /usr/src/redhat/SOURCES/

5,rpmbuild -bb rp-pppoe.spec <==仅编译成 RPM 档案

rpmbuild -ba rp-pppoe.spec <==编译并同时产生RPM 与 SRPM 档案

出现错误:  RPM build errors:

  Installed (but unpackaged) file(s) found:

  解决办法:

  将/usr/lib/rpm/macros 中

  %__check_files /usr/lib/rpm/check-files %{buildroot} 注释掉

步骤:cd /usr/lib/rpm/然后:chmod a+w macros

6,rpm –ivh ******.rpm //安装自己制作的rpm包吧

【七,Tarball跟rpm区别】

Tarball 是原始码,打包成 .tar.gz 解压后含:

1. 原始码2,侦测程序档案(configure/config)3,套件的安装说明(INSTALL或READEME)

2. 但是反安装很麻烦,就是卸载起来不好办。

RPM 是安装包 rpm –ivh ******.rpm 安装即可。可能依赖性比较高!!

【八,核心编译与模块管理】

概念:将核心的原始码编译成binary的可执行文件,成为系统可以认识的执行文件。

下载命令:wget http://aerosol.ev.ncku.edu.tw/~vbird/download/linux-2.4.18.tar.gz

查看内核版本:uname -r

1),核心的编译:要将核心放在这个文件夹下/usr/src/linux

2),如果没有linux 文件夹。直接将解压的kernel 文件夹放到/usr/src目录下。然后cd usr/src/linux***

3),make mrproper //去除已经编译过的文件

4),特别注意:如果你编译两次以上,会有上次编译的模块放到 /lib/modules中

Cd /lib/modules

Mv file file.old

5),make menuconfig //设定 kernel 的选项(这里一定要参照说明,有很多服务还有硬件支持一定要选中)

6),开始编译: make dep //建立相依的属性关系

Make clean //将旧资料去除

Make bzImage //开始编译核心

Make modules //开始编译模块

Make modules_install //将数据安装在 /lib/modules/***中

Make install //将建立的核心安装上

7)安装核心:核心编译完成放在/usr/src/linux/arch/i386/boot/bzImage中了

需要将核心放在/boot目录下

cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.4.18

【九,系统设定常用指令】

1),setup //一个图形化设置界面

2),立即启动服务:启动apache

/etc/rc.d/init.d/httpd start

【十,认识系统服务】

1),vi /etc/services //窗口与服务的对应关系

第一栏:Daemon name

第二栏:daemon 使用的port以及网络数据包传送时的类型

第三栏:服务的说明

Service **** start //启动服务

3),系统开启的服务

netstat -r //显示当前的路由表

netstat -a //显示目前所有网络的联机状态

netstat -t/-u //显示Tcp Udp 封包的状态

netstat -l //仅显示LISTEN的内容

netstat -tlp //得到目前在 LISTEN 的 port 的服务名称

LISTEN:亦即监听状态中的 port

ESTABLISHED:已经建立联机的联机状况

TIME_WAIT:该联机已经是等待的状态

【十一,认识登录档】

Chattr +a filename //文件将不能进行操作

Chattr -a filename //文件恢复操作

Last // 调出登陆日志

抱歉!评论已关闭.