你的位置:首页 > 操作系统

[操作系统]Linux新手扫盲


一. Linux特点

1.免费/开源;

2.支持多线程/多用户;

3.安全性好;

4.对内存和文件管理优越。

 

Linux最小只需4M ——> 嵌入式开发

二. 文件目录

Linux系统所有软硬件都是以文件的形式存在,可以自由设置、挂载、卸载。了解Linux文件目录,是学习Linux的关键。

主要目录

/ :Linux文件系统的上层根目录,主目录。

/root :超级管理员的主目录,存放root用户相关文件。

/home :一般用户目录或FTP站点目录,存放普通用户文件。

/etc :存放系统配置相关文件。

/boot :存放Linux系统启动所需文件,相关引导文件。

/dev :系统设备文件,如:硬盘、打印机。

/mnt :装置文件系统的加(挂)载点。如:光驱、软盘等的挂载目录。

/proc :当前系统核心与程序执行的信息。(process,系统当前运行的进程信息。)

/usr :存放系统应用程序和相关文件,类似于win的Program Files。

/var :存放系统经常变动的文件,如日志文件、用户邮件。

/tmp :系统零时文件目录(如安装程序过程中产生的零时文件),每个用户都可以对他进行读写操作,一段时间不使用系统会自动删除该目录下的文件。

/bin :存放可执行命令的目录,系统任何用户均可执行该目录下的命令。

/sbin :存放系统启动时所需执行的命令的目录,该目录里的命令需要高级权限的用户才可使用。

swap :相当于windows的虚拟内存。

当前目录:pwd

相对路径:指从当前目录去访问某个文件(夹)

绝对路径:指从根目录(/)去访问某个文件(夹)

绿色  ---->代表可执行文件

红色  ---->代表压缩文件

深蓝色---->代表目录

浅蓝色---->代表链接文件

灰色  ---->代表其它的一些文件

三. Linux系统分区

Linux系统分区和windows一样,怎么分,分多大因人而异,基础分区如下:

/      根目录分区(一般大小为分完其他分区后硬盘剩余的总量)

/boot  系统启动、引导分区,大小随意( 最好200+ M)。

swap   相当于win的虚拟内存,大小为内存两倍,最好1024M以上。

分好区后,需要安装软、硬件可直接通过/mnt 挂载上去,不需要的时候再卸载。

(文件挂载先将其转换成ISO格式)

001

四. Linux网络环境的配置

修改IP的三种方法

第一种(在gui视图模式下配置):

  1. 用root身份登录,运行setup 命令进入到text mode setup utility 对网络进行配置,可对IP,子网掩码,网关,DNS设置。
  2. 此操作网卡配置并未生效,需重启网络才生效。

命令:/etc/rc.d/init.d/network restart

 

第二种(快速修改):

  1. ifconfig eth0 x.x.x.x //对网卡进行设置
  2. ifconfig eth0 network x.x.x.x //设置子网掩码

广播地址和dns使用默认的。

注:此操作网络配置会立即生效,但只是临时生效,系统重启会恢复到之前的。

 

第三种(修改最底层的网卡文件内容):

  1. 修改/etc/sysconfig/network-scripts/ifcfg-eth0 这个文件,可修改IP,子网掩码,网关,DNS,广播地址等。
  2. 此操作网卡配置并未生效,需重启网络才生效。

命令:/etc/rc.d/init.d/network restart

 

设置系统日期

  1. data:直接执行,显示系统当前时间。

data MMDDHHMMCCYY.SS

//修改系统时间,后面字母代表:月月日日时时分分年年年年.秒秒

 

  1. 查看日历(calendar)

查看月历:cal 5 2016   //查看2016年5月的月历

查看年历:cal 2016    //查看2016年的整年日历

 

用户的环境变量:/home/用户/.bash_profile

系统环境变量:/etc/profile

配置.bashrc 文件可以指定某些程序在用户登陆的时候自动启动:

对系统某个用户在:/home/用户/.bashrc

整个系统(所有用户):/etc/bashrc

 

Linux启动过程分析

  1. BIOS自检;
  2. 启动GRUB/LILO;
  3. 运行Linux内核并检测硬件;
  4. 运行系统的第一个进程init;
  5. init读取系统引导配置文件/etc/inittab中的信息进行初始化;
  6. /etc/rc.d/rc,sysinit系统初始化脚本;
  7. /etc/rc.d/rcX.d/[KS]* 根据运行级别X配置服务;

