天天看点

Linux命令,Shell编程

第3讲:Linux客户端与Linux服务器的链接

1.确认Linux服务器IP地址

2.客户端(Windows)ping Linux服务器

如果不通,分析原因:

2.1查看Linux服务器防火墙是否关闭

2.2查看网络连接

3.putty客户端的配置

3.1通过设置IP地址,起别名连接到Linux服务器;

3.2设置putty的字体,change settings;设置字符集(UTF-8);保存设置

4.winscp客户端的配置

5.Reboot重启 shutdown -h now 关机

第4讲:如果客户端无法连接到wmware(linux)的解决方法

1.关闭Linux服务器

2.通过vmware->edit->vitual network…

重置网络配置

3.Windows上ping Linux服务器

第5讲:Linux磁盘分区及文件类型

dev代表硬件设备所在的目录

1.hd代表ide设备(ide硬盘)

Sd代表scsi设备(scsi硬盘)

a、b、c标示不同的磁盘

1、2、3、4代表不同的分区

2.一块硬盘最多有四个主分区(第一个分区叫做hda1,第二个叫做hda2)逻辑分区是 在扩展分区的基础上进行的

第一个逻辑分区是从“hda5”开始的,前面的留给了主分区

把四个主分区中的一个主分区拿出来当成扩展分区,在扩展分区的基础上划分了逻辑分区

U盘是FAT32单个文件不能超过2g,NTFS没有要求

第6讲:Linux命令分类与命令格式

1.Linux的命令需要解释器去解释(/bin/bash)

2.Linux命令的格式:

命令字 【选项】 【参数】

3.tab、clear、ctrl+U(清空至首行)、Ctrl+k(清空至行尾)、Ctrl+L(清屏)、Ctrl+C(取 消本次命令编辑),\(强制换行)

4.帮助命令 help man –help

第7讲:目录操作命令

1.目录操作命令

pwd cd ls mkdir du

2.创建目录命令

mkdir创建新的目录

mkdir[-p]//-p用于创建多级目录 mkdir -p test4/subtest/subsubtest

3.du用于统计目录及文件的空间占用情况

格式:du [选项]… [目录或文件名]

-a:统计时包括所有的文件,而不仅仅只统计目录

-h:以更易读的字节单位(K、M等)显示信息

-s:只统计每个参数所占用的空间的总的大小

第8讲:文件操作命令

1.which、find

which查找命令或文件,但其只是在制定范围之内查找(该范围由PATH环境变量 指定)

find查找文件或目录,根据用户指定的范围来进行查找

格式:find [查找范围] [查找条件]

常用选项: -name -type -user

find /home -name file2//在home下查找名字为file2 的文件

2.ln链接//看视频,第8讲:文件操作命令

2.1符号链接(软链接)

命令ln -s /home/file2 test2是在test2 目录下写的,而test2目录下没有名为 test2 的文件,所以就把file2复制到test2下,并起别名为test2

1.软链接可以给文件或目录创建链接,类似于Windows的快捷方式

2.使用格式:ln -s 源文件或源目录 目标(起别名)

注意:源文件或源目录一定要使用绝对路径(如果不适用绝对路径ln -s file1 test1 则复制到test1下的file1在winscp中打不开,有红 色标记)

ln -s /home/tesst1 test2/subtest1

3.软链接下,一旦把源文件或源目录删掉之后,目标文件或目录(快捷方式) 将不可使用(删除目标文件或目录则对源文件没有影响)

2.2硬链接

可以不适用绝对路径

1.硬链接格式:ln 源文件 目标(起别名)

2.硬链接只可给文件创建,不可目录创建

3.硬链接类似于复制

4.硬链接删除源文件之后对目标文件无任何影响(但修改源文件或目标文件时, 目标文件或源文件也会改变)

第9讲:文件操作命令

1.Touch

创建空文件或更新文件时间标记(mkdir是创建文件夹)

touch 文件1 文件2

2.file 查看文件类型

3.cp 复制文件或目录(在Linux系统中,cp = “cp -i”)

格式:cp 【选项】… 源文件或目录… 目标文件或目录

-r :递归复制整个目录树

-p: 保持原文件的属性不变

-f:强制覆盖目标同名文件或目录

-i:需要覆盖文件或目录时进行提醒

redhat下cp = ‘cp -i’

4.rm删除文件或目录

-f:强行删除文件或目录,不进行提醒

-i:删除文件或目录时提醒用户确认

-r:递归删除整个目录树

5.mv移动文件或目录(如果目标位置与源位置相同,则相当于改名)

格式:mv 【选项】… 源文件或目录… 目标文件或目录

以最后一个为目标,其他都为源

mv test1 file1 test 将test1 file1移到test下

第10讲:文件内容操作命令

1.cat查看文件内容

cat file

2.more & less查看文件

