近期一口气看完了韩顺平老师讲的Linux视频教程,自己也在学习的过程中做了些笔记,记载例如以下。希望帮助到一些喜欢研究Linux的同学。也算是在云端备份一下笔记吧。以免电脑出现不可控的因素而遗失自己的心血。

首先声明,这篇笔记不是依照韩老师讲的顺序来写的。可能有些凌乱。但我相信。你总能找到你想要的信息:

Linux必看书籍:

      鸟哥的私房菜

      Linux编程从入门到精通

      Linux内核安全剖析





命令:

shutdown -h now  立马关机

shutdown -r now   重新启动

reboot   重新启动

startx  进入图形界面

logout  用户注销





注意:

登陆时尽量少用root账号登陆,由于它是系统管理员,最大的权限,避免操作失误。

可利用普通用户登陆,登陆后再用“su -”命令来切换成系统管理员身份。





C程序在Linux下编译执行:

1.  gcc  hello.c  或者  gcc  -o  newName  hello.c

2.  ./a.out





简介。Linux的文件系统是採用级层式的树状文件夹结构,在此结构中的最上层是根目”/“,然后在此文件夹下再创建其它的文件夹。

根文件夹”/“下的文件有:

 bin:  存放Linux中应用软件工具的各种命令。比如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、newaliases、nslookup passwd、quota、smb*、wget等。

 sbin: 存放Linux中系统管理的各种命令。比如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevelshutdown等。

boot:存放内核以及启动所需的文件等。

dev:  存放设备文件。

       etc:   存放系统的配置文件。

       home: 用户文件的主文件夹。用户数据存放在其主文件夹中。

       lib :   存放必要的执行库。

       mnt :存放暂时的映射文件系统,我们常把软驱和光驱挂装在这里的floppy和cdrom子文件夹下。

proc :存放存储进程和系统信息 

       root :超级用户的主文件夹 

       tmp : 存放暂时文件的文件夹 

       usr :  包括了一般不须要改动的应用程序。命令程序文件、程序库、手冊和其他文档。

var :  包括系统产生的常常变化的文件,比如打印机、邮件、新闻等假脱机文件夹、日志文件、格式化后的手冊页以及一些应用程序的数据文件等等。

建议单独的放在一个分区。

vi编辑器的使用:

       在编辑模式时,ESC+“:wq" 为保存退出,":q!"为强制退出(不保存)

      ":set nu"在文件里每行行处显示行号

      ":set nonu"取消行号

       ":+数字" 为跳至该数字标示的行,如":4"跳到第四行 

      ":/+字符串"查找特定字符串。假设搜索的字符串不是所要的,能够按"n"键来往下继续查找。如”:/main“查找”main“字符串位置。

       ":?+字符串" 使用方法同 上面的  ":/+字符串"





   Linux的用户管理:

   useradd  userName     加入用户userName

   passwd   userName     改动用户userName的password

   userdel   userName     删除用户userName

   userdel -r userName   删除用户以及用户主文件夹

     

   Linux的执行级别:

   命令 init 【012356】

   执行级别:0    关机

                     1    单用户

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

        3    多用户状态有网络服务

                     4    系统未使用保留给用户

                     5    图形界面

                     6    系统重新启动

经常使用的执行级别是3和5,要改动默认的执行级别可改动文件 /etc/inittab的id:5:initdefault: 这一行中的数字。

Linux命令:

pwd    显示当前的工作文件夹

cd       切换文件夹

ls         列出文件和文件夹

ls  -a    显示隐藏文件

ls  -l     显示长列表格式

ls -la    显示隐藏文件,并以长列表格式显示

mkdir   新建文件夹

rmdir    删除空文件夹(不能删除有文件的文件夹,能够使用”rm -rf“强制删除有文件的文件夹)





touch   新建空文件

cp        拷贝文件

cp -r dir1 dir2   递归复制命令(复制子文件夹信息)

mv     移动文件或者改文件名称

rm     删除文件(不能直接删除文件夹)

rm  -rf  强制删除全部内容(包含文件夹和文件)





ln  建立符号连接,类似如windows的为某个文件建立快捷方式吧

ln -s  源  目标   如ln -s /etc/inittab  inittab (inittab指向实际文件/etc/inittab)





more 显示的文件内容较多时,分页显示

less    显示文件内容带分页

grep   在文本中查询内容 如  "grep main hello.java"  , "grep -n main hello.java"显示所在行的行号

|         管道命令  

man 命令相当于 windows的 help





find  搜索文件及文件夹

1. 在特定的文件夹下搜索并显示指定名称的文件和文件夹

     find  /  -name  Hello.java