终止以K开头的服务,启动以S开头的服务(如下图init为5)

002

  1. /etc/rc.d/rc/local 执行本地配置;
  2. 其他特殊服务。

 

五. 用户管理

添加用户:useradd 用户名(useradd aaa)

设置/修改密码:passwd 用户名(passwd aaa)

添加用户组:groupadd 用户组名(groupadd root123)

 

将用户添加到某用户组:

useradd –g 用户组 用户(useradd –g root123 aaa)

 

修改用户属性(需root权限)

usermod –g 用户组 用户

usermod –d 目录 用户名   //改变用户登陆的初始目录

usermod -s shell类型 用户名

usermod -c 注释 用户名

usermod -u 用户编号 用户名

 

删除用户:userdel aaa (删除用户,但/home下用户主目录文件信息仍存在)

userdel –r aaa (彻底删除用户及用户所有文件信息)

 

查看系统中所有用户:

cat /etc/passwd

 

查看系统所有用户组:

cat /etc/group

 

默认情况下新建一个用户,就会生成一个以该用户名命名的用户组。

 

六. 进程/网络状态管理

进程:

  1. 在Linux中,每个执行的程序成为一个进程,每个进程都分配一个ID号(PID)。
  2. 每一个进程都会对应一个父进程,父进程可以复制多个子进程,如www服务器。
  3. 每个进程都可能一两种方式存在,前台与后台。
  4. 一般系统服务都是以后台进程的方式存在,而且常驻系统中,直到关机才结束。

 

进程与线程:

进程:正在执行的程序。

线程:1. 轻量级的进程;

  1. 进程有独立的地址空间,线程没有;
  2. 线程不能独立存在,它是由进程创建的;
  3. 线程耗费的cpu和内存小于进程。

查看进程:1. ps –aux (当前运行进程,静态)

  1. top (动态监控进程)

003

终止进程:

kill 进程号( PID )

eg:kill 16251     //终止进程号为16251的进程

kill -9 16251   //某些进程不能被杀,使用 -9 参数强制终止进程

 

显示网络状态命令:netstat

此命令用来显示整个系统目前的网络情况。如连接、数据包、路由表内容。

netstat –an 显示所有端口和连接信息(包括远程链接到本机的ip)

netstat –anp 与上面想比,多显示进程号(PID),推荐使用此命令

 

显示数据包经过历程命令:traceroute

此命令用来检测数据包在网络上传输的过程,可显示本机到目标主机所经历路由的完整路径。

traceroute + 参数 + 目标IP或网址   //参数可忽略,相当于win下的tracert。

eg:traceroute www.baidu.com

 

route –n 显示本机网关、路由情况。

 

linux上进程有5种状态:
1. 运行(正在运行或在运行队列中等待)
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

 

ps工具标识进程的5种状态码:
D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process

 

七. 文件管理

文件所有者:

文件是哪个用户创建的,它的所有者就是该用户。

ls –ahl   查看文件所有者

// a代表显示所有,包括隐藏文件;h代表输出文件大小;l代表用长列表显示,显示更详细内容。

 

修改文件所有者:chown 用户名 文件名

修改文件夹所有者:chown –r 用户名 文件夹目录   //Linux中-r 为递归的意思。

 

文件所在组:

文件是哪个用户创建的,它的所在组就是该用户所在组。

ls –ahl   查看文件所在组(如上)

 

修改文件所在组:chgrp 组名 文件名

 

文件和目录权限:

rwx = 421   //读写执行

chmod 777 aaa   //赋予文件aaa最高权限

 

文件赋权执行上面格式即可,下面做详细诠释。

 

chmod u=rwx,g=rx,o=rx aaa

//相当于chmod 755 aaa;u代表user;g代表group;o代表other

chmod u-x,g+w aaa   //给aaa去除用户执行权限,增加用户组写的权限

 

八. 常用命令

Linux运行级别   init [0123456]

运行级别 0:关机           //shutdown –h now也可立即关机

1:单用户

2:多用户状态没有网络服务

4:系统未使用保留给用户

5:图形界面

6:系统重启       //reboot

常用运行级别是3和5,修改系统启动默认的运行级别:

/etc/inittab文件中的id:5:initdefault中的数字。

 

查看用户当前运行级别命令:runlevel 或 who -r

 

若不慎将默认运行级别设置为6,系统将不断重启。