more空格翻页,enter下一行,q退出

less q 退出并清屏

3.grep 查找文件内容

gerp 查找内容 文件

ex: gero rm file2

-i 忽略大小写

-v 反转查找

“^…”以什么什么开头

“…”以什么什么结尾  

   “^”空行

grep “^12” file2|grep “d$” //在开头是12的基础下查找以d结尾的

第11讲:压缩命令与Vim编辑器

1.文件压缩命令

tar 选项(jcf jxf)

格式:压缩:tar jcf *.tar.bz2 源文件

解压:tar jxf *.tar.bz2 -C 解压的目标目录

2.Vim编辑器

i进入编辑模式

esc退出到末行

:wq保存并退出

:q!不保存并退出

第12讲:用户账户管理

1.区分用户的权限:

超级管理员root,普通用户,程序用户

2.理解Linux上组与用户的关系

3.存放用户信息的文件:/etc/passwd

存放用户密码的文件:/etc/shadow

4.useradd,userdel,usermod,passwd

U

userdel -r bob 连宿主目录一块删

若用:userdel bob 不加r则只能删除用户,而在创建用户时创建的目录无法删除

usermod:-l更改用户账号的登录名称

-L锁定用户账户

-U解锁用户账户

注意:

1.通过useradd创建用户时,默认普通用户家目录在home下

2.通过useradd -d创建用户时,指定的家目录,只能指定到home一级之下

第13讲:组帐号管理

1.添加组账号groupadd

像组内添加成员 gpasswd(-a -d -M)

2.删除组groupdel

3.理解usermod、useradd与选项-g(基本组) -G(附加组)的结合使用

注意:当一个组是某些用户的基本组时,需要把用户移走或删除,方可删除该 组

当一个组是某些用户的附加组时,(即改组不是某些用户的基本组)可以 直接删除该组

用户ID与组ID没有关系,都是默认的

一个组作为其他用户的基本组,则这个用户不可删,必须要把改组下的用户删了,才可删

一个组作为其他用户的附加组,则可删

第14讲:文件目录的归属于权限(1)

访问权限

读取:允许查看文件内容,显示目录列表

写入:允许修改文件内容,允许在目录中新建、移动、删除文件或字幕了

可执行:允许运行程序、切换目录

归属(所有权)

属主:拥有该文件或目录的用户账号

属组:拥有该文件或目录的组帐号

1.chmod

用于修改文件(或目录)的权限

修改权限的方式有:chmod(ugoa)(+-=)(rwx)

chmod mmm file(或dir)

-R:递归修改指定目录下的所有文件、子目录的权限

2.chown

用于修改文件(或目录)的归属

格式:chown 所有者:所有组 文件或目录

案例:chown :root file 解释:讲file文件的所属组,改为root

如果需要递归修改目录的所有权限,通过-R去修改

第15讲:文件目录的归属于权限(2)

1.set位权限

用途:为可执行(有x权限的)文件设置,权限字符为“s”

其他用户执行该文件时,将拥有属主或属组用户的权限

Set位权限的类型

SUID:表示对属主用户增加set位权限

SGID:表示对属组内的用户增加set位权限

作用:让其他用户临时拥有所有者或所属组的权限

例如:passwd命令,root用户可以给所有用户重置密码,而普通用户只能通 过passwd给自己重置密码

chmod u+s /user/bin/passwd 给普通用户加s权限(普通用户临时拥有了该文件的所有者的权限)

chmod ug+s /user/bin/passwd 给组加s权限(普通用户临时拥有了该文件所有组的权限)

2.粘滞位权限

用途:为公共目录(例如:权限为777的)设置,权限字符为“t”

用户不能删除该目录中其他用户的文件

所有用户都可以在该目录下创建文件、目录

其他用户可以查看其他用户创建的文件或目录,但不可以互相编写或删除

设置set位、粘滞位权限

set位:chmod ug+s

Chmod 4(2、6)nnn

粘滞位权限:chmod o+/-t

Chmod 1nnn

chmod mnnn 可执行文件。。。。(m为4时对应SUID,2时对应SGID,1时对应粘滞位, 可叠加)

变成1777后(加上粘滞位权限),bob和tmp才可使用UserTmp目录

ftp就是粘滞位的应用

第16讲:Linux系统的启动流程

1.理解Linux 的启动过程

开机自检(BIOS)->MBR引导->GRUB菜单->启动内核->INIT进程(读取/etc/inittab)

2.inittab文件的作用

3.Runleve的级别,3(字符界面,默认),5(开机界面)

可通过修改/etc/inittab来设置开机的级别

可以此种方式将其转换为字符界面

也可以直接敲init3转换为字符界面

第17讲:运行级别控制

1. chkconfig –list 服务吗

2. chkconfig –leve nnn 服务名(on|off)