2. 搜索一段时间内被存取/变更的文件或文件夹:

    find /home -amin -10     10min内存取的文件或文件夹

    find /home -atime -10     10h内存取的文件或文件夹

    find /home -cmin -10      10min内更改过的文件或文件夹

    find /home -ctime +10     10h前更改过的文件或文件夹

3. 搜索指定大小的文件

    find /home  -size +10k     查找/home文件夹下大小为10K的文件

    

重定向命令:

   ls -l >  a.txt  列表的内容写入文件a.txt中(覆盖写)

   ls -la  >>  aa.txt  列表的内容追加到文件aa.txt的末尾

   从文件里输入信息  database_program  <  database_data





在Linux中的每一个用户必须属于一个组,不能独立于组外。

在Linux中每一个文件有全部者、所在组、其它组的概念。





当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。

用命令 ls -ahl  能够看到文件的全部组

命令  chgrp  组名  文件名称   改动文件所在的组。





linux中加入组:groupadd   groupName

加入用户时,能够指定将该用户加入到哪个组中,

相同的用root的管理权限能够改变某个用户所在的组:usermod  -g  组名  username

还能够用  usermod   -d  文件夹名  username   改变该用户登陆的初始文件夹





修复Redhat命令行英文乱码的情况:

vi /etc/sysconfig/i18n   在后面加上  LC_ALL=POSIX  注销后就可以恢复正常显示。





使用命令行备份和恢复mysql数据库:

备份:mysqldump -u root -ppassword 数据库名>data.bak

恢复:mysql -u root -ppassword 数据库名<data.bak





linux中加入组:  groupadd  groupName

查看linux中全部组信息: vi  /etc/group  或者  cat  /etc/group





创建用户,并同一时候指定将该用户分配到哪个组: useradd -g groupName  userName

查看linux中全部用户信息:vi  /etc/passwd   或者  cat  /etc/passwd





改变权限的命令:

chmod   改变文件或文件夹的权限

如:chmod 777 abc.txt   赋予abc.txt权限 -rwxrwxrwx  (4+2+1)

三组rwx分别属于:文件全部者訪问权限、用户所在组权限、其它用户权限。

改变文件拥有者(chown)和用户组(chgrp)命令:

如:chown  xiaowang  abc.txt   改变abc.txt的拥有者为xiaowang

       chgrp root  abc   改变abc所属的组为root

       chown root  ./abc  改变abc文件夹的全部者为root

       chown -R  root  ./abc   改变abc文件夹及其以下全部的文件和文件夹的全部者为root





在linux上安装jdk的步骤:

1.把全部的安装文件打包成.iso文件。挂载到linux操作系统上:

   mount  /mnt/cdrom

2.把安装文件复制到 /home 下

   cp  文件  /home

3.cd  /home (切换文件夹到/home下)

4.安装

  ./xxxxx.bin

5.看看一个文件 /etc/profile  (环境配置文件)

   配置环境变量:例如以下图所看到的







Linux分区:

 概述:首先我们要对硬盘分区的基本概念进行一些初步的了解。硬盘的分区主要分为基本分区和扩展分区两种,

基本分区和扩展分区的数目之和不能大于4。且基本分区能够立即被使用但不能再分区。扩展分区必须再进行分区后才干使用。

也就是说它必须还要进行二次分区。那么由扩展分区再分下去是什么呢?它就是逻辑分区,并且逻辑分区没有数量上的限制。





对windows用户来说,有几个分区就有几个驱动器,而且每一个分区都会获得一个字母标示符。然后就能够选用这个字母来指定在

这个分区上的文件和文件夹。它们的文件结构都是独立的。很好理解。但对这些用户初上手的redhat linux,可就有点恼人啦。由于对redhat linux用户来说不管有几个分区,分给给哪一个文件夹使用,它归根结底就仅仅有一个根文件夹,一个独立且唯一的文件结构。redhat linux中每一个分区都是用来组成整个文件系统的一部分。由于它採用了一种叫“加载”的处理方法。它的整个文件系统中包括了一整套的文件和文件夹,且将一个分区和一个文件夹联系起来。这时要加载的一个分区将使它的存储空间在一个文件夹下获得。

以下我们先来看看redhat
linux的驱动器是怎样标示的。

对于IDE硬盘,驱动器标示符为“hdx~”,当中“hd”表明分区所在设备的类型。这里是指IDE硬盘了。

“X”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”表示分区。前四个分区用数字1到4表示。它们是主分区或扩展分区。从5開始就是逻辑分区。比如。hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。对于SCSI硬盘则标示为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。





挂载命令  mount  [參数][设备 名称] [挂载点]

特别说明:在挂载光驱时,可直接使用  mount  /mnt/cdrom

卸载命令   umount [设备名称]

查看磁盘使用情况  df  [參数]

如:df -l

查看某个文件夹是在哪个分区  df  [文件夹全路径]