解决:在启动界面按e,进入第二个界面选中第二行按e,然后输入1(以单用户启动,且进入不需要密码,也可用于忘记密码时进入然后重设密码),进入init 1级别用命令改回文件的默认运行级别。

 

Linux常用命令

 

有问题用man命令(manual指南,相当于dos下的help)

eg :#man grep(后直接接命令)

 

ls:查看文件目录,等于dir

ls –l 用长列表显示,显示更详细内容;

ls –a 显示隐藏文件;

ls –h 显示文件大小。

 

重定向命令:

ls –l > a.txt 将显示的内容写入a.txt(覆盖原内容)

ls –al > aa.txt 将现实的内容追加到文件aa.txt的末尾(不覆盖原内容)

 

lsb_release -a   //查看版本信息

uname -a   //可显示电脑以及操作系统的相关信息。

cat /proc/version   //说明正在运行的内核版本。

cat /etc/issue   // 显示的是发行版本信息

touch:创建空文件

mkdir:创建文件夹

vi:编辑文件,当文件不存在时可创建文件

cat:查看文件内容

cp:复制命令

cp –r aaa bbb (递归复制,将aaa文件及子文件复制到bbb)

mv:移动文件或重命名

rm:删除文件

rm –rf * 删除文件夹所有内容(包括目录及子文件)

r 递归   f 强制

ln:建立符号链接,相当于建立快捷方式link。

ln –s 源文件路径 目标文件路径

eg:ln –s /root/abc3.java toabc3

//建立后显示如下(文件属性前会多个l,代表ln命令建立的)

004

more:分页显示文件内容,按空格查看下一页,不可查看上一页内容

less:分页显示文件内容,空格查看下一页内容,上下键也可查看上/下一页内容

grep:显示文本中查找的内容(grep只显示查找的内容,cat显示文本所以内容)

grep –n 显示内容所在行数

|:管道命令,把上一个命令的结果交给 | 后面的命令处理。(一条命令可有多个管道命令)

 

find:文件查找

find 文件路径 –name 文件名

eg:find / -name aaa.txt 全目录查找aaa.txt (路径越详细查找越快)

★ 搜索一段时间内被存取/变更的文件或目录:

find /hoem –amin -10    //查找十分钟内存取的文件或目录

find /hoem –atime -10   //查找十小时内存取的文件或目录

find /hoem –cmin -10    //查找十分钟内更改过的文件或目录

find /hoem –ctime +10   //查找十小时前更改过的文件或目录

find /hoem –size +10k    //查找/home目录下大于10k的文件

a:access 存取   c:change 更改

该查找多用于安全方面,查看黑客在一段时间内动过的系统文件。

 

pwd:查看当前路径

whereis:查找目标文件的路径

whereis ssh   //查看ssh的路径

 

压缩与解压缩

zip(压缩)和unzip(解压缩)

zip(压缩):

  1. zip a.zip aaa //zip后直接接压缩后的文件名,将aaa压缩成a.zip
  2. zip –m a.zip aaa //压缩后删除原文件,将aaa压缩成a.zip并删除aaa
  3. zip –r a.zip aaa //将子目录一起压缩,文件夹aaa及其子目录一起压缩为a.zip(常用)
  4. zip -9 a.zip aaa //-9为压缩率(-1 — -9,-9压缩率最高)

 

压缩当前文件夹,两种方法:

(1)zip –r 111.zip .  //.代表当前文件夹