第18讲:Linux进程管理Ctrl+C

1. 理解进程与程序的区别

2. 查看静态进程信息

ps(aux|elf)

3. top

动态查看进程的排名

4. pgrep

作用:根据特定条件查询进程的pid

条件有:l(详细)、U(用户)、t(终端)

5. pstree

作用:树形结构显示各个进程之间的关系

-u -a -p

6.Ctrl +C与Ctrl +Z的区别

Ctrl +C中断进程;Ctrl+Z停止进程,并在后台挂起

Ctrl+Z与命令jobs fg的关系

6. 终止进程

Ctrl +c、kill、killall(-9)、pkill

区分:kill、killall是针对pid去查杀进程

Pkill是根据筛选条件查杀进程 –U -t

第19讲:计划任务管理

1.任务分为一次性任务(at)与周期性任务(crontab)

2.地洞atd与crond服务的命令

service atd(crond) start(stop|restart|status)

/etc/init.d/atd(crind) start(stop|restart|status)

3.at

编写一次性任务:at [hh:mm] [yyyy-mm-dd]

查询一次性任务:atq

删除一次性任务:atrm

4.Crontab

编写计划任务:crontab -e

查看计划任务:crontab -l

删除计划任务:crontab -r

备注:如果需要给特定的用户创建周期性任务需要【-u user】

默认不加-u是给自己创建周期性任务

Ex:root给leo用户创建一次性任务 root用户登录系统 crontab -e -u leo

5.crontab任务的配置格式:

分钟,小时,日期,月份,星期 +命令文件(或命令行)

分钟:0~59

小时:0~23

日期:1~31

月份:1~12

星期:0~7(0,7代表周日)

* 表示该范围内的任意时间

, 表示间隔的多个不连续的时间点

- 表示一个连续的时间范围

/ 指定间隔的时间频率

放在/etc/init.d/下的是服务

Service atd status 查看atd的状态

/etc/init.d/atd start 启动atd服务,推荐使用这个方法

/etc/init.d/atd stop

/etc/init.d/atd status

例题:

1.创建用户,用户名称为John(密码为:123456)

2.使用root用户登录系统,在home目录下创建文件(file)

3.将file文件的拥有着(所有者)改为John,且所有用户都拥有读,写,执行权限

4.在home目录下创建1目录,该目录为嵌套子目录(test/subtest)

修改该test目录的权限,使其及其下子目录的全部用户拥有的权限均为读写执行 的权限

修改该test目录的所有者,仅仅改变test目录的所有者为John,子目录不变

5.在home目录下创建一个公共目录tmp

5.1创建1用户为leo,使John与

5.2可以互相查看对方创建的文件,但不可以删除

5.3leo创建的文件授权John可以修改

Crontab -e给当前用户制定

第20讲:

1.通过crontab -e 省略-u

是给当前用户设计周期性任务,所有周期性任务都在一个以用户命名的文件中(/var/spool/cron/*)

2.通过crontab -e -u 用户名 可以给其他用户设计周期性任务

3.用户权限的切换

su

50 7 * * * service sshd start

50 22 * * *

* * /5 * rm -rf /var/ftp/pub

30 7 * * 6 service htttpd restart

30 17 * * * 1,3,5 tar jcf___

55 23 * * 0 bin/cp /etc/passwd /home/jerry/pwd.txt

第21讲:用户家目录的维护

问题描述:如果遇到登陆系统出现 -bash-3.2$情况,怎么解决

1.从/etc/skel将所有文件cp至相应用户的家目录下

2.修改cp过来的文件权限

第22讲:磁盘管理1

1.首先关闭电源(有的服务器不用)挂载硬盘

2.fdisk -l查看硬盘分区情况(可看到新的硬盘并未被分区)

3.Fdisk /dev/sdb(sdb根据你挂载硬盘的数量与类型变化)

m查看帮助命令

n添加新的分区

p打印分区表

w保存分区表并生效

d删除某个分区

4.文件系统格式化

sdb1已经变为ext3,已经格式化了,可用

mkfs -t ext3(ext4) /dev/sdb1

第23讲:磁盘管理(2)

1.案例:如果swap(虚拟内存)

1.1查看swap空间 free | grep -i swap

1.2mkswap /dev/sdb1(创建交换分区)

1.3swapon /dev/sdb1(启用新的交换分区)

1.4swapoff /dev/sdb1(停用新的交换分区)

第28讲:

history –c 清楚的只是当前用户使用的命令,之前的不会删

第32讲:shell脚本的高级管理(1)

练习:每个3天对数据库目录做一次完整的备份

要求:统计/home/mysql目录占用的空间大小,日期,并记录到临时文件/home/tmp.txt中

练习:

批量创建20个用户,小于10(stu01 stu02)的用户,大于10的用户(stu10,stu11)

继续阅读