01、Linux介绍

2018-08-13 07:35:23来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

一、 Linux介绍

 

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。

二、主要特性

基本思想

Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。[3]

完全免费

Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。[4]

完全兼容POSIX1.0标准

这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。[4]

多用户、多任务

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。[4]

良好的界面

Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。[4]

支持多种平台

Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。[4]

 

三、文件结构

/:根目录,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。

/bin:bin 就是二进制(binary)英文缩写。在一般的系统当中,都可以在这个目录下找到linux常用的命令。系统所需要的那些命令位于此目录。

/boot:Linux的内核及引导系统程序所需要的文件目录,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录。

/cdrom:这个目录在刚刚安装系统的时候是空的。可以将光驱文件系统挂在这个目录下。例如:mount /dev/cdrom /cdrom

/dev:dev 是设备(device)的英文缩写。这个目录对所有的用户都十分重要。因为在这个目录中包含了所有linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序。这一点和常用的windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口。可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。

/etc:etc这个目录是linux系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下。

/home:如果建立一个用户,用户名是"xx",那么在/home目录下就有一个对应的/home/xx路径,用来存放用户的主目录。

/lib:lib是库(library)英文缩写。这个目录是用来存放系统动态连接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。因此,千万不要轻易对这个目录进行什么操作,一旦发生问题,系统就不能工作了。

/lost+found:在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。

/mnt:这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom等目录。可以参看/etc/fstab的定义。

/media:有些linux的发行版使用这个目录来挂载那些usb接口的移动硬盘(包括U盘)、CD/DVD驱动器等等。

/opt:这里主要存放那些可选的程序。

/proc:可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的。

/root:Linux超级权限用户root的家目录。

/sbin:这个目录是用来存放系统管理员的系统管理程序。大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目录是相似的,凡是目录sbin中包含的都是root权限才能执行的。

/selinux :对SElinux的一些配置文件目录,SElinux可以让linux更加安全。

/srv 服务启动后,所需访问的数据目录,举个例子来说,www服务启动读取的网页数据就可以放在/srv/www中

/tmp:临时文件目录,用来存放不同程序执行时产生的临时文件。有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文件的。/var/tmp目录和这个目录相似。

/usr

这是linux系统中占用硬盘空间最大的目录。用户的很多应用程序和文件都存放在这个目录下。在这个目录下,可以找到那些不适合放在/bin或/etc目录下的额外的工具

/usr/local:这里主要存放那些手动安装的软件,即不是通过“新立得”或apt-get安装的软件。它和/usr目录具有相类似的目录结构。让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面、。

/usr/share :系统共用的东西存放地,比如 /usr/share/fonts 是字体目录,/usr/share/doc和/usr/share/man帮助文件。

/var:这个目录的内容是经常变动的,看名字就知道,可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。/var/ www目录是定义Apache服务器站点存放目录;/var/lib 用来存放一些库文件,比如MySQL的,以及MySQL数据库的的存放地。

 

 


四、常用命令        http://man.linuxde.net/

一。 通用命令:[6]

date :print or set the system date and time

2. stty -a: 可以查看或者打印控制字符(Ctrl-C, Ctrl-D, Ctrl-Z等)

3. passwd: print or set the system date and time (用passwd -h查看)

4. logout, login: 登录shell的登录和注销命令

5. pwd: print working directory

6. more, less, head tail: 显示或部分显示文件内容.

7. lp/lpstat/cancel, lpr/lpq/lprm: 打印文件.

8. 更改文件权限: chmod u+x...

9. 删除非空目录:rm -fr dir

10.拷贝目录: cp -R dir

11. fg jobid :可以将一个后台进程放到前台。

Ctrl-z 可以将前台进程挂起(suspend), 然后可以用bg jobid 让其到后台运行。

job & 可以直接让job直接在后台运行。

12. kill 的作用: send a signal to a process. eg: kill -9 发送的是SIG_KILL信号。。。 具体发送什么信号 可以通过 man kill 查看。

13. ps 的用法, ps -e 或 ps -o pid,ppid,session,tpgid, comm (其中session显示的sessionid, tpgid显示前台进程组id, comm显示命令名称。)