(2)zip –r 111.zip 文件夹路径/*(eg:zip –r 111.zip /home/*)

unzip(解压缩):

  1. unzip a.zip //解压缩文件a.zip
  2. unzip a.zip –x bbb //不解压某文件,a.zip中除了bbb其他都解压
  3. unzip –z a.zip //查看压缩包内容,也可用“-l”、“-v”查看

将压缩文件解压扫某处:unzip *.zip –d /目录 (如果该目录下没某文件会自动创建)

 

gzip(压缩)和gunzip(解压):

  1. gzip a.gz aaa //压缩
  2. gzip –d a.gz //解压缩

3.gunzip a.gz     //解压缩

 

tar.gz解压:tar -zxvf aaa.tar.gz

 

corntab用于设置周期性被执行的指令,可用于任务调度。

005

终止任务调度:

conrtab –r :终止任务调度

conrtab –l :列出当前有哪些任务调度

 

其他常用命令:

http://www.oschina.net/translate/useful-linux-commands-for-newbies

http://www.tecmint.com/20-advanced-commands-for-middle-level-linux-users/

 

九. Shell

shell,壳,是指“提供使用者使用界面”的软件,将命令解析成机器语言。从作用上说,类似于cmd,接受用户命令然后调用相应应用;从功能上说又类似于bat批处理,可将程序编写成shell执行。

 

shell的分类:

shell名称     开发者     命令名称

Bourne     S.R. Bourne    /bin/sh

C          Bill Joy        /bin/csh

Kom        David        /bin/ksh

 

Shell的修改:chsh –s 输入新的shell   //eg:chsh –s /bin/csh

 

不同shell的命令稍有差别

 

用户登陆后自动执行的shell脚本文件:

.bashrc 位于用户主目录下,它之前执行系统的脚本/etc/bashrc,主要是配置基础数据

.bash_profile位于用户主目录下,它之前执行系统脚本/etc/profile,主要是配置环境变量

 

alias(别名),可简化常用命令的输入,shell程序用经常使用

命令:alias 自定义命名=’想要替换的命令’

eg:alias cp=’cp -i’

alias ll=’ls –l –color=tty’

 

十. 软件的安装

RPM管理

rpm,RPM Package Manager(RPM软件包管理器)的缩写,一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.rpm扩展名的文件,与dpkg类似。这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。

 

如何查询linux中安装了哪些rpm软件:

rpm –q   //查看有没有安装mysql

006

rpm –qa  //查看所有rpm软件

007

rpm常用命令:

008

安装rpm包:

rpm –ivh *.rpm   // i=install安装;v=verbose提示;h=hash进度条

 

卸载rpm包:

rpm –e *.rpm

//如果其他软件包依赖于当前要卸载的包,会产生错误告警

rpm –e –nodeps *.rpm

//该命令用于强制卸载当前rpm包,但依赖于此包的软件可能无法运行

 

升级rpm包:

rpm –U *.rpm

 

文件共享:

1.Samba服务器安装:Linux下开发人员好像喜欢装这个。

安装传送门

2.FTP服务器安装:大多数Linux机器都是用的这个。

安装传送门

3.SCP命令:

scp [OPTIONS] file_source file_target
eg:scp ntp-4.2.8p7-0.10591.1.PTF.959243.x86_64.rpm boco4a@200.200.0.114:/home/boco4a

OPTIONS:
-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接、认证、 或是配置错误
-C 使能压缩选项
-P 选择端口 . 注意 -p 已经被 rcp 使用

4.方便快捷的文件传输软件:sshClient

另外putty、xshell、secureCRT也可用于管理主机,但文件传输基于FTP或rz、sz命令。

 

Mysql数据库的安装

Mysql数据库由于免费、跨平台、轻、支持多并发,一直是中小型企业数据库的首选。

 

安装:

  1. 把安装文件拷贝到 /home 下
  2. 解压mysql文件.tar.gz 命令:tar –zxvf
  3. groupadd mysql //创建用户组

useradd –g mysql mysql     //创建mysql用户,并放入到mysql组

进入/home下的mysql文件夹

sripts/mysql_install_db –user=mysql   //初始化数据库

chown root .                      //修改文件所有者(.代表当前文件目录)

chown –R mysql data

//修改data文件夹所有者(R参数代表递归,表示当前文件夹下所有文件/文件夹)

chgrp –R mysql .                   //改变用户组

启动mysql

bin/mysqld_safe –user=mysql &      // & 代表以后台方式启动

查看端口3306是否起来:netstat –anp | more

进入mysql:

cd bin

./mysql –uroot –p123

//登录mysql(此种方式只能在/home/mysql/bin下启动mysql)

如果想在任何目录都可以启动mysql,修改环境变量里面的路径PATH:

env   //可以看到PATH路径

在root用户目录下 ls –al | more 找到 .bash_profile

(此文件存放用户变量,系统变量在/etc目录下)

vi .bash_profile在PATH路径后面加上mysql路径

009

注销/重启电脑,然后任意路径都能使用mysql –uroot –p123    进入mysql

(注:只能在此用户任意目录,其他用户照样修改。如要所有用户都可以,那就需要改系统变量,在/etc/profile下也存在该文件)

 

数据库备份与恢复

010

备份操作在mysql下的bin目录下,非在数据库中。

恢复的时候要先在数据库中新建个空数据库。

 

可以利用任务调度crontab,写个shell脚本将数据库自动备份。