简单的linux运用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单的linux运用相关的知识,希望对你有一定的参考价值。
** 简述**
linux是一套自由加开放源代码的类Unix操作系统,诞生于1991年10月5日(第一次正式向外公布),由芬兰学生linus Torvalds和后来陆续加入的众多爱好者共同开发完成的。
linux是一个基于POSIX和Unix多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件,应用程序和网络协议,可以支持32位和64位硬件,Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网路操作系统。
Linux存在许多不同版本,但他们都是用了Linux内核。Linux可安装再各种计算机硬件设备中,比如手机,平板电脑,路由器、视屏游戏控制台,台式计算机,大型和超大计算机。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。
但是也有些人使用Linux来做一些坏事,例如钓鱼WiFi,或者使用BTLinux和CBLinux这个两个版本来暴力破解别人的路由,进行抓包,可以获取使用这个路由器连上外网的人的信息,一般可以获取账号、信息、视屏、图片、之类的东西。曾今看到一个网站上的教学,上面著述,纯粹教学科技演示,不是不黑你,只是你没有黑的价值。
** Linux内核**
内核是Linux系统最底层,提供了核心功能并且允许进行以一种有序的方式来访问硬件。
用于控制进程,输入输出设备,文件系统操作,管理内存,这个都需要内核来操作。
当以一个程序要运行,就会产生一个进程,shell翻译成内核所能理解的二进制指令,内核收到,把程序加载到CPU上,这个程序不是一直运行下去的,有个时间片,内核规定你在CPU运行多长时间,把这个这个程序放到内存的一个地方,给他表上地址,然后运行下一个进程,假如说这个进程运行完之后,内核就会找到上一个程序没有结束的地址,加载CPU上运行。这个进程需要什么,内核从磁盘放到内存里。
软件安装
以Ubuntu系统为例
dpkg命令:当你没有网络时,你有软件包,此时,dpkg起到决定的性作用
-i:安装一个在本地文件系统上存在的Debian软件包
-r: 溢出一个已经安装的软件包
-P:移除已安装的软件包及配置文件
-L: 查看软件安装到那些目录中
-s:显示软件包的安装状态
-l:列出系统所有已经安装的软件
例如 dpkg i +软件包名
dpkg -P 软件名 完全卸载软件
与dpkg相对应的是apt-get,有网络时你可以通过apt-get来安装软件
apt-get:
-f:修复系统中存在软件依赖关系
-m:当发现缺少关联软件包时,仍是图继续执行
-q:当输出作为日志保留,不获取命令执行进度
--purge:与remove一起使用,完全卸载软件包相当于dpkg -P
--reinstall:与install子命令一起使用,重新安装软件包apt-get install --reinstall
-b:在下载完源码包后,编译生成相应的软件包
-s:不做实际操作,只是模拟命令执行结果
-y:对所有询问都做肯定回答,apt-get不在进行任何提示
-u:获取已升级的软件包列表
-h:获取升级软件包列表
-v:获取apt-get版本信号
使用apt-cache命令完成查询软件源和软件包的相关信息 +pkg
show:获取二进制软件包的详细描述信息
search:根据正则表达式检索软甲包
depends:获取所有依赖于该软件包的软件包
rdepends:获取所有依赖该软件包的软件包
policy:获取软件包当前安装状态
stats:获取软件源的基本统计信息
**介绍几个常用的命令**
whereis 查找命令 命令 ,函数 等其他的东西所在的位置 whereis ls
which: 查找使用程序
whatis:查看命令或函数的来时类型种类
time :统计使用时间的函数 time ls 示执行的时间
shutdown -r +10 :十分钟后重启 必须时超级用户权限才可以
+now :立刻关机
-h +10 : 十分钟后关机
df命令:显示磁盘使用情况
-a:列出所有文件系统
-b:列出总的空闲空间
-e:仅列出空闲的文件
-k:列出磁盘的分配情况
-h:同-k,但大小以G,M,K,单位显示
-l:仅列出本地文件系统
touch +文件名 :创建文件 ,或者使用> filename
tocuh可以修改时间戳,当别人入侵你的电脑之后,离开要干的事就是修改你的文件的时间和写一个脚本来清除histroy(历史纪录)
kill 杀死进程
-9 + pid :强制杀死进程
-2 pid :终止就是Ctrl +C
-19 pid :进程停止(到后台) 快捷键 Ctrl +z 恢复 fg
killall -15 +进程名:发送15信号给所有这个进程名
killall5 -9 后果严重:杀死所有的进城
文件系统
一直使用微软Windows操作系统的用户似乎已经习惯了将硬盘的几个分区,并用A:、B:、C:、D:等符号标识,存取文件一定要清除存放在那个磁盘的那个目录下。
Linux的文件组织模式犹如一颗倒置的树,这与windows文件系统有很大区别。所有存储设备作为这棵树的一个子目录存储位置。这一点很难理解,只是刚刚接触Linux的使用者不太习惯
下面简单介绍Linux文件系统的份分类
/:Linux文件根目录
/bin:存放系统文件最常用的可执行文件见(二进制)
/boot:存放Linux内核和系统启动文件,包括Grub、lilo启动器程序
/dev:存放所有设备文件,包括硬盘,分区,键盘、鼠标、USB、tty等
/etc:存放系统的所有配置文件。例如passwd存放账户信息
/home:用户目录的默认位置,用户在这个文件夹就是土皇帝
/initrd:存放启动时挂载initrd.img映像文件目录,以及载入所需设备模块的目录
/lib:存放共享的库文件,包含许多被/bin和/sbin中程序使用的库文件
/lost+found:存放fsck放置零散文件
/media:Ubuntu自动挂载CD=ROM、软驱、USB存储器后,存放临时读入文件
/mnt该目录通常用于作为,被挂载的文件系统的挂载点
/opt:作为可选文件和程序存放目录,主要被第三方开发者用来简易安装和卸载他们安装的程序
/proc:存放所有标志为文件的进程,他们是通过进程号或者其他的系统动态信息进行标识,例如cpuinfo文件存放CPU当前工作状态的数据
/root:根用户(超级用户)的主目录
/sbin:存放更多的可执行文件(二进制),包括系统管理、目录查询等关键命令文件
/tmp“存放用户临时文件,所有用户对目录查询等关键命令读写权限
连接
连接分为硬链接和软连接,硬链接是当文件新建时,文件系统会给文件一个index,根据index来创建文件,源文件修改对目标文件有影响。但是删除源文件,不会对目标文件有任何影响,相当于这个源文件创建一个不副本,修改其内容源文件和目标文件都会进行相应的修改。但是硬链接不能创建硬链接文件夹,软连链接:类似windows快捷键,软链接只是对应指定的路径和文件名或文件夹名,如果软文件更改路径或换个新名字,软链接将失效。
ln:用来创建文件链接。
语法
ln (选项)(参数)
-b:删除,覆盖目标文件之前的备份
-f或——force:强行建立文件或目录的连接,不论文件或目录是否存在;
-i或——interactive:覆盖既有文件之前先询问用户;
-n或--no-dereference:把符号连接的目的目录视为一般文件;
-s或——symbolic:对源文件建立符号连接,而非硬连接;
-S<字尾备份字符串>或--suffix=<字尾备份字符串>:用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字符串是符号“~”,用户可通过“-S”参数来改变它;
-v或——verbose:显示指令执行过程;
-V<备份方式>或--version-control=<备份方式>:用“-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用“-S”参数变更,当使用“-V”参数<备份方式>指定不同备份方式时,也会产生不同字尾的备份字符串;
alias 命令起别名
例如 ls 手速快点容易打成sl 那么给ls 七个别名叫sl 这样就不会出现错误了
alias sl = ‘ls’
tar文件归档压缩解压
作用:主要用于将若干文件夹或目录合并成为一个文件以便备份和压缩,当然,之后出现tar程序的改进版本,可以实现合并归档的同时进行压缩,
格式: tar [-t | -x | -u | -f | -j | -z | tarfile filelist
-t :显示归档文件的内容
-x:释放归档文件
-u:更行归档文件
-c : 创建一个新的归档文件
-v:显示归档和释放的过程
-j:由tar生成归档,然后由bzip2压缩
-z:由tar生成归档,然后由gzip压缩
ping 地址查看网络通不通
ttl:显示经过几个路由到达目标网址 time:从你开始到目的网站再回来所使用的时间
nslookup:查看域名地址
sudo dhclient 设置为自动获取
**shell脚本**
shell是命令行解释器
shell脚本时命令的有序集合
shell脚本以#!/bin/bash 表示使用bash的shell进行解释
常用shell环境变量:
HOME:/etc/passwd文件中列出的用户主目录
IFS:Internal Field Separator,默认认为空格,tab及换行符
PATH:shell命令的搜索路径
PS1,PS2:默认提示符($)级还行符提示符(>)
SHELL:默认shell
例如 打印第一行话 echo "hello world"
打印字符串的长度:
string=”ni hao"
echo ${#string} 显示字符长度为6
unset string :删除这个变量
在shell编程中通常使用全大写变量,方便识别
$COUNT=1
变量的调用:在变量前加$
$echo $HOME
linux shell/bash 从右向左赋值
y=Y
使用unset命令删除变量赋值
Z=hell
echo $Z
unset Z
在shell脚本中单引号时强类型,双引号时弱类型,使用单引号引用时变量不发生任何变化,例如:echo ‘$Z‘ 打印出来还是$Z
[email protected] 在for循环中是一个一个输出
read -s 输入隐藏
-n:限制输出次数
-p :打印一句话 在输出
expr:只能用于用于进行简单的正数运算。
expr 12+5\*3 结果为27
test 命令用于检查某个条件是否成立,与方括号([ ])类似。
测试文件类型:test -d file :测试是否为一个目录
-d:测试是否为一个目录
-e:是否为一个文件
-f:是否为一个普通文件
-L:是否为符号链接
-r :是否存在可读
-w:是否可写
-x:是否执行
-s:文件是否存在且长度不为0
f1 -nt f2:测试是否比文件f2更新
f1 -ot f2:是否比文件f2更旧
if 、elif 、continue,break使用
if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if ... else 语句:
if ... fi 语句;
if ... else ... fi 语句;
if ... elif ... else ... fi 语句
if ... else 语句的语法:
if [ expression ]
then
Statement(s) to be executed if expression is true
fi
如果 expression 返回 true,then 后边的语句将会被执行;如果返回 false,不会执行任何语句。
最后必须以 fi 来结尾闭合 if,fi 就是 if 倒过来拼写,后面也会遇见。
注意:expression 和方括号([ ])之间必须有空格,否则会有语法错误。
举个例子:
#!/bin/sh
a=10
b=20
if [ $a == $b ]
then
echo "a is equal to b"
fi
if [ $a != $b ]
then
echo "a is not equal to b"
fi
运行结果:
a is not equal to b
if ... elif ... fi 语句
if ... elif ... fi 语句可以对多个条件进行判断,语法为:
if [ expression 1 ]
then
Statement(s) to be executed if expression 1 is true
elif [ expression 2 ]
then
Statement(s) to be executed if expression 2 is true
elif [ expression 3 ]
then
Statement(s) to be executed if expression 3 is true
else
Statement(s) to be executed if no expression is true
fi
哪一个 expression 的值为 true,就执行哪个 expression 后面的语句;如果都为 false,那么不执行任何语句。
case...esac
多路分支语句case用于多重条件测试,语法结构清晰自然,其语法为
case 字符串变量 in #case语句只能测试字符串变量
模式1)
命令表
;;
模式2|模式3)
命令表
;;
*)
命令表
;; #最后一个双分号可以省略
esac #结束标志
for...do..done
当循环次数已知或确定时,使用for循环语句来多次执行一条或一组命令。循环体由语句括号do和done来限定
格式为:
for 变量名 in 单词表 #意味者在变量名的大小从单词表中查找
do
命令表
done
变量一次取单词表中的各个单词,每取一次单词,就执行一次循环体中的命令,循环次数由单词表中的单词数确定。命令表中的命令可以时一条,也可以是由分号或换行符分开的多条
如果单词表使命令行上的所有位置参数时,可以在for语句中省略in单词表部分。
用for实现死循环
例如:
for i
do
echo
done
break,continue:不同于C语言,java等其他语言
break 后面不加数字,表示跳过一个循环
break 2 意味着:跳过两成循环
continue后面什么也不加意味着结束本次循环
continue 2 意味着 第一层为break;第二层为continue。
写的不好勿喷,嘻嘻。如果有错的,请多多指教。鄙人将不胜感激。
以上是关于简单的linux运用的主要内容,如果未能解决你的问题,请参考以下文章