查看linux系统分区详细情况  fdisk  -l









Linux任务调度:

设置任务调度文件   /etc/crontab

   设置个人任务调度。运行crontab  -e命令。

接着输入任务到调度文件  如: 5 * * * *  ls -l   /etc/  >  /tmp/to.txt   (每小时的第五分钟运行ls  -l  /etc/  >  /tmp/to.txt命令)





调度文件里时间表示的规则:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGRmeWxvbA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">





如何去调度多个任务?

1.在crontab -e 中直接写.(不推荐)

2.能够把全部的任务,写入到一个可运行文件(shell编程)。(非常好)





终止任务调度:

crontab  -r  终止任务调度

crontab  -l  列出当前有哪些任务调度





1.date命令:显示系统的时间。

能够在命令行中直接输入“date”命令。来查看系统的时间。

2.利用date命令来更改系统的时间。

date MMDDHHMMCCYY.SS:意思是指:月月日日时时分分年年年年.秒秒

3.查看月历:

   cal  9  2014 : 查看2014年9月的日历。

4.查看年历:

   cal 2014 : 查看2014年的年历





Linux监控网络状态信息:

显示网络统计信息的命令 netstat

       此命令用来显示整个系统眼下的网络情况。

比如眼下的连接、数据包传递数据、或是路由表内容。

此命令直接输入就可以使用。如:netstat  -an

检測主机连接命令ping:

       是一种网络检測工具,它主要是用来检測远程主机是否正常,或是两部主机间的介质是否为断开、

网线是否脱落或网卡是否故障。如:ping  对方ip地址或网址





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

       此命令能够直接输入使用,用来检測数据包在网络上传输的过程。从本机到远程主机完整路径。帮助管理员解决这个问题。

route:

       所谓路由是指将数据由来源网络送往目的地网络的操作,在大型网络中。路由是很复杂的,由于数据包在抵达目的地时,

可能经过的节点有非常多。路由表是存储在路由器或一些其它链接设置上的窗口。当中记录着到指定目的地的网络路径。以及这些路径的相关数值。









Linux压缩和解压问题:

■以zip和unzip处理.zip文件

   1.zip命令的基本用法:

      zip  file.zip  *:zip后接压缩后的文件名称,在它的后面输入要压缩的文件就可以。

   2.压缩后。自己主动删除原文件

      zip  -m  file.zip  to.txt :意思是把to.txt文件压缩成file.zip文件,to.txt会自己主动删除的。

3.将子文件夹一起压缩:

       zip  -r  file.zip  * : 将当前文件夹下的子文件夹一起压缩。

4.忽略子文件夹的内容:

       zip  -j  file.zip  *

    5.将已压缩的或没有必要压缩的文件去掉:

       zip  -n  .mpg:  .jpg:  .gif:第一种文件里间要用“:”分开。

6.压缩某一日之后的文件:

        zip  -t  102002  file.zip:将当前文件夹下在2002年10月20日之后的文件压缩。

7.不压缩链接文件的原文件:

        zip  -y  file.zip   *

    8.压缩率问题: -1到-9 (-9的压缩率最高)

       zip  -9  file.zip  *

    9.将不须要压缩的文件排除在外。

       zip  file.zip  *  -x  file2.txt :  在压缩时,将当前文件夹内的file2.txt文件排除在外。





■以unzip命令进行.zip文件的解压缩

     1.直接解压缩文件

        unzip file.zip 

     2.排除不须要解压缩的文件

        unzip  file.zip  -x  file2:除了file2文件外,其它的文件都解压缩。

3.查看压缩包的内容

        unzip  -Z  file.zip:查看file.zip压缩包的内容。也能够使用“-l”、“-v”来查看压缩包的内容

        





配置 .bashrc 文件能够指定某些程序在用户登陆的时候就自己主动启动。





alias使用方法(为某个命令取别名):

   alias  llh=' ls  -l  /home '









shell使用:

■通配符:  *    代表多个字母或数字

                  ?  代表一个字母或数字

                   ls  a*     ls  a?     ls  ?

at?

                   ls  f080[1-6].tif









runlevel 命令。能够查看当前的执行级别





Linux系统启动步骤例如以下:

a) BIOS自检

b) 启动GRUB/LILO

c)  执行LINUX内核并检測硬件

d)  执行系统的第一个进程init

e)  init读取系统引导配置文件 /etc/inittab中的信息进行初始化

f)   /etc/rc.d/rc.sysinit 系统初始化脚本

g) /etc/rc.d/rcX.d/[KS]* - 依据执行级别X配置服务

      终止以“K”开头的服务

      启动以“S”开头的服务

h) /etc/rc.d/rc.local  运行本地特殊配置

i)  其它特殊服务









