Linux

Linux

简介编辑
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器操作系统方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善这个操作系统,使其最大化地适应用户的需要。 [1]
Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux操作系统不仅仅是被网络运维人员当作服务器使用,Linux既可以当作服务器,又可以当作网络防火墙是Linux的 一大亮点。 [2]
Linux与其他操作系统相比 ,具有开放源码、没有版权、技术社区用户多等特点 ,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈 ,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。 [3]
Linux简史编辑
Linux操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:Unix操作系统、MINIX操作系统、GNU计划、POSIX标准和Internet网络。
20世纪80年代,计算机硬件的性能不断提高,PC的市场不断扩大,当时可供计算机选用的操作系统主要有Unix、DOS和MacOS这几种。Unix价格昂贵,不能运行于PC;DOS显得简陋,且源代码被软件厂商严格保密;
  MacOS是一种专门用于苹果计算机的操作系统。此时,计算机科学领域迫切需要一个更加完善、强大、廉价和完全开放的操作系统。由于供教学使用的典型操作系统很少,因此当时在荷兰当教授的美国人AndrewS.Tanenbaum编写了一个操作系统,名为MINIX,为了向学生讲述操作系统内部工作原理。MINIX虽然很好,但只是一个用于教学目的的简单操作系统,而不是一个强有力的实用操作系统,然而最大的好处就是公开源代码。全世界学计算机的学生都通过钻研MINIX源代码来了解电脑里运行的MINIX操作系统,芬兰赫尔辛基大学大学二年级的学生Linus Torvalds就是其中一个,在吸收了MINIX精华的基础上,Linus于1991年写出了属于自己的Linux操作系统,版本为Linux0.01,是Linux时代开始的标志。他利用Unix的核心,去除繁杂的核心程序,改写成适用于一般计算机的x86系统,并放在网络上供大家下载,1994年推出完整的核心Version1.0,至此,Linux逐渐成为功能完善、稳定的操作系统,并被广泛使用。 [1]
主要特性编辑
编辑
基本思想
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
完全免费
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
完全兼容POSIX1.0标准
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
良好的界面
Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
支持多种平台
Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
优点编辑
1)Linux由众多微内核组成,其源代码完全开源;
2)Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、 TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发成出新的协议栈;
3)Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性;
常用命令及技巧编辑
一、 通用命令
1、date :打印或者设置系统的日期和时间
2、 stty -a:可以查看或者打印控制字符(Ctrl-C、Ctrl-D、 Ctrl-Z等)
3、 passwd:用passwd -h查看
4、logout,login: 登录shell的登录和注销命令
5、 more, less, head tail: 显示或部分显示文件内容
  6、 lp/lpstat/cancel, lpr/lpq/lprm: 打印文件
  7、 chmod u+x:更改文件权限
8、 rm -fr dir:删除非空目录
9、cp -R dir:拷贝目录
10、 fg jobid :可以将一个后台进程放到前台
  11、 kill 的作用: send a signal to a process、 eg: kill -9 发送的是SIG_KILL信号,具体发送什么信号 可以通过 man kill 查看、
  12、 ps 的用法, ps -e 或 ps -o pid,ppid,session,tpgid, comm (其中session显示的sessionid, tpgid显示前台进程组id, comm显示命令名称)
  二 、ubuntu常用命令:
