一. 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格式)

四. 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)

  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 (动态监控进程)

终止进程:

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命令建立的)

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用于设置周期性被执行的指令,可用于任务调度。

终止任务调度:

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

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

rpm -qa|grep ntp*   //查看所有ntp的rpm包

rpm常用命令:

安装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.*.*:/home/boco4a

//将本机当前目录的ntp文件发送到目标主机的/home/boco4a目录。红色分别代表“用户、IP、目录”

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路径

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

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

数据库备份与恢复

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

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

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

Linux新手扫盲的更多相关文章

  1. Linux新手扫盲(转载)

    一. Linux特点 1.免费/开源: 2.支持多线程/多用户: 3.安全性好: 4.对内存和文件管理优越. Linux最小只需4M ——> 嵌入式开发 二. 文件目录 Linux系统所有软硬件 ...

  2. 新手指南: Linux 新手应该知道的 26 个命令

    当你进入了 Linux 的世界,在下载.安装 了某个 Linux 发行版,体验了 Linux 桌面并安装了一些你喜爱和需要的软件之后,应该去了解下 Linux 真正的魅力所在:命令行.每一个 Linu ...

  3. Linux新手应掌握的10个基本命令

    导读 Linux对我们的生活有着很大的影响.然而在Linux上,你通常应该使用终端命令,而不是只要点击启动器图像(就像你在Windows上操作那样).这10个基本的Linux命令和重要命令会帮助你尽快 ...

  4. Linux 新手非常有用的命令

    http://www.cnblogs.com/felix-/p/4341773.html Linux 新手非常有用的命令 你打算从Windows换到Linux上来,还是你刚好换到Linux上来?哎哟! ...

  5. 每个Linux新手都应该记住的10个基本Linux命令

    Linux对我们的生活有着很大的影响.至少,你的安卓手机上面就有Linux内核.然而,头一次入手Linux只会让你觉得不适.因为在Linux上,你通常应该使用终端命令,而不是只要点击启动器图像(就像你 ...

  6. 正确Linux新手很实用20命令

     //正确Linux新手很实用20命令 //slwang  2014.4.19 1, ls list directory contents 内容 ls -l     //以详情模式(long li ...

  7. 适合Linux新手的发行版有哪些?

    一个很古老的问题,找到适合的 Linux 发行版比简单的指出哪种 Linux 版本受欢迎更重要.为什么这么说?让我们设置一个情景:你有一位用户,很有可能,他过去大多数时候都是在 Windows 或者 ...

  8. Linux 新手应该知道的 26 个命令

    https://linux.cn/article-6160-1.html 当你进入了 Linux 的世界,在下载.安装 了某个 Linux 发行版,体验了 Linux 桌面并安装了一些你喜爱和需要的软 ...

  9. 【转】每个 Linux 新手都应该知道的 10 个命令

    你可能认为你是 Linux 新手,但实际上并不是.全球互联网用户有 3.74 亿,他们都以某种方式使用 Linux,因为 Linux 服务器占据了互联网的 90%.大多数现代路由器运行 Linux 或 ...

随机推荐

  1. 牛顿法与拟牛顿法学习笔记(三)DFP 算法

    机器学习算法中经常碰到非线性优化问题,如 Sparse Filtering 算法,其主要工作在于求解一个非线性极小化问题.在具体实现中,大多调用的是成熟的软件包做支撑,其中最常用的一个算法是 L-BF ...

  2. js每天进步一点点3

    JS之样式的改变

  3. 在ASPNET中使用JS集锦

    (一).确认删除用法: 1. BtnDel.Attributes.Add("onclick","return confirm('"+"确认删除?&qu ...

  4. tomcat6类加载器与类加载顺序

    tomcat6.0.32 com.dyyx.ShareUtils//返回系统当前时间public static String now(); package com.dyyx;import java.t ...

  5. Struts2 源码分析——Hello world

    新建第一个应用程序 上一章我们讲到了关于struts2核心机制.对于程序员来讲比较概念的一章.而本章笔者将会亲手写一个Hello world的例子.所以如果对struts2使用比较了解的朋友,请跳过本 ...

  6. [python IDE] 舒服的pycharm设置

    个人使用的IDE有国产的ulipad,sublime text 3 ,或者vs集成下的,不过讲到好用跨平台,还真是只有pycharm 写python最舒服,一个是因为有社区版,免费,不存在版权问题,另 ...

  7. SQL--工作中遇到的

    --递归查询产品分类 WITH cte AS ( SELECT * FROM syn_Categories WHERE id = $CategoryID$ UNION ALL SELECT syn_C ...

  8. The Web server is configured to not list the contents of this directory.

    部署一个ASP.NET MVC网站至一个全新的服务器Windows Server 2008 R2, 数据为MS SQL Server 2014 64bit Expression版本. 运行时,它第一次 ...

  9. a标签中调用js方法

    1. a href="javascript:void(0);" onclick="js_method()" 这种方法是很多网站最常用的方法,也是最周全的方法,o ...

  10. 使用MySQL Workbench导出MySQL数据库关系图

    1. 点击MySQL Workbench中间Data Modeling下的Create EER Model From Existing Database: 2. 在Stored Connection中 ...