Linux下Shell介绍:





查看眼下使用的是哪种shell:

env



在linux下。我们有时可能希望知道或是使用近期运行的命令。history可能会帮上大忙。

1.history  5 :显示近期使用的5个命令。

2.  !5   : 运行历史编号为5的命令。

3.  。ls  :    运行最后一次以“ls”开头的命令。



追踪路由: tracert  目标ip/域名

測试两个ip是否畅通:ping  目标ip

在windows下 查看ip情况命令:ipconfig

在linux/unix下查看ip情况命令:ifconfig





Linux网络环境配置:

方法一:(1) 用root身份登陆,执行setup命令进入到text mode setup utiliy对网络进行配置,这里能够进行

                    ip,子网掩码,默认网关,dns的设置。

              (2) 这时网卡的配置没有生效,执行 /etc/rc.d/init.d/network  restart命令。我们刚才做的设置才生效。

方法二:(1) ifconfig  eth0  x.x.x.x对网卡进行设置

              (2) ifconfig  eh0  network  x.x.x.x对子网掩码设置。

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

注意: 这样配置网络将会马上生效,可是是暂时生效。

方法三:(1) 改动 /etc/sysconfig/network-scripts/ifcfg-eth0 这个文件中各个属性能够改动。包含ip,子网掩码,广播地址,默认网关。

(2) 这时网卡的配置没有生效。执行  /etc/rc.d/init.d/network  restart 命令。我们刚才做的改动设置才生效。方法

          这样的方法是最低层的改动





在Linux中,全部的设备都是文件。





Linux进程的概念和管理:

1. 在Linux中,每个运行的程序都称为一个进程。每个进程都分配一个ID号。

2. 每个进程,都会相应一个父进程,而这个父进程能够复制多个子进程。

比如wwwserver。

3. 每一个进程都可能以两种方式存在的。前台与后台。

所谓前台进程就是用户眼下的屏幕上能够进行操作的。

    后台进程则是实际在操作,但因为屏幕上无法看到进程,通常使用后台方式运行。

4. 一般系统的服务都是以后台进程的方式存在,并且都会常驻在系统中,直到关机才结束。





ps 命令是用来查看眼下系统中,有哪些正在运行,以及它们运行的状况。能够不加不论什么參数。

显示具体的进程信息:

1. ps  -a:显示当前终端的全部进程信息。

2. 以用户的格式显示进程信息:ps  -u。

3. 显示后台进程执行參数:ps  -x

pa  -aux : 看到全面。信息也全面。





若是某个进程运行一半须要停止时,或是已消耗了非常大的系统资源时。此时能够考虑停止该进程,使用 kill 命令

来完毕此项任务。

    终止某个进程:kill  进程号   如:kill  12345

    kill  -9  12345:由于有些进程会捕捉某些信号,假设直接不能结束进程能够使用 "-9" 传送信息(强制kill掉)。

最新文章

  1. LL(1)文法
  2. command not found,系统很多命令都用不了 ,修改环境变量
  3. [函數] Firemonkey 各平台 &quot;简体&quot; / &quot;繁体&quot; 判断
  4. [转] GitHub上README.md教程
  5. System.TypeInitializationException: The type initializer for &#39;Mono.Unix.Native.Stdlib&#39; threw an exception.
  6. photon mapping阶段性总结
  7. YII实现Memcache故障转移的配置办法
  8. 传参方式由url携带改为post提交
  9. lru cache java
  10. Http,Https(SSL)的Url绝对路径,相对路径解决方案Security Switch 4.2的配置和使用 分类: ASP.NET 2014-11-05 12:51 97人阅读 评论(0) 收藏
  11. 利用ssh传输文件 分类: 服务器搭建 Raspberry Pi 2015-04-12 18:47 58人阅读 评论(0) 收藏
  12. listView中的button控件获取item的索引
  13. floor() 和 ceil()函数
  14. Scut游戏server引擎Unity3d访问
  15. 详解linux vi命令用法
  16. 用Redis存储Tomcat集群的Session
  17. Python运维开发基础-概述-hello world
  18. extends和implements的区别
  19. 【Javascript】在文本框光标处插入文字并定位光标 (转)
  20. json省市县数据源

热门文章

  1. HDU - 4420 2013icpc长春A 函数离散化 + st表
  2. 黑马程序员_java基础笔记(07)...IO流
  3. TradingView 初识
  4. java 代码中设置 临时 环境变量
  5. [js]正则篇
  6. 解决mysql中limit和in不能同时使用的问题
  7. CAT 3.0 开源发布,支持多语言客户端及多项性能提升
  8. TPS和QPS是什么,他们的区别是什么
  9. 冒泡排序(高级版)之C++实现
  10. bzoj 1312 最大密度子图