1、 dpkg: package manager for Debian
  * 安装: dpkg -i package
  * 卸载: dpkg -r package
  * 卸载并删除配置文件: dpkg -P |–purge package
  * 如果安装一个包时、说依赖某些库、 可以先 apt-get install somelib
  * 查看软件包安装内容 :dpkg -L package
  * 查看文件由哪个软件包提供: dpkg -S filename
  * 另外 dpkg还有 dselect和aptitude 两个frontend
  2、 apt
  * 安装: apt-get install packs
  * 更新源:apt-get update

  • 升级系统:apt-get upgrade
      * 智能升级、安装新软件包,删除废弃的软件包:apt-get dist-upgrade
      * f –fix broken 修复依赖:apt-get -f install
      * 自动删除无用的软件:apt-get autoremove
      * 删除软件:apt-get remove packages
      * 删除包并清除配置文件:apt-get remove package –purge
      * 清除所以删除包的残余配置文件: dpkg -l |grep ^rc|awk ‘{print $2}’ |tr [“/n”] [“ “]|sudo xargs dpkg -P
      * 安装软件时候包的临时存放目录 : /var/cache/apt/archives
      * 清除该目录: apt-get clean
      * 清除该目录的旧版本的软件缓存: apt-get autoclean
      * 查询软件some的依赖包: apt-cache depends some
      * 查询软件some被哪些包依赖: apt-get rdepends some
      * 搜索软件: apt-cache search name|regexp
      * 查看软件包的作用:apt-cache show package
      * 查看一个软件的编译依赖库: apt-cache showsrc packagename|grep Build-Depends
      * 下载软件的源代码 : apt-get source packagename (注: sources、list 中应该有 deb-src 源)
      * 安装软件包源码的同时, 安装其编译环境 :apt-get build-dep packagename (有deb-src源)
      * 如何将本地光盘加入安装源列表: apt-cdrom add
      3、 系统命令:
      * 查看内核版本:uname -a
      * 查看ubuntu 版本:cat /etc/issue
      * 查看网卡状态 :ethtool eth0
      * 查看内存,cpu的信息:cat /proc/meminfo ; cat /proc/cpuinfo
      * 打印文件系统空间使用情况:df -h
      * 查看硬盘分区情况:fdisk
      * 产看文件大小:du -h filename;
      * 查看目录大小:du -hs dirname ; du -h dirname是查看目录下所有文件的大小
      * 查看内存的使用:free -m/-g/-k
      * 查看进程:ps -e 或ps -aux –>显示用户
      * 杀掉进程:kill pid
      * 强制杀掉:killall -9 processname
      4、 网络相关:
      * 配置 ADSL: sudo pppoeconf
      * ADSL手工拨号: sudo pon dsl-provider
      * 激活 ADSL : sudo /etc/ppp/pppoe_on_boot
      * 断开 ADSL: sudo poff
      * 根据IP查网卡地址: arping IP地址
      * 产看本地网络信息(包括ip等): ifconfig | ifconfig eth0
      * 查看路由信息: netstat -r
      * 关闭网卡: sudo ifconfig eth0 down
      * 启用网卡: sudo ifconfig eth0 up
      * 添加一个服务: sudo update-rc、d 服务名 defaults 99
      * 删除一个服务: sudo update-rc、d 服务名 remove
      * 临时重启一个服务: /etc/init、d/服务名 restart
      * 临时关闭一个服务: /etc/init、d/服务名 stop
      * 临时启动一个服务: /etc/init、d/服务名 start
      * 控制台下显示中文: sudo apt-get install zhcon
      * 查找某个文件: whereis filename 或 find 目录 -name 文件名
      *通过ssh传输文件
      5、 压缩:
      *解压缩 a、tar、gz: tar zxvf a、tar、gz
      *解压缩 a、tar、bz2: tar jxvf a、tar、bz2
      *压缩aaa bbb目录为xxx、tar、gz: tar zcvf xxx、tar、gz aaa bbb
      *压缩aaa bbb目录为xxx、tar、bz2: tar jcvf xxx、tar、bz2 aaa bbb
    6、 Nautilus:
      特殊 URI 地址
      * computer:/// - 全部挂载的设备和网络
      * network:/// - 浏览可用的网络
      * burn:/// - 一个刻录 CDs/DVDs 的数据虚拟目录
      * smb:/// - 可用的 windows/samba 网络资源
      * x-nautilus-desktop:/// - 桌面项目和图标
      * file:/// - 本地文件
      * trash:/// - 本地回收站目录
      * ftp:// - FTP 文件夹
      * ssh:// - SSH 文件夹
      * fonts:/// - 字体文件夹,可将字体文件拖到此处以完成安装
      * themes:/// - 系统主题文件夹
    7、补充部分:
  • 查看本地所有的tpc,udp监听端口: netstat -tupln (t=tcp, u=udp, p=program, l=listen, n=numric)
      * 通过man搜说相关命令: man -k keyword 、 eg: man -k user
      * 或者用 apropos
      * 统计文件所占用的实际磁盘空间: du (du - estimate file space usage)
      * 统计文件中的字符,字节数: wc -c/-l/-w (wc - print the number of newlines, words, and bytes in files)
      * 查看文件的内容: od -x/-c/ (od - dump files in octal and other formats)
      查看文件的 Ascii 码形式: od -t c filename (其中统计信息最左边的是: 字节数)
      * 查找命令所在文件的位置: which od 输出: /usr/bin/od
      查看该文件由哪个包提供: dpkg -S /usr/bin/od 输出: coreutils: /usr/bin/od
      再查看coreutils包的全部内容就知道了linux的核心命令: dpkg -L coreutils
      * 快速粘贴:先在一个地方选中文字,在欲粘贴的地方按鼠标 中键 即可、
      * 等效中键:a 、按下滑轮等效于中键、b、同时按下鼠标 左右键,等效于中键
      * 快速重启X服务: 同时按下: Alt + Ctrl + Backspace 三个键、
      * 打开”运行”窗口: 同时按下 Alt + F2 键
      * 截屏:
    a、全屏:直接按下 PrtScr 键
      b、当前窗口:同时按下 Alt + PrtScr 键
      c、延时截屏:在 终端 或 “运行”窗口中输入命令: gnome-screenshot –delay 3 ,将延时 3 秒后截屏、
    8、ulimit
      ulimit:显示(或设置)用户可以使用的资源的限制(limit),这限制分为软限制(当前限制)和硬限制(上限),其中硬限制是软限制的上限值,应用程序在运行过程中使用的系统资源不超过相应的软限制,任何的超越都导致进程的终止
      ulimited 不限制用户可以使用的资源,但本设置对可打开的最大文件数(max open files)和可同时运行的最大进程数(max user processes)无效
      -a 列出所有当前资源极限
      -c 设置core文件的最大值、单位:blocks
      -d 设置一个进程的数据段的最大值、单位:kbytes
      -f Shell 创建文件的文件大小的最大值,单位:blocks
      -h 指定设置某个给定资源的硬极限、如果用户拥有 root 用户权限,可以增大硬极限、任何用户均可减少硬极限
      -l 可以锁住的物理内存的最大值
      -m 可以使用的常驻内存的最大值,单位:kbytes
      -n 每个进程可以同时打开的最大文件数
      -p 设置管道的最大值,单位为block,1block=512bytes
      -s 指定堆栈的最大值:单位:kbytes
      -S 指定为给定的资源设置软极限、软极限可增大到硬极限的值、如果 -H 和 -S 标志均未指定,极限适用于以上二者
      -t 指定每个进程所使用的秒数,单位:seconds
      -u 可以运行的最大并发进程数
      -v Shell可使用的最大的虚拟内存,单位:kbytes
      eg: ulimit -c 1000(可以先通过ulimit -c 查看原来的值)

 上一篇
Git Git
Githubmkdir 123cd 123git initgit add .git commit -m “”git remote add origin /git push origin master ##yangxin@yangxin-
2019-10-08 yangxin
下一篇 
美女大图 美女大图
江疏影
2019-10-08 yangxin
  目录