二 .ubuntu常用命令:[6]

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: 智能升级。安装新软件包,删除废弃的软件包

* apt-get -f install : -f == --fix broken 修复依赖

* 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

(/proc下面的有很多系统信息)

* 打印文件系统空间使用情况: df -h

* 查看硬盘分区情况: fdisk -l

* 产看文件大小: 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传输文件

scp -rp /path/filename username@remoteIP:/path #将本地文件拷贝到服务器上

scp -rp username@remoteIP:/path/filename /path #将远程文件从服务器下载到本地

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]

6. Nautilus:

特殊 URI 地址

* computer:/// - 全部挂载的设备和网络

* network:/// - 浏览可用的网络

* burn:/// - 一个刻录 CDs/DVDs 的数据虚拟目录

* smb:/// - 可用的 windows/samba 网络资源

* x-nautilus-desktop:/// - 桌面项目和图标

* file:/// - 本地文件

* trash:/// - 本地回收站目录

* ftp:// - FTP 文件夹

* ssh:// - SSH 文件夹

* fonts:/// - 字体文件夹,可将字体文件拖到此处以完成安装

* themes:/// - 系统主题文件夹

* 显示隐藏文件: Ctrl+h

* 显示地址栏: Ctrl+l

* 查看已安装字体: 在nautilus的地址栏里输入”fonts:///“,就可以查看本机所有的fonts[6]

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)

我认为od最有用的就是文件的字节流了: od -t x1 filename

查看文件的 Ascii 码形式: od -t c filename (其中统计信息最左边的是: 字节数)

* 查找命令所在文件的位置: which od 输出: /usr/bin/od

查看该文件由哪个包提供: dpkg -S /usr/bin/od 输出: coreutils: /usr/bin/od

再查看coreutils包的全部内容就知道了linux的核心命令: dpkg -L coreutils

然后 info coreutils 哈哈,认真学吧, 满世界都是命令!

* 可以用man 命令产看某个命令的所有section 的解释: man -a tty

然后用q,和next 转换到下一个section的解释

* bash 的好用的快捷键:

ctrl+a:光标移到行首。

ctrl+b:光标左移一个字母

ctrl+c:杀死当前进程。

ctrl+d:退出当前 Shell。

ctrl+e:光标移到行尾。

ctrl+h:删除光标前一个字符,同 backspace 键相同。

ctrl+k:清除光标后至行尾的内容。

ctrl+l:清屏,相当于clear。

ctrl+r:搜索之前打过的命令。会有一个提示,根据你输入的关键字进行搜索bash的history

ctrl+u: 清除光标前至行首间的所有内容。

ctrl+w: 移除光标前的一个单词

ctrl+t: 交换光标位置前的两个字符

ctrl+y: 粘贴或者恢复上次的删除

ctrl+d: 删除光标所在字母;注意和backspace以及ctrl+h的区别,这2个是删除光标前的字符

ctrl+f: 光标右移

ctrl+z : 把当前进程转到后台运行,使用’ fg ‘命令恢复。比如top -d1 然后ctrl+z ,到后台,然后fg,重新恢复

* 快速粘贴:先在一个地方选中文字,在欲粘贴的地方按鼠标 中键 即可。

* 等效中键:a 、按下滑轮等效于中键。b、同时按下鼠标 左右键,等效于中键。

* 快速重启X服务: 同时按下: Alt + Ctrl + Backspace 三个键。

* 打开"运行"窗口: 同时按下 Alt + F2 键。

* 截屏: a、全屏:直接按下 PrtScr 键。

b、当前窗口:同时按下 Alt + PrtScr 键。

c、延时截屏:在 终端 或 "运行"窗口中输入命令: gnome-screenshot --delay 3 ,将延时 3 秒后截屏。

* 直接将 文件管理器 中的文件拖到 GNOME终端 中就可以在终端中得到完整的路径名。[6]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 查看原来的值)

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Vi中进行多行指定内容替换

下一篇:自己动手编写 Dockerfile 构建自定义的Jenkins