教程linux第1、掌握Linu__基础俗话说“思则有备,有备无患”,学习之前你先要搭建好学习环境(红帽RHEL7)然后在虚拟机安装它,开始使用它。学习Linu__,命令使用是学习的前提,就像你和下面是小编为大家整理的教程linux热门8篇,供大家参考。
1、掌握Linu__基础
俗话说“思则有备,有备无患”,学习之前你先要搭建好学习环境(红帽RHEL7)然后在虚拟机安装它,开始使用它。学习Linu__,命令使用是学习的前提,就像你和外国人说话就得说英语不然别人怎么知道你说的是什么。例如:
命令名,选项,各个参数都作为命令的输入项,都是独立的项,他们之间必须用空格隔开。Linu__中命令格式如下:
命令名 【选项】 【参数1】 【参数2】……
学习Linu__,要熟练掌握命令的使用,虽然命令多,但是熟能生巧,在以后的学习运用中能大大节约你的时间。还有学习linu__切不可粗心大意,往往一个小小的空格也会报错,当然在linu__中,大小写是很敏感的,切记!
2、从基础入手,切勿眼高手低
linu__如果一旦学习一段时间之后你会发现其实也没想象中那么难,甚至比windows更简单已操作,通常认为GLI没有GUL那么方面用户操作。因为命令行界面的软件通常需要用户记忆操作来完成命令,但是,由于其本身的特点,命令行界面要较图形用户界面节约计算机系统的资源。所以,熟记命令的前提下,使用命令行界面往往要较使用图形用户界面的操作速度要快,这也是你以后玩转Linu__的基本条件之一。
3、多总结,勤思考,多记笔记
如果想学好Linu__系统知识,不是一天两天就能学会的,也是经过一朝一夕,慢慢积累的,这个过程中要学会去总结,多思考,多动手去练,去实践,在理解的基础上去记忆,把原理搞懂,把重要的知识点积累下来,以便在以后的工作中方便查找,当做查询手册,同时也能锻炼我们编写文档的能力,对以后都是有很大帮助的。
4、及时充电,提高自学能力
要具备良好的自学能力,除了老师讲的,你还要去考虑老师的知识点还可以怎样去扩充,这时候一本好的资料书就非常必要了,把这些基础的都学会了,建议你再去深入学习Linu__进阶技术,不断的去提高自己。
以上也只是我个人学习经验所谈,希望我的学习经验可以帮助到像我原来这样的新手。学好linu__基础要扎实,切不可好高骛远,踏踏实实的去练习思考。指尖和思维的跳动才能跳出linu__的华尔兹!
4、输出所有奇数行的内容
[linu__mi@linu__:~/linu__mi迷]$ awk "(NR%2)==1 {print}"
5、输出所有偶数行的内容
[linu__mi@linu__:~/linu__mi迷]$ awk "(NR%2)==0 {print}"
6、输出以“root”开头的行
[linu__mi@linu__:~/linu__mi迷]$ awk "/^root/{print}" /etc/passwd
7、输出以“nologin”结尾的行
[linu__mi@linu__:~/linu__mi迷]$ awk "/nologin$/{print}" /etc/passwd
8、统计以/bin/bash结尾的行数
[linu__mi@linu__:~/linu__mi迷]$ awk "BEGIN {__=0} ;/\/bin\/bash$/{__++};END {print __}" /etc/passwd
9、统计以/bin/bash结尾的行数
[linu__mi@linu__:~/linu__mi迷]$ grep -c "/bin/bash$" /etc/passwd
10、统计以空格分隔的文件段落数
[linu__mi@linu__:~/linu__mi迷]$ awk "BEGIN{RS=""}; END{print NR}"
注意:命令较多时,使用“BEGIN……END”
2)按字段输出文本
1、输出每行中(以空格分隔)的第3个字段
[linu__mi@linu__:~/linu__mi迷]$ awk "{print $3}"
2、输出每行中(以空格分隔)的第1个和第3个字段
[linu__mi@linu__:~/linu__mi迷]$ awk "{print $1,$3}"
3)通过管道,双引号调用Shell命令
1、调用“wc -l”命令统计使用“bash”的用户个数
[linu__mi@linu__:~/linu__mi迷]$ awk -F: "/bash$/{print | "wc -l"}" /etc/passwd
[linu__mi@linu__:~/linu__mi迷]$ grep -c "bash$" /etc/passwd
2、调用“w”命令,并用力啊统计在线用户数
[linu__mi@linu__:~/linu__mi迷]$ awk "BEGIN {while ("w" | getline) n++ ; {print n-2}}"
3、调用“hostname”命令,并输出当前用户名
[linu__mi@linu__:~/linu__mi迷]$ awk "BEGIN { "hostname" | getline ; print $0}"
4)使用awk命令进行简单的数学运算
[linu__mi@linu__:~/linu__mi迷]$ awk "BEGIN{ a=9;b=8;print"(a + b)=",(a + b)}"
(a + b)= 17
[linu__mi@linu__:~/linu__mi迷]$ awk "BEGIN{ a=100;b=78;print"(a - b)=",(a - b)}"
(a - b)= 22
[linu__mi@linu__:~/linu__mi迷]$ awk "BEGIN{ a=80;b=5;print"(a / b)=",(a / b)}"
(a / b)= 16
[linu__mi@linu__:~/linu__mi迷]$ awk "BEGIN{ a=80;b=5;print"(a ÷ b)=",(a / b)}"
(a ÷ b)= 16
[linu__mi@linu__:~/linu__mi迷]$ awk "BEGIN{ a=10;b=9;print"(a __ b)=",(a __ b)}"
(a __ b)= 90
之前一直以为Linu__和Windows差不多,但是学习了Linu__基础入门之后才发现两种操作系统之间差距非常大。
Linu__只是在硬件之上的内核和系统调用,就连我们在Windows里习以为常的图形界面都是Linu__上的软件。在使用Linu__的时候,我们都习惯于使用终端和命令行进行操作,而不是像Windows那样的图形界面里的鼠标键盘的共同操作。物理机系统可通过[Ctrl]+[Alt]+[F1]~[F6]切换6个纯命令行界面的终端,通过[Ctrl]+[Alt]+[F7]从终端切换回图形界面。而且学习之后我才知道,Linu__里面一切皆文件,相对于Windows里的文件后缀名区分文件类型,Linu__不通过后缀名区分文件类型,可以通过file命令查看文件类型。
在使用Linu__的时候,我们不直接和系统打交道,而是通过Shell(命令解析器)。Shell就像一个壳隐藏了操作系统的底层操作。通俗来讲,Shell就是可以接受用户输入命令的程序。在UNI__/Linu__中比较流行的常见的Shell有bash,zsh,ksh,csh等等,Ubuntu终端默认使用的是bash,默认的桌面环境是 GNOME或者Unity(基于 GNOME)。
在Linu__系统中有很多十分方便的快捷命令。
Tab:可以用来补全命令、目录、或者命令参数,连续按两次还可显示所有能匹配到的结果;
[Ctrl+C]:用来终止当前程序并且不退出终端;
[Ctrl+d]:键盘输入结束或者退出终端;
[Ctrl+s]:暂定当前程序,暂停后按下任意键恢复运行;
[Ctrl+z]:将当前程序放到后台运行,恢复到前台命令为fg;
[Ctrl+a]:将光标移至行头,相当于home,[Ctrl+e]相当于[end];
[Ctrl+k]:删除从光标所在位置到行末;
[Alt+backspace]:向前删除一个单词;
[shift+pgup]:将终端显示向上滚动,[shift+pgdn]向下滚动。
在Linu__中,通配符主要是“__”和“?”,可用来对字符串进行模糊匹配,终端里的通配符由Shell完成。
Linu__中还有一部分特别重要的命令:
man命令:man命令是Linu__中一个十分重要的帮助指令,内容包括计算机程序(库和系统的调用),正式的标准和惯例,抽象的概念,通过执行man命令调用手册页。man命令手册比较重要的是前三个:一般命令;系统调用;库函数,涵盖了C标准函数库。man命令如果加上数字参数,可以指定从哪本手册中搜索帮助。
ls命令:用于显示当前目录下的文件,可以通参数[-a]显示隐藏文件(Linu__下隐藏文件皆以‘.’开头)。
cd命令:Linu__下一切皆文件,因此在终端中[cd]命令就显得尤为重要。这个命令可以通过绝对路径或者相对路径进入到你想进去的目录中。
cp命令:用于终端中文件或目录的复制操作。
rm命令:用于终端中文件或目录的删除操作。
cat命令:用于正序打印文件内容到终端,与之相反的tac命令倒序打印问价内容到终端。
declare命令:用于声名一个变量,用‘=’号赋值,用echo和$命令读取变量的值。
Shell中运行的大部分命令都将以审理了的子进程的方式运行。环境变量有3种:当前Shell进程私有用户自定义变量,只在当前Shell中有效;本身内建的变量;从自定义变量导出的环境变量。
给用户添加用户组并通过sudo命令获得root权限
黑客帝国
实验过程中遇到的问题以及解决:
1、运行脚本文件时候报错,原来是for之后少了一个空格,之后才知道Linu__脚本文件里面的空格不像C语言里面的一样能随便增删。
2、使用mv命令移动两个文件时,其中一个文件名输错,再次执行移动命令时,说另一个文件不存在,之后发现另一个文件已经移动到目的目录中。从而知道了使用mv命令移动两个文件时,其中一个文件名输错,不会影响其他文件的移动。
本文所说的“Linu__内核开发”仅仅是指嵌入式Linu__产品开发中内核和驱动相关开发工作,与Linu__所领导的内核开发团队的内核开发有很大不同。
俗话说“工欲善其事,必先利其器”,面对几百兆的Linu__内核代码,要阅读、查看或者搜索其中的代码,大部分初次接触到Linu__内核代码的开发人员,都有无从下手的感觉。下面推荐几个源码阅读和索引工具,能为后续内核开发提供一些便利。
一
Source Insight
Source Insight是Windows平台下一款流行度极高的源码阅读和编辑工具。不少Linu__开发人员还是习惯于在Windows下进行源码编辑,甚至查看和编辑Linu__内核源码,依然在Source Insight中完成。
说明:Source Insight是一款版权软件,需要自行解决版权问题。
安装Source Insight软件后,新建一个工程,取名并指定数据存放位置。
点击OK按钮,进入工程设置界面。
然后添加源码。浏览选中Linu__内核源码文件夹后,点击“Add Tree”按钮,将内核源码树的全部文件添加到工程中。
添加完成,即可在Source Insight中进行源码阅读和编辑了。
二
Eclipse
Eclipse是一个跨平台IDE,既能运行于Windows平台,也能在Linu__下运行。不少习惯于图形界面操作的开发人员,在Linu__下则习惯于用Eclipse来查看和编辑Linu__源码。
如果仅仅是在Eclipse中查看Linu__内核源码,则可以不必事先安装交叉编译器,否则则须事先安装好交叉编译器。
创建内核源码工程。点击File——New——Project,开始创建工程,在工程创建界面选择创建C工程,。
点击Ne__t,在C Project界面的Project name栏中填写工程名称,去掉“Use default location”的勾,点击Browse将Location设置为Linu__内核源码目录。如果不在Eclipse中编译内核,则使用Linu__ GCC即可,否则请使用安装好的Cross GCC。
然后点击Finish,完成Linu__内核源码导入,在Eclipse中即可进行代码阅读和编辑了。
在Eclipse中进行源码跟踪,只需选择函数、变量或者宏定义后按F3即可。更多的操作可在Navigate中找到。
三
vim+ctags+cscope
Vi/Vim是一个文本编辑器,在Vim中能高效的实现代码编辑。但Vim的功能不仅仅是一个文本编辑器,借助ctags和cscope的配合,Vim能实现堪比图形IDE环境的源码编辑和阅读功能,在某种程度上甚至比图形IDE更方便。
Vi/Vim的安装不再介绍了。如果不是通过远程登录在远程服务器上工作,而是在本地桌面系统操作,还可以用gvim启动Vi编辑器。
1、Taglist
Taglist是Vim的一个源码浏览插件,可从网站获得。下载到压缩包后,在本地解压,然后将解压得到目录中的plugin目录复制到~目录。如果用户主目录下没有.vim目录,则建立一个这样的目录即可。
2、Ctags
Ctags是一个用于产生tags文件的软件,可以下载源码进行编译安装,在Ubuntu下,可通过apt-get进行安装:
$ sudo apt-get install e__uberant-ctags
3、源码阅读和跟踪
进入准备查看的源码所在目录,首先生成tags文件:
$ ctags -R
执行时间长短取决于源码数量的多少,执行完毕,在当前目录下可看到一个tags文件。源码越多,执行时间越长,产生的tags文件也越大。
注意:如果修改了源码,代码行号发生了变化,需要重新生成tags文件。
查看函数等定义。用Vi/Vim打开一个C文件。若想知道某个函数、变量、结构或者宏定义在什么地方定义,先将光标移动到函数(变量、结构或者宏定义)上,然后按CTRL+]即可。查看后,按CTRL+o可回到原来所在位置。
查看文件函数列表。打开C文件后,在Vi/Vim的命令状态下输入:TlistToggle(Vi/Vim的命令输入支持补全),在Vi/Vim左边就会出现函数列表侧栏,如图8所示。按CTRL+ww(2次w),可在列表和代码查看区间切换。
如果在本地桌面,用Gvim打开C文件,使用起来比较接近IDE集成环境。用鼠标双击函数即可跳转到函数定义的地方,CTRL+鼠标右键即可回退到原来所在位置。更多实用特性,还需要在实际操作中体验。
四
L__R
L__R是Linu__ Cross Referencer的缩写,是一个比较流行的Linu__源码查看工具,当然也不仅仅局限于查看Linu__源码。
一、Tmu__ 是什么?
会话与进程
命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令。用户与计算机的这种临时的交互,称为一次"会话"(session) 。
会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。
一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。
为了解决这个问题,会话与窗口可以"解绑":窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。
Tmu__ 的作用
Tmu__ 就是会话与窗口的"解绑"工具,将它们彻底分离。
(1)它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。
(2) 它可以让新窗口"接入"已经存在的会话。
(3)它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
(4)它还支持窗口任意的垂直和水平拆分。
类似的终端复用器还有 GNU Screen。Tmu__ 与它功能相似,但是更易用,也更强大。
二、基本用法
安装
Tmu__ 一般需要自己安装。
# Ubuntu 或 Debian$ sudo apt-get install tmu__# CentOS 或 Fedora$ sudo yum install tmu__# Mac$ brew install tmu__
启动与退出
安装完成后,键入tmu__命令,就进入了 Tmu__ 窗口。
$ tmu__
上面命令会启动 Tmu__ 窗口,底部有一个状态栏。状态栏的左侧是窗口信息(编号和名称),右侧是系统信息。
按下Ctrl+d或者显式输入e__it命令,就可以退出 Tmu__ 窗口。
$ e__it
前缀键
Tmu__ 窗口有大量的快捷键。所有快捷键都要通过前缀键唤起。默认的前缀键是Ctrl+b,即先按下Ctrl+b,快捷键才会生效。
举例来说,帮助命令的快捷键是Ctrl+b ?。它的用法是,在 Tmu__ 窗口中,先按下Ctrl+b,再按下?,就会显示帮助信息。
然后,按下 ESC 键或q键,就可以退出帮助。
三、会话管理
新建会话
第一个启动的 Tmu__ 窗口,编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。
使用编号区分会话,不太直观,更好的方法是为会话起名。
$ tmu__ new -s
上面命令新建一个指定名称的会话。
分离会话
在 Tmu__ 窗口中,按下Ctrl+b d或者输入tmu__ detach命令,就会将当前会话与窗口分离。
$ tmu__ detach
上面命令执行后,就会退出当前 Tmu__ 窗口,但是会话和里面的进程仍然在后台运行。
tmu__ ls命令可以查看当前所有的 Tmu__ 会话。
$ tmu__ ls# or$ tmu__ list-session
接入会话
tmu__ attach命令用于重新接入某个已存在的会话。
# 使用会话编号$ tmu__ attach -t 0# 使用会话名称$ tmu__ attach -t
杀死会话
tmu__ kill-session命令用于杀死某个会话。
# 使用会话编号$ tmu__ kill-session -t 0# 使用会话名称$ tmu__ kill-session -t
切换会话
tmu__ switch命令用于切换会话。
# 使用会话编号$ tmu__ switch -t 0# 使用会话名称$ tmu__ switch -t
重命名会话
tmu__ rename-session命令用于重命名会话。
$ tmu__ rename-session -t 0
上面命令将0号会话重命名。
会话快捷键
下面是一些会话相关的快捷键。
Ctrl+b d:分离当前会话。
Ctrl+b s:列出所有会话。
Ctrl+b $:重命名当前会话。
四、最简操作流程
综上所述,以下是 Tmu__ 的最简操作流程。
新建会话tmu__ new -s my_session。
在 Tmu__ 窗口运行所需的程序。
按下快捷键Ctrl+b d将会话分离。
下次使用时,重新连接到会话tmu__ attach-session -t my_session。
五、窗格操作
Tmu__ 可以将窗口分成多个窗格(pane),每个窗格运行不同的命令。以下命令都是在 Tmu__ 窗口中执行。
划分窗格
tmu__ split-window命令用来划分窗格。
# 划分上下两个窗格$ tmu__ split-window# 划分左右两个窗格$ tmu__ split-window -h
移动光标
tmu__ select-pane命令用来移动光标位置。
# 光标切换到上方窗格$ tmu__ select-pane -U# 光标切换到下方窗格$ tmu__ select-pane -D# 光标切换到左边窗格$ tmu__ select-pane -L# 光标切换到右边窗格$ tmu__ select-pane -R
交换窗格位置
tmu__ swap-pane命令用来交换窗格位置。
# 当前窗格上移$ tmu__ swap-pane -U# 当前窗格下移$ tmu__ swap-pane -D
窗格快捷键
下面是一些窗格操作的快捷键。
Ctrl+b %:划分左右两个窗格。
Ctrl+b ":划分上下两个窗格。
Ctrl+b :光标切换到其他窗格。是指向要切换到的窗格的方向键,比如切换到下方窗格,就按方向键↓。
Ctrl+b ;:光标切换到上一个窗格。
Ctrl+b o:光标切换到下一个窗格。
Ctrl+b {:当前窗格左移。
Ctrl+b }:当前窗格右移。
Ctrl+b Ctrl+o:当前窗格上移。
Ctrl+b Alt+o:当前窗格下移。
Ctrl+b __:关闭当前窗格。
Ctrl+b !:将当前窗格拆分为一个独立窗口。
Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小。
Ctrl+b Ctrl+:按箭头方向调整窗格大小。
Ctrl+b q:显示窗格编号。
六、窗口管理
除了将一个窗口划分成多个窗格,Tmu__ 也允许新建多个窗口。
新建窗口
tmu__ new-window命令用来创建新窗口。
$ tmu__ new-window# 新建一个指定名称的窗口$ tmu__ new-window -n
切换窗口
tmu__ select-window命令用来切换窗口。
# 切换到指定编号的窗口$ tmu__ select-window -t # 切换到指定名称的窗口$ tmu__ select-window -t
重命名窗口
tmu__ rename-window命令用于为当前窗口起名(或重命名)。
$ tmu__ rename-window
窗口快捷键
下面是一些窗口操作的快捷键。
Ctrl+b c:创建一个新窗口,状态栏会显示多个窗口的信息。
Ctrl+b p:切换到上一个窗口(按照状态栏上的顺序)。
Ctrl+b n:切换到下一个窗口。
Ctrl+b :切换到指定编号的窗口,其中的是状态栏上的窗口编号。
Ctrl+b w:从列表中选择窗口。
Ctrl+b ,:窗口重命名。
awk命令工具在Linu__/UNI__系统中,awk是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理,可以在无交互的情况下实现相当复杂的文本操作,被广泛应用于Shell脚本,完成各种自动化配置任务。一、awk命令的语法及概述
awk 选项 "模式或条件 { 编辑指令 }" 文件1 文件2 …
//过滤并输出文件符合条件的内容
awk -f 脚本文件 文件1 文件2 …
//从脚本中调用编辑指令,过滤并输出内容
__awk执行结果可以通过print的功能将字段数据打印显示。在使用awk命令的过程中,可以使用逻辑操作符“&&”和“
目录操作命令
ls
命令名称:ls
命令英文原意:list
命令所在路径:/bin/ls
执行权限:所有用户
功能描述:显示目录文件
ls (显示当前目录下文件)
ls 目录名 (显示指定目录下文件)
ls -l (长格式显示目录文件)
ls -l 文件名 (长格式显示指定文件)
ls -a (显示所有文件(包含隐藏文件))
ls -al (长格式显示当前目录下所有文件)
ls -h (文件大小显示为常见大小单位 B KB MB )
ls -d (显示目录本身,而不是里面的子文件)
长格式显示项
-rw------- 1 root root 1190 08-10 23:37
① ② ③ ④ ⑤ ⑥ ⑦
第①项:权限位
第②项:引用计数
第③项:属主(所有者)
第④项:属组
第⑤项:大小
第⑥项:最后一次修改时间
第⑦项:文件名
cd
命令名称:cd
命令英文原意:change directory
命令所在路径:shell内置命令
执行权限:所有用户
功能描述:切换所在目录
cd /usr/local/src 切换到指定路径(使用绝对路径方式)
cd ~ 进入当前用户的家目录
cd - 进入上次目录
cd 进入上一级目录
cd . 进入当前目录
绝对路径:cd 参照当前所在目录,进行查找。一定要先确定当前所在目录。
相对路径:cd /usr/local 从根目录开始指定,一级一级递归查找。在任何目录下,都能进入指定位置。
pwd
命令名称:pwd
命令英文原意:print working directory
命令所在路径:/bin/pwd
执行权限:所有用户
功能描述:显示当前所在目录(当前工作目录)
Linu__ 常见目录
/ 根目录
/bin 命令保存目录(普通用户就可以读取的命令)
/boot 启动目录,启动相关文件
/dev 设备文件保存目录
/etc 配置文件保存目录
/home 普通用户的家目录
/lib 系统库保存目录
/mnt 系统挂载目录
/media 挂载目录
/root 超级用户的家目录
/tmp 临时目录
/sbin 命令保存目录(超级用户才能使用的目录)
/proc 直接写入内存的
/sys 将内核的一些信息映射,可供应用程序所用
/usr 系统软件资源目录
/usr/bin/ 系统命令(普通用户)
/usr/sbin/ 系统命令(超级用户)
/var 系统相关文档内容
/var/log/ 系统日志位置
/var/spool/mail/ 系统默认邮箱位置
/var/lib/ 默认安装的库文件目录
mkdir
命令名称:mkdir
命令英文原意:make directories
命令所在路径:/bin/mkdir
执行权限:所有用户
功能描述:建立目录
mkdir test 创建名为test的目录
mkdir -p test1/test2/test3 递归创建
rmdir
命令名称:rmdir
命令英文原意:remove empty directories
命令所在路径:/bin/rmdir
执行权限:所有用户
功能描述:删除目录 (只能删除空目录)
![](/assets/屏幕快照 20XX-07-19 上午)
文件操作命令
touch
命令名称:touch
命令所在路径:/bin/touch
执行权限:所有用户
功能描述:创建空文件 或 修改文件时间
touch 创建空文件,如果文件存在,则修改文件创建时间
rm
命令名称:rm
命令英文原意:remove
命令所在路径:/bin/rm
执行权限:所有用户
功能描述:删除
rm 文件名 删除文件
rm -r 目录名 递归删除文件和目录
rm -f 文件名 强制删除
rm -rf 目录名 强制删除目录和文件
cat
命令名称:cat
命令所在路径:/bin/cat
执行权限:所有用户
功能描述:查看文件内容,从头到尾的内容。
cat 文件名 查看文件内容内容
cat -n 文件名 查看文件内容,并列出行号
more
命令名称:more
命令所在路径:/bin/more
执行权限:所有用户
功能描述:分屏显示文件内容
more 文件名 分屏显示文件内容
向上翻页 空格键
向下翻页 b键
退出查看 q键
head
命令名称:head
命令所在路径:/usr/bin/head
执行权限:所有用户
功能描述:显示文件头
head 文件名 显示文件头几行(默认显示10行)
head -n 20 文件名 显示文件前20行
head -n -20 文件名 显示文件最后20行
ctrl + c 强制终止查看模式
ctrl + l 清屏
ln
命令名称:ln
命令英文原意:link
命令所在路径:/bin/ln
执行权限:所有用户
功能描述:链接文件
等同于Windows中的快捷方式
新建的链接,占用不同的硬盘位置
修改一个文件,两边都会改变
删除源文件,软连接文件打不开
ln -s 源文件 目标文件 创建链接文件(文件名都必须写绝对路径)
文件和目录都能操作的命令
rm
删除文件或目录
cp
命令名称:cp
命令英文原意:copy
命令所在路径:/bin/cp
执行权限:所有用户
功能描述:复制文件或目录
cp 源文件 目标位置 (复制)
或
cp 源文件 目标位置/目标名称 (复制并改名)
cp -r 复制目录
cp -p 连带文件属性一起复制
cp -d 若源文件是链接文件,则复制链接属性
cp -a 相当于 cp -pdr
mv
命令名称:mv
命令英文原意:move
命令所在路径:/bin/mv
执行权限:所有用户
mv 源文件 目标位置
mv /root/test /tmp/ 将/root/下的test文件移动到/tmp/目录下
mv /root/test /root/newtest 将/root/下的test文件改名为newtest
权限管理
?权限位
1 root root 44736 7月 18 00:38
?权限位是十位
第一位:代表文件类型
- 普通文件
d 目录文件
l 链接文件
其他九位:代表各用户的权限
(前三位=属主权限u 中间三位=属组权限g 其他人权限o)
r 读 4
w 写 2
__ 执行 1
?权限意义
?权限对文件的含义:
r:读取文件内容 如:cat、more、head、tail
w:编辑、新增、修改文件内容 如:vi、echo 但是不包含删除文件
__:可执行 /tmp/11/22/abc ---------
?权限对目录的含义:
r:可以查询目录下文件名 如:ls
w:具有修改目录结构的权限 如:touch、rm、mv、cp
__:可以进入目录 如:cd
chmod
命令名称:chmod
命令英文原意:change the permissions mode of a file
命令所在路径:/bin/chmod
执行权限:所有用户
功能描述:修改权限
chmod u+__ aa aa文件的属主加上执行权限
chmod u-__ aa aa文件的属主减去执行权限
chmod g+w,o+w aa aa文件的属组和其他人加上写权限
chmod u=rw__ aa aa文件的用户权限改为所有权限(读+写+执行)
另一种表现方式:
chmod 755 aa aa文件的属主权限是rw__,属组和其他人是r__
chmod 644 aa aa文件的属主权限是rw,属组和其他人是r
属主和属组命令chown
命令名称:chown
命令英文原意:change file ownership
命令所在路径:/bin/chown
执行权限:所有用户
功能描述:修改文件的属主或属组
chown 用户名 文件名 改变文件属主
chown user1 aa user1必须存在
chown user1:user1 aa 改变属主同时改变属组
用户操作
useradd 用户名 功能描述:添加用户
passwd 用户名 功能描述:设定用户密码
帮助命令
man
命令名:man
命令英文原意:manual
命令所在路径:/usr/bin/man
执行权限:所有用户
功能描述:查看命令的帮助
--help
命令名:--help
执行权限:所有用户
功能描述:查看命令的帮助
whereis
命令名:whereis
命令名称:whereis
命令所在路径:/usr/bin/whereis
执行权限:所有用户
功能描述:查找命令的命令,同时看到帮助文档位置
find
命令名称:find
命令所在路径:/usr/bin/find
执行权限:所有用户
功能描述:搜索命令
find 查找位置 -name 文件名
find / -name aabbcc 查找/目录下名为 aabbcc的文件
更多选项:
-name 文件名 按照文件名查找
-user 用户名 按照属主用户名查找文件
-group 组名 按照属组组名查找文件
-nouser 找没有属主的文件 (除了这三个文件:/proc、/sys、/mnt/cdrom)
-size 按照文件大小k M 如:find / -size +50k
-type 按照文件类型查找(f=普通 d=目录 l=链接)
-perm 按照权限查找 如:find /root -perm 644
-iname 按照文件名查找,不区分大小写
grep
命令名称:grep
命令所在路径:/bin/grep
执行权限:所有用户
功能描述:查找符合条件的字串
grep 选项 "字串" 查找路径
grep -i "root" /etc/passwd
-v 反向选择
-i 忽略大小写
管道符 |
命令1 | 命令2 命令1的执行结果,作为命令2的执行条件
cat 文件名 | grep "字串" 提取含有字符串的行
ls -l /etc | more 分屏显示ls内容
压缩和解压缩
?linu__可以识别的常见压缩格式:.gz .bz2
?常见的压缩和打包命令:
?压缩/解压 同时打包
tar -zcvf 压缩文件名 源文件
tar -zcvf aa
-z 识别.gz格式
-c 压缩
-v 显示压缩过程
-f 指定压缩包名
tar -z__vf 压缩文件名 解压缩同时解打包
tar -jcvf 压缩文件名 源文件 压缩同时打包
tar -jcvf aa
tar -j__vf 解打包同时解压缩
查看不解包
tar -ztvf 查看不解压
tar -jtvf
-t 只查看,不解压
tar -j__vf -C /tmp/ 指定解压缩位置
shutdown
命令名称:shutdown
命令所在路径:/sbin/shutdown
执行权限:root
功能描述:关机/重启
shutdown -h now 没有特殊情况,使用此命令
-h 关机
-r 重启
reboot
命令名称:reboot
命令所在路径:/sbin/reboot
执行权限:root
功能描述:关机/重启挂载
挂载命令
mount
命令名称:mount
命令所在路径:/bin/mount
执行权限:所有用户
功能描述:挂载
linu__所有存储设备都必须挂载使用,包括硬盘
光盘挂载
/dev/sda1 第一个scsi硬盘的第一分区
/dev/cdrom 光盘
/dev/hdc IDE硬盘 centos
/dev/sr0 光盘 centos
mount -t 文件系统 设备描述文件 挂载点(已经存在空目录)
mount -t iso9660 /dev/cdrom /mnt/cdrom
光盘卸载
umount /dev/cdrom
umount /mnt/cdrom 注意:退出挂载目录,才能卸载
fdisk -l 查看设备名
mount -t vfat /dev/sdb1 /mnt/usbping
命令名称:ping
命令所在路径:/bin/ping
执行权限:所有用户
功能描述:测试网络畅通性
ping -c 次数 ip 探测网络通畅
ifconfig
命令名称:ifconfig
命令英文原意:interface configure
命令所在路径:/sbin/ifconfig
执行权限:root
为什么要用Linu__?
Linu__极其强大,可以让聪明人干任何他们想干的事情。
Linu__ 从诞生之日起,它的工作方式就比 Windows 的先进。
Linu__ 属于能勇敢面对符号的人。只有符号才能完全操纵计算机。
欧美发达国家的传统科研单位、黑客们从几十年前就从事这些行当了,使用Linu__/Uni__的习惯延续至今。
鼠标虽然是很好的工具,但是它的表达能力是有限的。
你不可能光用鼠标就让电脑完全明白你的意思,它毕竟只有3个按钮。所以我们虽然很喜欢鼠标,但是却不能完全依赖它。
熟练的Linu__黑客可以很快敲出一行命令,组合系统里面的各种工具来完成一个任务。很多工具本身就是一个黑客工具,压根就没考虑windows用户们,在图形界面下用起来反而非常麻烦。图形界面的优势是数据展示方式多样,劣势是从使用者的角度看,它混淆了数据展示和数据本身。
在Linu__大量工作抽象地看是这样的:
把一堆数据扔进一个程序,得到另一堆数据,再扔进另一个程序……
不用关心数据展示,它要的是数据本身。
什么是 Windows 能干而 Linu__ 干不了的事情?
“Windows 能干而 Linu__ 干不了的事情,那就是不需要干的事情。”
几乎所有科学计算程序,EDA 程序,高性能图像处理程序都不是基于 Windows 的。
消除学计算机很难的幻觉,勇敢的拿起像 bash, FVWM, Te__, VIM, Emacs, Mutt ……这样强大的程序,勇敢的面对符号。不要再埋怨“Linu__ 为什么不能像 Windows 那样”,不要再浪费时间试用这样那样的程序,不要再忙着升级。你需要理解 UNI__ 的工作方式,因为那是大多数科学家的工作方式。
Linu__入门教程:Linu__开机启动过程浅析
asic Input/Output System),完成一些系统的完整性检查、搜索、
加载并且执行引导程序(boot loader), 它在软盘,CD-ROM或者硬盘上寻找引导程序。你可以在
系统启动时按下键盘(通常是F12或者F2,但是因系统而异)来修改启动顺序
一旦引导程序被检测到并且加载到内存,BIOS会将控制权移交给它
MBR
MBR表示主引导记录(Master Boot Record)
用于加载并执行GRUB
GRUB
GRUB是多重引导管理器(GRand Unified Bootloader)
执行 , 加载内核镜像
vim
default=0
timeout=5
splashimage=(hd0,0)
hiddenmenu
title CentOS 6 ()
root (hd0,0)
kernel ro root=/dev/mapper/vg_ddz-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_ddz/lv_root rd_LVM_LV=vg_ddz/lv_swap KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd
Kernel
执行内核首个进程 /sbin/init, 进程号为1, 是接下来所有其它进程的父进程
initrd表示Initial RAM Disk
initrd被内核用作临时的根目录,直到内核启动完成并且真正的根目录挂载成功。
它也包括一些编译好的必要的驱动程序,这些程序有助于它访问硬盘和其他硬件
Init
执行 /etc/inittab, 来确定启动级别
vim /etc/intttab
# Default The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode (终端模式)
# 4 - unused
# 5 - __11(图形用户界面)
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:执行 , 来启动系统进程,比如说NetWork
RunLevel
执行启动级别相对应的一系列系统服务
对应启动级别的目录如下
ll
2 root root 4096 11月 29 09:49
2 root root 4096 11月 29 09:49
2 root root 4096 3月 10 17:18
2 root root 4096 3月 10 17:18
2 root root 4096 3月 10 17:18
2 root root 4096 3月 10 17:18
2 root root 4096 11月 29 09:49
RunDefinition
最后执行 , 来运行自定义的服务
vim
1 #!/bin/sh
2 #
3 # This script will be e__ecuted __after__ all the other init
4 # You can put your own initialization stuff in here if you don"t
5 # want to do the full Sys V style init
6
7 touch /var/lock/subsys/local
8 if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
9 echo never > /sys/kernel/mm/transparent_hugepage/enabled
10 fi
11 if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
12 echo never > /sys/kernel/mm/transparent_hugepage/defrag
13 fi
14
15 /bin/bash start
其中第15行为自定义启动脚本
Final
扩展阅读文章
推荐阅读文章
恒微文秘网 https://www.sc-bjx.com Copyright © 2015-2024 . 恒微文秘网 版权所有
Powered by 恒微文秘网 © All Rights Reserved. 备案号:蜀ICP备15013507号-1