❶ PowerShell 基本语法及常用命令
PowerShell常用命令:
一 Get类
1.Get-Command : 得到所有PowerShell命令,获取有关 cmdlet 以及有关 Windows PowerShell 命令的其他元素的基本信息。 包括Cmdlet、Alias、Function。
2.Get-Process : 获取所有进程
3.Get-Help : 显示有关 Windows PowerShell 命令和概念的信息
4.Get-History : 获取在当前会话中输入的命令的列表
5.Get-Job : 获取在当前会话中运行的 Windows PowerShell 后台作业
6.Get-FormatData : 获取当前会话中的格式数据
7.Get-Event : 获取事件队列中的事件
8.Get-Alias : 获取当前会话的别名
9.Get-Culture :获取操作系统中设置的当前区域性
12.Get-Member : 获取对象的属性和方法。
13.Get-Random : 从集合中获取随机数或随机选择对象
14.Get-UICulture : 获取操作系统中当前用户界面 (UI) 区域性设置
15.Get-Unique : 从排序列表返回唯一项目
16.Get-Variable :获取当前控制台中的变量
17.Get-EventLog : 获取本地或远程计算机上的事件日志或事件日志列表中的事件
18.Get-ChildItem : 获取一个或多个指定位置中的项和子项
19.Get-Content : 获取指定位置的项的内容
20.Get-ItemProperty :获取指定项的属性
21.Get-WmiObject : 获取 Windows Management Instrumentation (WMI) 类的实例或可用类的相关信息
22.Get-Location :获取当前工作位置的相关信息(如:F:\Users\TaoMin )
23.Get-PSDrive:获取当前会话中的 Windows PowerShell 驱动器
24.Get-Item:获取位于指定位置的项
25.Get-Process :获取在本地计算机或远程计算机上运行的进程
26.Get-Service : 获取本地或远程计算机上的服务
27.Get-Transaction :获取当前(活动)事务
28.Get-ExecutionPolicy :获取当前会话中的执行策略
二.Set类 (set类命令一般都含有参数)
1.Set-Alias : 在当前 Windows PowerShell 会话中为 cmdlet 或其他命令元素创建或更改别名(替代名称)
2.Set-PSDebug :打开和关闭脚本调试功能,设置跟踪级别并切换 strict 模式
3.Set-StrictMode :建立和强制执行表达式、脚本和脚本块中的编码规则
4.Set-Date :将计算机上的系统时间更改为指定的时间
5.Set-Variable :设置变量的值,如果该变量还不存在,则创建该变量
6.Set-PSBreakpoint :在行、命令或者变量上设置断点
7.Set-Location :将当前工作位置设置为指定的位置
8.Set-Item :将项的值更改为命令中指定的值
9.Set-Service :启动、停止和挂起服务并更改服务的属性
10.Set-Content :在项中写入内容或用新内容替换其中的内容
11.Set-ItemProperty :创建或更改某一项的属性值
12.Set-WmiInstance :创建或更新现有 Windows Management Instrumentation (WMI) 类的实例
13.Set-ExecutionPolicy :更改 Windows PowerShell 执行策略的用户首选项。
三.Write类
1.Write-Host : 将自定义输出内容写入主机。类似于.net的 write()或者writeline()功能
2.Write-Progress :在 Windows PowerShell 命令窗口内显示进度栏
3.Write-Debug :将调试消息写入控制台
4.Write-Verbose:将文本写入详细消息流
5.Write-Warning :写入警告消息
6.Write-Error : 将对象写入错误流
7.Write-Output : 将指定对象发送到管道中的下一个命令;如果该命令是管道中的最后一个命令,则在控制台上显示这些对象
8.Write-EventLog :将事件写入事件日志
PowerShell变量、常量、数组:
一、变量
PowerShell的变量无需预定义,可直接使用。当使用一个变量时,该变量被自动声明。
变量以 $ 符号开头。如: $a
PowerShell普通变量:
1.给变量赋值:
方式一:
$a = "This is a string"
$b = 123
$c = 0.125
方式二:
Set-Variable var 100
Set-Variable var1 ”test“
Set-Variable va2 800
2.获取变量值
get-variable var #获取单个变量值
get-variable var* #获取多个变量值
3.清空变量值
clear-variable var
4.删除变量
remove-variable var
5.连接两个字符串变量
$a = "This is the 1st string"
$b = "This is the 2nd string"
a + " and " + $b
$c
结果:This is the 1st string and This is the 2nd string
6.变量的方法
$date = Get-Date #获取当前时间
$date.AddDays(3) #当前时间加三天
PowerShell特殊变量:
强制指定变量类型:
一般不需要为PowerShell的变量指定类型。但是也可以强制指定变量类型。
如:[int] $b = 5
常见变量类型如下:
二、常量
三、数组
PowerShell注释用法:
PowerShell运算符用法:
运算符如下:
1.算术二元运算符:
2.赋值运算符
3.逻辑运算符
PowerShell函数用法:
用法一如下:(函数中改变变量值并不影响实际值)
执行结果:
用法二如下:(函数中变量值的改变要用$Script:var的形式)
执行结果:
PowerShell条件控制的用法:
一、循环类
1.foreach的用法
用法一如下:
执行结果:
用法二如下:直接获取管道数据
执行结果:
2.while的用法
用法一如下:
n -le 5) #当 n
$n++
}
执行结果:
用法一如下:
n
n -ne 3) #当$n<>3时进行循环操作
执行结果:
用法一如下:
n
n -gt 3) #当$n>3时停止操作
执行结果:
二、分支类
1.if用法
if语法结构如下:
用法如下:
执行结果:
2.switch用法
switch语法结构如下:
用法一如下: switch(表达式)
执行结果:
用法二如下:switch -casesensitive (表达式)表示区分大小写
执行结果: It's Monday
用法三如下:switch -regex(表达式)表示正则表达式匹配
执行结果:字母+数字,匹配为:day6
用法四如下:switch -regex(表达式)表示正则表达式匹配 表达式可为数组
执行结果:字母+数字,匹配为:day5
用法五如下:switch -wildcard (表达式)表示通配符匹配
执行结果:day2,匹配为:day2
三、跳转类
1.break用法:break语句出现在foreach、for、while、switch等结构中时,break语句将使windows powershell立即退出整个循环。
用法如下:
执行结果:
2.continue用法:continue语句出现在foreach、for、while等循环结构中时,continue语句将使windows powershell立即退出某一次轮循环,并继续下一轮循环。
用法如下:
执行结果:
PowerShell抛出异常的Throw用法:
用法如下:
返回结果:danger 及详细错误信息
PowerShell获取出错信息的用法:
用法如下:
function one
{
get-process -ea stop #-ea定义错误发生以后该如何继续执行,意同-ErrorAction
get-childitem ada -ErrorAction stop #此处有错误 路径ada不存在
get-process -ErrorAction stop
}
返回结果:报出错误信息
PowerShell单步调试的用法:
用法如下:
执行结果:会出现逐步调试的对话框
本文转自 https://www.cnblogs.com/feng-zi/p/9935874.html
❷ xshell 6 的使用以及常用命令(附下载)
Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。
如何安装,请参考如下:
命令ls——列出文件
ls 显示当前目录文件
ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件
ls a* 列出当前目录下以字母a开头的所有文件
ls -l *.doc 给出当前目录下以.doc结尾的所有文件
命令cp——复制文件
cp afile afile.bak 把文件复制为新文件afile.bak
cp afile /home/bible/ 把文件afile从当前目录复制到/home/bible/目录下
cp * /tmp 把当前目录下的所有未隐藏文件复制到/tmp/目录下
cp -a docs docs.bak 递归性地把当前目录下的docs目录复制为新目录docs.bak,保持文件属性,并复制所有的文件,包括以句点开头的隐藏文件。为了方便起见,-a选项包含-R选项
cp -i 在覆盖前询问用户
cp -v 告诉用户正在做什么
命令rm——删除文件和目录 rm afile 删除文件afile
rm * 删除当前目录下的所有文件(未隐藏文件)。rm命令不删除目录,除非也指定了-r(递归)参数。
rm -rf domed 删除domed目录以及它所包含的所有内容
rm -i a* 删除当前目录下所有以字母a开头的文件,并且在每次删除时,提示用户进行确认
4
命令mv——移动和重命名文件 mv aflie bfile 将afile重命名为bfile
mv afile /tmp 把当前目录下的afile移动到/tmp/目录下
5
命令cd——更改目录
cd 切换到主目录
cd ~ 切换到主目录
cd /tmp 切换到目录/tmp
cd dir 切换到当前目录下的dir目录
cd / 切换到根目录
cd .. 切换到到上一级目录
cd ../.. 切换到上二级目录
cd ~ 切换到用户目录,比如是root用户,则切换到/root下
❸ 超实用的adb与adb shell常用命令汇总
adb(android Debug Bridge),SDK自带的工具,可实现桥接功能,实现PC和android设备的交互
adb shell:基于Android linux系统操作,放在安卓设备的system/bin目录下,手机端的命令
一:adb常用命令
1. PC连接android设备
(PC与android设备连接同一个wifi,或处于同一个局域网)
连接:adb connect ip:5555
断开连接:adb disconnect ip
查看连接设备的信息:adb devices
获取设备的状态:adb get-state
2. 重启adb server
打开adb服务:adb start-service
关闭adb服务:adb kill-service
3. 安装卸载软件
安装:adb install apkpath(某个apk)
adb install -r :强制安装
卸载: adb uninstall package(可用adb shell pm list packages查看包名)
4. 打印日志
打印android系统日志:adb logcat
将日志打印并保存指定文件夹:adb logcat > /Users/apple/Desktop/log.txt
终止进程:control+C
打印mpsys,mpstate,logcat的输出,用于分析错误:adb bugreport
5. PC与android设备上文件复制
android设备上文件复制到PC上:adb pull
PC上文件推至android设备:adb push
6.重新挂载system分区为可写,需要root权限./system分区默认挂载为只读,但有些操作比如给android系统添加命令,删除自带应用等需对系统进行写操作,得重新挂载为可写
adb shell
su
或:adb root
adb remount 重新挂载文件系统,获得可写的权限(默认情况是只有可读权限的),使用adb remount 的前提是要有root权限
7. 删除系统应用
adb root
adb remount
adb shell
cd system/app
rm *apk
二:adb shell命令
adb shell 进入系统子目录,exit 退出
1. pm命令
列出系统应用的所有包名:adb shell pm list packages 可用grep来过滤:adb shell pm list packages | grep 关键字
清除应用数据与缓存:adb shell pm clear <packagename>
2. am命令
启动应用:adb shell am start -n com.xxx.xxxxxxx|xxx.Activity(可通过adb shell mpsys activity activities | grep mFocusedActivity查看
强制停止应用:adb shell am force-stop <packagename>
3. input命令
模拟点击事件,点击坐标点(x,y):adb shell input tap x y
模拟滑动事件,从(x1,y1)到(x2,y2):adb shell input swipe x1 y1 x2 y2
发送文本内容:adb shell input text
模拟按下home:adb shell input keyevent KRYCODE_HOME
4. screencap命令
截屏:adb shell screencap
5. 查看网络状态命令
查看当前网络状态:adb shell netstat
通过配置文件配置和管理网络连接:adb shell netcfg
查看网络信息:ifconfig
测试网络联网状态:ping
5.其它相关命令
查看当前终端中进程:adb shell ps
获取cpu信息:adb shell cat /proc/cpuinfo
查看内存信息:adb shell cat /proc/meminfo
查看屏幕分辨率:adb shell wm size
查看设备ip地址:adb shell ifconfig | grep Mask
查看实时资源占用情况:adb shell top
❹ shell基本命令
常用命令
一、目录操作
a) ls--查看文件/目录:
常用:ls –l 查看详细文件列表
b) pwd--查看当前目录:
c) cd--改变工作目录:
常用①:cd ../ 跳转到上一级目录
备注: [./]当前目录 [../]上一级目录
常用②:cd /boot/ 跳转到指定目录
备注:指定目录一定是完整路径,例如win的文件路径一样。
d) mkdir--创建目录:
常用:mkdir 123 创建一个空文件夹
e) rm--删除文件/目录:
常用: rm -rf 123 删除目录文件夹,并且目录下的文件一并删除。
备注:直接使用命令[rm],只能删除空目录。
-r 删除目录 -f 强制删除文件或目录
f) mv--移动文件/目录改名、移动:
移动文件: mv 1.sh ./123 à mv 目标文件 移动至某目录
重名命文件:mv 1.sh 123.sh à mv 原文件 欲改后文件
g) ln--建立软连接和硬连接:
软连接:ln -s 123.sh ../ à ln -s 源文件 欲放置路径
如同window下的快捷方式,原理一致。
ln -s /root/桌面/共享文件夹/armQT/ /root/桌面
硬连接:ln 123.sh ../ à ln 源文件 欲放置路径
复制一个文件,且该文件具有独立性,不受源文件删除的影响;无论源文件或目标文件的内容修改时,两份文件都会同步修改。
h) rmdir--删除空目录:
二、文件操作
a)cat--查看文件内容,若文件不存在,创建对应文件:
常用:cat 1.txt
b)cp--拷贝文件、目录:
备份:cp 123.sh 1.sh à cp 源文件 目标文件
复制至某路径:cp 123.sh ../ à cp 源文件 目标路径
c)chmod--修改文件权限:
常用:chmod 777 1.sh 给1.sh最高权限
备注:读、写、运行三项权限可以用数字表示,就是r=4,w=2,x=1。
777就是rwxrwxrwx,意思是该登录用户(可以用命令id查看)、他所在的组和其他人都有最高权限。
一般模式:chmod +rw 1.sh 仅当前用户下1.sh具有可读写权限
d)touch--创建文件:
常用:touch ./1.sh à touch 路径+名称
f)vim--创建并打开文件:
常用:vim ./1.sh à vim 路径+名称
g)find--在指定目录查找符合条件的文件:
以[文件名+类型]寻找:find ./ -name “*.*”à find 路径 -nama “预找文件名+类型”
寻找文件名为”123”的文件,*代表不限制类型
find ./ ! -name “*.txt” à 过滤txt类型文件后,显示其他文件
备注:-name 区分大小写 -iname 不区分大小写
-o 连接符,作用如下图
以[文件名]寻找:find ./ -path “*1*”à find 路径 - path “预找文件名”
寻找文件名为”1”的所有文件
根据文件类型进行搜索:find . -type 类型参数
h)grep--在文件里查找内容:
从指定文件里查找内容:grep h ./file.txt à grep 内容 路径
从缓存区里查找内容:ps -ef | grep 5799 à 某显示命令 | grep 内容
(从进程列表中寻找带有”5799”的文本行)
i)tar--解压文件:
压缩:
tar -cvf 1.tar *.* //将目录里所有文件打包成1.tar
rar a 1.rar *.* //rar格式的压缩
zip 1.zip *.* //zip格式的压缩
解压:
tar -xvf file.tar //解压tar包
tar -xzvf file.tar.gz //解压tar.gz
unrar e file.rar //解压rar
unzip file.zip //解压zip
j)file--显示指定文件的类型:
三、用户系统及权限管理操作
a)su--用户类型切换:
b)adser--添加用户:
c)passwd--设置(更改)用户口令:
d)usermod--设置用户属性:
e)ps--显示当前系统用户进程列表:
常用:ps -ef 显示当前系统所有用户的详细进程
-e 显示所有程序。 -f 显示UID,PPIP,C与STIME栏位
-A 显示所有程序。
f)kill--删除执行中的进程:
常用:kill 123 à kill pid号
强制结束进程: kill -9 123 à kill -9 pid号
四、帮助命令
a)man--查询命令阅读手册
man kill à 查询有关[kill]的全部信息
man 2 kill à 只查询第二条有关[kill]的信息
b)help--查询命令阅读手册
五、网络相关命令
a)ifconfig 查看网络信息,设置ip
b)ping 测试网络联网状态
六、U盘操作相关命令
a)fdisk -l 识别usb存储设备
b)mount –t vfat /dev/sdb /mnt/udisk使用mount命令挂载U盘
c)umount /mnt/udisk 卸载U盘
七、安装软件包命令
a)rpm
常用组合命令:
-ivh:安装显示安装进度--install--verbose--hash
-Uvh:升级软件包--Update;
-qpl: 列出RPM软件包内的文件信息[Query Package list];
-qpi:列出RPM软件包的描述信息[Query Package install package(s)];
-qf:查找指定文件属于哪个RPM软件包[Query File];
-Va:校验所有的 RPM软件包,查找丢失的文件[View Lost];
-e:删除包
❺ 常见的shell都有哪些
三种主要的 Shell 与其分身
在大部份的UNIX系统,三种着名且广被支持的shell 是Bourne shell(AT&T shell,在 Linux 下是BASH)、C shell(Berkeley shell,在 Linux 下是TCSH)和 Korn shell(Bourne shell的超集)。这三种 shell 在交谈(interactive)模式下的表现相当类似,但作为命令文件语言时,在语法和执行效率上就有些不同了。
Bourne shell 是标准的 UNIX shell,以前常被用来做为管理系统之用。大部份的系统管理命令文件,例如 rc start、stop 与shutdown 都是Bourne shell 的命令档,且在单一使用者模式(single user mode)下以 root 签入时它常被系统管理者使用。Bourne shell 是由 AT&T 发展的,以简洁、快速着名。 Bourne shell 提示符号的默认值是 $。
C shell 是柏克莱大学(Berkeley)所开发的,且加入了一些新特性,如命令列历程(history)、别名(alias)、内建算术、档名完成(filename completion)、和工作控制(job control)。对于常在交谈模式下执行 shell 的使用者而言,他们较喜爱使用 C shell;但对于系统管理者而言,则较偏好以 Bourne shell 来做命令档,因为 Bourne shell 命令档比 C shell 命令档来的简单及快速。C shell 提示符号的默认值是 %。
Korn shell 是Bourne shell 的超集(superset),由 AT&T 的 David Korn 所开发。它增加了一些特色,比 C shell 更为先进。Korn shell 的特色包括了可编辑的历程、别名、函式、正规表达式万用字符(regular expression wildcard)、内建算术、工作控制(job control)、共作处理(coprocessing)、和特殊的除错功能。Bourne shell 几乎和 Korn shell 完全向上兼容(upward compatible),所以在 Bourne shell 下开发的程序仍能在 Korn shell 上执行。Korn shell 提示符号的默认值也是 $。在 Linux 系统使用的 Korn shell 叫做 pdksh,它是指 Public Domain Korn Shell。
除了执行效率稍差外,Korn shell 在许多方面都比 Bourne shell 为佳;但是,若将 Korn shell 与 C shell 相比就很困难,因为二者在许多方面都各有所长,就效率和容易使用上看,Korn shell 是优于 C shell,相信许多使用者对于 C Shell 的执行效率都有负面的印象。
在shell 的语法方面,Korn shell 是比较接近一般程序语言,而且它具有子程序的功能及提供较多的资料型态。至于 Bourne shell,它所拥有的资料型态是三种 shell 中最少的,仅提供字符串变量和布尔型态。在整体考量下 Korn shell 是三者中表现最佳者,其次为 C shell,最后才是 Bourne shell,但是在实际使用中仍有其它应列入考虑的因素,如速度是最重要的选择时,很可能应该采用 Bourne shell,因它是最基本的 shell,执行的速度最快。
作者: benny_feng 发布日期: 2006-10-17
tcsh 是近几年崛起的一个免费软件(Linux 下的C shell 其实就是使用 tcsh)执行,它虽然不是UNIX 的标准配备,但是从许多地方您都可以下载到它。如果您是 C shell 的拥护者,笔者建议不妨试试 tcsh,因为您至少可以将它当作是 C shell 来使用。如果您愿意花点时间学习,您还可以享受许多它新增的优越功能,例如:
1. tcsh 提供了一个命令列(command line)编辑程序。
2. 提供了命令列补全功能。
3. 提供了拼字更正功能。它能够自动检测并且更正在命令列拼错的命令或是单字。
4. 危险命令侦测并提醒的功能,避免您一个不小心执行了rm* 这种杀伤力极大的命令。
5. 提供常用命令的快捷方式(shortcut)。
bash 对 Bourne shell 是向下兼容(backward compatible),并融入许多C shell 与Korn shell 的功能。这些功能其实 C shell(当然也包括了tcsh)都有,只是过去 Bourne shell 都未支持。以下笔者将介绍 bash 六点重要的改进(详细的使用说明笔者会在以后的章节介绍):
1. 工作控制(job contorl)。bash 支持了关于工作的讯号与指令,本章稍后会提及。
2. 别名功能(aliases)。alias 命令是用来为一个命令建立另一个名称,它的运作就像一个宏,展开成为它所代表的命令。别名并不会替代掉命令的名称,它只是赋予那个命令另一个名字。
3. 命令历程(command history)。BASH shell 加入了C shell 所提供的命令历程功能,它以 history 工具程序记录了最近您执行过的命令。命令是由 1 开始编号,默认值为500。history 工具程序是一种短期记忆,记录您最近所执行的命令。要看看这些命令,您可以在命令列键入 history,如此将会显示最近执行过之命令的清单,并在前方加上编号。
这些命令在技术上每个都称为一个事件。事件描述的是一个已经采取的行动(已经被执行的命令)。事件是依照执行的顺序而编号,越近的事件其编号码越大,这些事件都是以它的编号或命令的开头字符来辨认的。history 工具程序让您参照一个先前发生过的事件,将它放在命令列上并允许您执行它。最简单的方法是用上下键一次放一个历程事件在您的命令列上;您并不需要先用 history 显示清单。按一次向上键会将最后一个历程事件放在您的命令列上,再按一次会放入下一个历程事件。按向下键则会将前一个事件放在命令列上。
❻ 分享Windows7系统常用shell命令介绍
Windows7系统常用shell命令介绍
Windows7系统相对以前版本的Windows系统,拥有更高的稳定性、兼容性、人性化等等各式各样的服务。而Windows 7中的shell命令行,则是许多用户都没有发现的又一重要更新,Windows 7 shell是Windows 7系统的控制台。对于熟悉了命令行的人来说,用键盘调用程序比鼠标更快更省力。
shell:Profile
该命令能打开用户的总目录。一般它的总目录的位置是c:usersusername。可以通过点击系统开始菜单上的.用户名称访问。
shell:Personal
该命令可以打开当前用户的文档文件夹。也可以通过点击开始菜单中的我的文档进行访问。
shell:SendTo
该命令可以打开“发送到”文件夹。
shell:Public
该命令可以打开公用共享文件夹。
shell:Common Startup和shell:Startup
该命令可以显示哪些程序在系统启动时会自动启动。
shell:ConnectionsFolder
该命令可以显示当前网络连接。通常的方法是单击网络和共享中心,然后选择更改适配器设置查看。
shell:programs和shell:Common Programs
这两个命令可以访问当前用户和系统用户开始菜单中的程序列表windows7系统下载。
shell:AppData和shell:Local AppData
这两个命令可以打开Roaming Application Data文件夹Local Application Data文件夹。这两个文件夹在日常应用中不常用到的。
shell:Cookies和shell:cache
这两个命令是查看Internet Explorer存储信息最快捷的方式。
shell:Profile
当前登录用户的根目录。
shell:Searches
当前登录用户的搜索文件夹,保存了已经存储过的搜索结果。
shell:Links
当前登录用户的链接文件夹,保存了Internet Explorer浏览器的导航面板。
编辑点评:用户可以用“Shell:”命令可以用资源管理器打开的项目一次完需要很多步骤才能完成的任务,并且使用时的语法也很简单。但许多用户都不知道 shell命令有哪些,与可实现的操作。
❼ 求助:LINUX常用SHELL命令
分类: 电脑/网络 >> 操作系统/系统故障
问题描述:
欢迎大家的投稿!!!!!!!
解析:
LINUX常用命令
1 文件与目录操作命令
1.1文件内容查询命令
grep、fgrep、egrep
CODE:[Copy to clipboard]语法:grep[选项][查找模式][文件名1,文件名2,……]
选项:
QUOTE:
-E 每个模式作为一个扩展的正则表达式对待
-F 每个模式作为一组固定字符串对待,而不作为正则表达式
-i 比较时不区分大小写
-l 显示首次匹配匹配串所在的文件名并用换行符将其分开。当在文件中多次出现匹配串时,不重复显示次文件名;
-x 只显示整行严格匹配的行
1.2文件查找命令 find、locate
语法:
CODE:[Copy to clipboard]find 起始目录 寻找条件 操作
以名称和文件属性查找
QUOTE:
-name‘字串‘ 查找文件名匹配所给字串的所有文件,字串内可用通配符*、?、[]。
-lname‘字串‘ 查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符*、?、[]。
-gid n 查找属于ID号为n的用户组的所有文件。
-uid n 查找属于ID号为n的用户的所有文件。
-group‘字串‘ 查找属于用户组名为所给字串的所有的文件。
-user‘字串‘ 查找属于用户名为所给字串的所有的文件。
-path‘字串‘ 查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[]。
-perm 权限 查找具有指定权限的文件和目录,权限的表示可以如711、644。
-type x 查找类型为 x的文件,
语法:locate 相关字
1.3文件的复制、删除和移动命令
文件复制命令
CODE:[Copy to clipboard]cp [选项] 源文件或目录 目标文件或目录
选项:
QUOTE:
- a 通常在拷贝目录时使用
-d 拷贝时保留连接
-f 删除已经存在的目标文件而不提示
-i 和f选项相反
-p 此时cp除复制源文件内容外,还将其修改的时间和访问权限也复制到新文件中
-r 若给出的源文件是一目录文件,此时cp将递归复制该目录下的所有的子目录和文件,此时目标文件必须为一个目录名;
-l 不作拷贝,只是链接文件
文件移动命令
CODE:[Copy to clipboard]mv[选项] 源文件或目录 目标文件或目录
QUOTE:
-i 交互式操作
-f 禁止交互式操作
文件删除命令
CODE:[Copy to clipboard]rm[选项] 文件…
QUOTE:
-f 忽略不存在的文件,从不给出提示
-r 指示rm将参数中列出的全部目录和子目录均递归地删除
-i 进行交互式删除
1.4文件链接命令
CODE:[Copy to clipboard]ln [选项] 目标 [链接名] 或 ln [选项] 目标 目录
QUOTE:
选项:
- s 建立符号链接
1.5目录的创建和删除命令
mkdir 创建一个目录
语法:
CODE:[Copy to clipboard]mkdir [选项] dirname
选项:
- m 对新建目录设置存取权限
-p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
rmdir 删除空目录
语法:
CODE:[Copy to clipboard]rmdir [选项] dirname
QUOTE:
选项:
- p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。
1.6改变工作目录,显示目录内容命令
1、改变工作目录:
CODE:[Copy to clipboard]cd [directory]
2、显示当前工作的目录的绝对路径:
CODE:[Copy to clipboard]pwd
3、显示目录内容:
CODE:[Copy to clipboard]ls [选项] [目录或是文件]
QUOTE:
选项:
- a 显示指定目录下所有子目录与文件,包括隐藏文件;
-c 按照文件的修改时间排序
-C 分成多列显示各项
-d 如果参数是目录,只显示其名称而不显示其下的个文件
-F 在目录名后面标记“/”,可执行文件后面标记“*”,符号链接后面标记“@”,管道(或FIFO)后面标记“|”,socket文件后面标记“=”。
-l 以长格式来显示文件的详细信息
-L 若指定的名称为一个符号链接,则显示链接所指向的文件
-t 显示时按修改时间而不是名字排序
-u 显示时按文件上次存取的时间而不是名字排序
4、改变文件或目录的访问权限命令
CODE:[Copy to clipboard]chmod [who] [+| - | = ] [mode] 文件名?
QUOTE:
Who选项:
- u表示用户,即文件和目录的所有者
-g表示同组用户
-o(other)表示其他用户
-a (all)表示所有用户
QUOTE:
操作符号:
+ 添加某个权限 - 取消某个权限
= 赋予给定权限并取消其他所有的权限(如果有的话)
QUOTE:
mode 选项:
- r 可读
-w 可写
-x 可执行
CODE:[Copy to clipboard]chgrp [-R] group filename? 改变目录或文件所属的组
CODE:[Copy to clipboard]chown [-Rv] 用户或组 文件
1.7备份与压缩命令
1、tar命令 为文件和目录创建档案
语法:
CODE:[Copy to clipboard]tar [主选项+辅助选项] 文件或者目录
QUOTE:
u 主选项
c 创建新的档案文件。如果用户想备份一个目录或是一些文件,则选此项
r 把要存档的文件追加到档案文件的末尾
t 列出档案文件的内容,查看已经备份了哪些文件;
u 更新文件
x 从档案文件中释放文件;
u 辅助选项
b 该选项为磁带机设定的,其后跟一位数字,用来说明区块的大小,系统预设值为20
f 使用档案文件或设备,这个选项通常是必选的
k 保存已经存在的文件。例如把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖;
m 在还原文件时,把所有文件的修改时间设定为现在;
M 创建多卷的档案文件,以便在几个磁盘中存放;
v 详细报告tar处理的文件信息
w 每一步都要求确认
z 用gzip来压缩/解压缩文件
2、gzip命令 压缩/解压缩命令
语法:
CODE:[Copy to clipboard]gzip [选项] 压缩(解压缩)的文件名
QUOTE:
选项:
-c 将输出写到标准输出上,并保留原有文件
-d 将压缩文件解压
-l 显示每个压缩文件的详细信息
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩
-t 测试、检查压缩文件是否完整
-v 对每一个压缩和解压的文件,显示文件名和压缩比
3、unzip 命令
用MS windows下的压缩软件winzip压缩的文件在linux系统下展开
语法:
CODE:[Copy to clipboard]unzip [选项] 压缩文件名.zip
QUOTE:
选项:
-x 文件列表 解压缩文件,但不包括指定的file文件
-v 查看压缩文件目录,但不解压
-t 测试文件有无损坏 ,但不解压
-d 目录 将压缩文件解到指定目录下
-z 只显示压缩文件的注解
-n 不覆盖已经存在的文件
-o 覆盖已经存在的文件且不要求用户确认
-j 不重建文档的目录结构,把所有文件解压到同一目录下
1.8在LINUX环境下运行DOS命令
linux系统提供了一组称为mtools的可移植工具,可以让用户轻松地从标准的DOS软盘上读写文件和目录。
QUOTE:
mcd 目录名 改变MSDOS目录
m 源文件 目标文件 在MSDOS和UNIX之间复制文件;
mdel 目录名 删除MSDOS目录
mdir 目录名 显示MSDOS目录
mformat 驱动器号 在低级格式化的软盘上创建MSDOS文件系统
rnlabel 驱动器号 产生MSDOS卷标
mmd 目录名 删除MSDOS目录
mren 源文件 目标文件 重新命名已存在的MSDOS文件
mtype 文件名 显示MSDOS文件的内容
2 设备管理命令
1)linux采用下面的形式定义一个IDE硬盘:
CODE:[Copy to clipboard]/dev/hd[drive][partition]
2)SCSI硬盘使用同样的机制表示:
CODE:[Copy to clipboard]/dev/sd[drive][partition]
3)对于一般的LINUX分区,可以用mkfs将其格式化并生成文件系统,命令如下:
CODE:[Copy to clipboard]mk2fs –c <partition>; <size>;
4)装载文件系统:
CODE:[Copy to clipboard]mount –t ext2 [-o optioms] partition mountpiont
其中,
QUOTE:
-t为指定装载文件系统的类型;
-o指定一些选项,如只读ro,可读可写rw等等;
partition定义分区名称;
mountpiont定义文件系统被装载的目录名称。
5)装载CD-ROM文件系统:
CODE:[Copy to clipboard]mount –t iso9660 –r /dev/cdrom /mnt/cdrom
6)装载软驱文件系统:
CODE:[Copy to clipboard]mount –t msdos –rw /dev/fd0 /dev/mnt/floppy
7)卸载文件系统
CODE:[Copy to clipboard]umount /mnt/cdrom
磁带设备的安装要注意以下几点:
QUOTE:
1、 首先要选择一个唯一的SCSI ID号,然后再将设备链接到适当的位置
2、 选择驱动程序。
3、 生成设备文件。SCSI磁带设备的主要设备号是9,次要设备号是0。设备文件名通常是/dev/nrst0(不支持回绕的磁带设备)或/dev/nst0(支持回绕的磁带设备)
用 ls /dev/*rst*
检查磁带设备文件是否存在,如果不存在,用
mknod –m 666 /dev/nrst0 c 9 9
mknod –m 666 /dev/rst0 c 9 0 生成
4、 可以对块长度、缓存、磁带密度等参数进行一些设置,例如
mt setblk 20 将块长度指定为20
mt setblk 0 指定块程度没有限制
5、 通过检查系统的启动信息可以确定系统是否识别了新的磁带设备。用dmesg命令,查看是否有以下类似的信息:
aha274x:target 4now synchronous at 4.4Mb/s
Vendor:TANDBERG Model:TDC 3800 Rev: =05:
Type: Sequential-Access ANSI SCSI revision: 02
Detected scsi tape st0 at scsi0, id4, lun0
Scsi : detected 1 SCSI tape 1 SCSI crom 1 SCSI disk total
3 软件包管理命令
3.1软件安装的步骤
在LINUX系统上安装软件的步骤有:
QUOTE:
1、 查找所要安装软件的源文件
2、 把源文件解开放到一个目录中,命令如下:
tar zxvf <源文件名>;
3、 针对本操作系统配置源文件。可以是编辑make文件或其他文件,也可能是运行该软件自带的自动配置工具,如./configure
4、 make源文件,通常是运行make命令,即执行 make
5、 安装二进制文件和其他支撑文件,运行命令: make install
6、 最后,完成所有其他必须的配置
3.2软件包管理命令
QUOTE:
rpm –ivh <软件包>;
安装指定的软件包,并在安装过程中用#表示安装的进度
rpm –Uvh <软件包>;
更新一个已经存在的或还没安装好的软件包,并删除所有该软件包的旧版本。
rpm –e
卸载一个rpm软件包
rpm –qa
查看系统中已经安装的软件包
rpm –q <软件包>;
查看系统中某个软件包的版本号;
rpm –qlp <软件包>;
列出某个软件包中的所有文件
rpm –qf <软件包>;
找出一个文件属于哪个软件包
4 LINUX系统常用命令
4.1 与系统管理有关的命令
Wall (Write All)
QUOTE:
对全部已 登录的用户发送信息,用户可以先反要发送的信息写好存入一个文件中,然后输入:
# wall < FileName
例:Wall ‘Thank you !’
Write
向某一用户发送信息。
Write xxq
hello
输入Ctrl+C组合即可终止
Shutdown命令
CODE:[Copy to clipboard]Shutdown [选项] [时间] [警告信息]
QUOTE:
-k 并不真正关机,而只是发出警告信息给所有的用户。
-r 关机后立即重新启动。
-h 关机后不重新启动。
-f 快速关机,启动时跳过fsck。
-n快速关机,不经过init程序。
-c 取消一个已经运行的shutdown
例:系统马上关机:Shutdown –h now
Free命令
查看当前系统内存的使用情况,
CODE:[Copy to clipboard]Free [-b] [-k] [-m]
CODE:[Copy to clipboard]-b 以字节为单位显示。
-k 以K字节为单位显示。
-m 以M字节为单位显示。
Uptime
QUOTE:
显示系统已经运行了多长的时间:现在时间、系统已经运行的时间、目前有多少登录用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
4.2与用户有关的命令
Passwd命令
设置、更换用户口令。
CODE:[Copy to clipboard]Passwd [用户名]
Su
使一个普通的用户具有超级用户的权利,离开可用EXIT命令。
4.3其它命令
Echo命令
在显示器上显示一段文字,一般起到一个提示的作用。
CODE:[Copy to clipboard]echo [-n] 字符串
Cal命令
显示某年某月的日历。
CODE:[Copy to clipboard]cal [选项] [月[年]]
QUOTE:
选项的含义:
-j 显示也给定月中的每一天是一年中的和几天(从1月1日算起)。
-y 显示也整年的日历。
Date命令
date命令的功能是显示和设置系统日期和时间。
4.4磁盘管理
磁盘空间管理
df命令
检查文件系统的磁盘空间占用局部。
CODE:[Copy to clipboard]Df [选项]
QUOTE:
-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。
-k 以K字节为单位显示。
-i 显示i节点信息,而不是磁盘块。
- t 显示各指定类型的文件系统的磁盘空间使用情况。
-x 列出不是某一指定类型文件系统的磁盘窨使用情况(与t相反)。
-T 显示文件系统类型。
命令
的英文原意为disk usage,含义为显示磁盘空间的使用情况。功能是统计目录(或文件)所占磁盘空间的大小。
CODE:[Copy to clipboard] [选项] [Names…]
QUOTE:
-s 对每人Names 参数只给也占用的数据块总数。
-a 递归地显示指定目录中各文件用子孙目录中的各文件占用的数据块总数。
-b 以字节为单位列也磁盘窨使用情部(缺省以K字节为单位)
-k 以1024字节为单位列也磁盘空间使用情况。
-c 最后再加上一个总计(系统缺省)
-l 计算所有的文件大小,对硬链接文件,则计算多次。
-x 跳过在不同文件系统上的目录不予统计。
dd命令
把指定的输入文件拷贝到指定的输出文件中,并且在拷贝的过程中可以进行格式转换。语法:
CODE:[Copy to clipboard]dd 〔选项〕
QUOTE:
if =输入文件(或设备名称)。
of =输出文件(或设备名称)。
ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。
skip = blocks 跳过读入缓冲区开头的ibs*blocks块。
obs = bytes 一次写入bytes字节,即写 入缓冲区的字节数。
bs = bytes 同时设置读/写缓冲区的字节数(等于设置obs和obs)。
cbs = bytes 一次转换bytes字节。
count = blocks 只拷贝输入的blocks块。
conv = ASCII 把EBCDIC码转换为ASCII码。
conv = ebcdic 把ASCII码转换为EBCDIC码。
conv = ibm 把ASCII码转换为alternate EBCDIC码。
conv = blick 把变动位转换成固定字符。
conv = ublock 把固定们转换成变动位
conv = ucase 把字母由小写变为大写。
conv = lcase 把字母由大写变为小写。
conv = notrunc 不截短输出文件。
conv = swab 交换每一对输入字节。
conv = noerror 出错时不停止处理。
conv = sync 把每个输入记录的大小都调到ibs的大小(用ibs填充)。
fdformat命令
低级格式化软盘。
CODE:[Copy to clipboard]format [-n] device
QUOTE:
-n 格式化后不做检验
4.5常用的网络命令
FTP命令
Tel命令。
Netstat命令
QUOTE:
-a 显示所有的scoket,包括正在监听和。
-c 每隔1秒就重新显示一遍,直到用户中断它。
-i 显示所有网络接口的信息,格式同”ifconfig –e”
-n 以网络IP地址代替名称,显示也网络连接情形。
-r 显示核心路由表,格式同”route –e:。
-t 显示TCP协议的连接情况。
-u 显示UDP协议的连接情况。
-v 显示正在进行的工作。
nslookup命令。
finger命令,功能是查询用户的信息。
ping命令。
(用户和组的管理可以使用工具:TurboUserCfg或是XturboUserCfg。)
4.6有关进程的命令。
进程和启动
CODE:[Copy to clipboard]at [-V] [-q] [-f文件名] [-mldbv]时间
at –c 作业 [作业….]
AT命令启动的进程系统只执行一次。
batch [-V] [-q 队列] [-f 文件名] [-mv] [时间]
在系统负载较小时,资源比较空闲时执行。
cron命令
按一定的时间间隔执行命令。
crontab命令
用于安装、删除或列出用于驱支cron后台进程的表格。
进程查看
CODE:[Copy to clipboard]who命令。
w命令
是一个比who命令更强大的命令
w –[husfV] [user]
-h 不显示标题。
-u 当列出当前进程和CPU时间时忽略用户名。
-s 使用短模式。不显示登录时间JCPU和PCPU时间。
-f 切换显示FROM项,也就是远程主机名项。
-V 显示版本信息。
user 只显示指定用户的情况。
ps命令。
-e 显示所有进程。
-f 全格式
-h 不显示标题。
-l 长格式。
-w 宽输出。
a 显示终端上所有进程,包括其他用户的进程。
r 只显示正在运行的进程。
x 显示没有控制终端的进程。
top 命令
动态显示系统当前的进程和其他状况。
5系统的启动过程。
5.1初始启动
在PC机启动时,BIOS从指定的启动设备中读入“主引导记录”(MBR)。MBR的格式是:
地址偏移量 内容 大小
+00 h 可执行的代码(启动模块) 可能变化
+1BE h 第一分区表项 16字节
+1CE h 第二分区表项 16字节
+1DE h 第三分区表项 16字节
+1EE h 第四分区表项 16字节
+1FE h 可执行的标记(AA55 h) 2字节
启动模块包含足以装入操作系统的代码,或者是第二步的加载代码的位置。启动模块需要使用BIOS调用来从磁盘装入数据,而这些中断调用,如INT 13h等,限制了最大磁盘柱面号为1023。这也就是说启动模块需要加载的一切内容,如初始内存磁盘、内核、启动的时间信息等,必须存放在1024个柱面以内。
在MBR中只有四个分区表项,每个表项的格式如下:
地址偏移 内容 大小
+00h 分区状态:00代表非启动分区,80h代表启动分区 1字节
+01h 分区的起始位置 磁头 1字节
+02h 分区的起始位置 柱面和扇区 1字节
+04h 分区的类型 1字节
+05h 分区的结束位置 磁头 1字节
+06h 分区的结束位置 柱面和扇区 1字节
+08h 在主引导区和本分区的第一个扇区间的扇区数目 4字节
+0Ch 分区内的扇区数目 4字节
5.2 Linux的启动过程
1启动的命令行参数
在Linux启动时,它处理所有传递给它的命令行参数。这可以影响Linux的运行方式。命令行参数包括:
QUOTE:
mem=xxxM:定Linux可以使用的内存大小。这在用户的计算机系统有超过64MB的内存时才需要。因为从前的主板只对第一个64MB内存进行缓存,使用超过64MB的内存会使整个计算机的性能下降,所有内存均按无缓存的速度运行。
single:使Linux按单用户方式启动,缺省方式是多用户方式。
root=/dev/xxx:指定Linux要安装为根文件系统的设备。
init=<file>;:指定作为初始化进程的文件。
initrd=<dev>;:指定作为初始内存磁盘的设备。
ro:指定根文件系统为只读。
rw:指定根文件系统为可读可写。
2 Init进程
在内核初始化自身和找到的硬件设备后,在后台启动进程init(/ *** in/init),init进程号1运行。
在UNIX世界中有许多启动过程的版本,一些是基于系统V,一些是基于BSD。大多数Linux版本使用系统V的实现方法,在这里描述的就是这样。
init是由文件/etc/inittab内容和功能控制的,随启动模式是单用户或多用户而不同。
QUOTE:
单用户模式:init进程忽略/etc/inittab文件,在执行少数几个脚本程序后调用/dev/console shell。这样,用户就可以有了一个shell,而且可以执行一定限度的任务。
多用户模式:init进程把系统带入/etc/inittab文件指定的运行级别。Init通过标准的Linux方法进入一个指定的进行级别。
3.进行级别
Linux与其他UNIX操作系统一样,可以任何时刻处于任何一个运行级别。这些运行级别提供的功能不同,为主要是由于其运行的服务方程序(后台daemon)的不同造成的。Linux共有6种运行级别。
QUOTE:
0:关闭计算机或终止计算机运行,这个级别就是系统停止运行。
1:单用户启动级别,系统只有一个用户,就是root,该用户在控制台登录。
2:多用户运行级别,但无网络功能。在这个运行级别,网络功能没有启动,但是系统允许多个用户登录,可以通过虚拟控制台或串行线路。
3:多用户模式,有网络功能。在这个运行级别,所有标准网络服务均被启动。
4:目前没有实现。
5:X11运行级别,在这个运行级别,X服务器软件运行,提供图形界面的登录方式。
6:系统重新启动。
查询当前运行级别:runlevel;
4在启动过程中运行的脚本
在init进程运行时,它负责查看缺省的运行级别,并进入该运行级别。这是通过运行在/etc/rc.d/rcX.d目录下的脚本程序来实现的,其中X代表运行的级别,即一个运行级别对应一个目录。不同的字母开头的文件有不同的作用。其中:
以K开头的脚本程序是系统离开某个运行级别时执行的,作用是停止某种服务。当系统从某个支持级别变为其他级别时,首先要进行原运行级别所对应的所有K程序。
以S开头的脚本程序是系统进入某个运行级别时所执行的,作用是启动某种服务。当系统改变为某个运行级别时,就要运行新运行级别所对应的所有S程序。
5增加启动脚本程序
用户可能有一些特定的硬件设备要初始化,或需要在系统启动时初始化一些其他应用程序,用户可以增加自己的初始化脚本程序来完成这些工作。通常步骤是:
复制一个已经存在的脚本,这样可以得到一个通用的框架格式。
修改这个脚本,以完成自己的需求,要注意使程序可以处理启动和关闭的参数,尽管可能关闭处理什么也不需要干。
把这个肢本拷贝到/etc/rc.d/init.d目录下,命名为”serv”。
按下面的方法在相应的目录下建立运行控制链接:
CODE:[Copy to clipboard]ln –s ../init.d/serv/etc/rc.d/rc3.d/s99 serv
进行测试。
6 LILO和其他的启动模块
要启动Linux,启动模块是必须的。一般用于Linux的启动模块是LILO,LILO用自己的主引导区代替一般的主引导区。LILO可以通过修改/etc/lilo.conf文件内容来进行配置,对引导区内容的更新通过lilo命令来完成。
下面给也了一个装有DOS,TurboLinux3.4.0和RedHat 5.2系统的计算机的lilo.conf文件。在例子中的数字标号是用户加上去并要在文中详细解释的。
CODE:[Copy to clipboard]# more /etc/lilo.conf
boot=dev/had
map=/boot/map
instll/boot/boot.b
prompt
#表示启动盘是/dev/had,这是主IDE硬盘。
timeout=50
#表示等待用户输入的时间是50秒。
default=TL3.4
other=dev/hda1
#表示如果在上述的时间内没有输入,缺省的启动系统是TL3.4,即TurboLinux 3.4.0
label=dos
table=dev/had
#表示如果在LILO提示用户输入启动系统时,用户按了<Tab>;键,各个系统将以label的内容显示出来,供用户选择。
image=/mnt/tl3.4/boot/vmlinuz
label=TL3.4
root=/dev/hda3
read-only
TurboLinux的启动文件,/mnt/tl3.4/boot/vmlinuz被确定,根文件系统在/dev/hda3,根文件系统是只读方式的。
CODE:[Copy to clipboard]image=/mnt/rh5.2/boot/vmlinuz-2.0.36-0.7
label=RH5.2
root=/dev/hda4
read-only
RedHat的启动文件,/mnt/rh5.2/boot/vmlinuz-2.0,36-0.7被确定,根文件系统在/dev/hda4,根文件系统可读写。
❽ linux常用的shell有哪些
Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言。
shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。
shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中的其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。
Linux常用的shell有哪些?
1、Bourne shell
Bourne shell是一个交换式的命令解释器和命令编程语言。
Bourne shell是标准的UNIX shell,以前常被用来做为管理系统之用。大部分的系统管理命令文件,例如rcstart、stop与shutdown都是Bourne shell的命令档,且在单一使用者模式下以root签入时它常被系统管理者使用。Bourneshell是由AT$T发展的,以简洁、快速着名,Bourne shell提示符号的默认值是$。
2、C shell
C shell是一种比Bourneshell更适合的变种shell,使用的是类C语言,csh是具有C语言风格的一种shell,其内部命令有52个,比较庞大。
C shell是柏克莱大学所开发的,且加入了一些新特性,如命令列历程、别名、内建算术、档名完成和工作控制。对于常在交谈模式下执行shell的使用者而言,他们较喜欢用C
shell;但对于系统管理者而言,则较偏好以Bourne shell来做命令档,因为Bourne shell命令档比C shell命令档来的简单及快速。C shell提示符号的默认值是%。
3、korn shell
korn shell是一个Unix shell,它由贝尔实验室的David Korn在二十世纪八十年代早期编写。它完全向上兼容Bourne shell并包含了c shell的很多特性,例如贝尔实验室用户需要的命令编辑。
Korn shell是Bourne shell的超集,由AT&T的David korn所开发。它增加了一些特色,比C shell更为先进。Korn shell的特色包括了可编辑的历程、别名、函式、正则表达式万用字符、内建算术、工作控制、共作处理和特殊的除错功能。Korn shell提示符号的默认值也是$。
❾ shell中怎么删除文件中指定行的
1、删除包含指定关键字的行:
sed -i '/hello/d' test_temp
[root@host]$ cat test_temp
world
123
4566
889
2、删除贺态历指定行号的行
sed -i '闭袜2d' test_temp
[root@host]$ cat test_temp
world
4566
889
3、sed -i '1d' a.txt删首行
4、sed -i '$d' b.txt删尾行
5、sed -i 's/[ ]*//g' c.txt删空格
6、sed -i '/^$/d' d.txt删空行
7、sed -i ‘/love/d’ a.txt删包含string的行。
(9)常用的shell命令扩展阅读:
shell 命令
常用命令:
cat 文件名 输出文件内容到基本输出(屏幕 or 加>fileName 到另一个文件)
cb 格式化源代码
chmod //change mode,改变文件的权限
cp
date 当前的时间和日期
echo $abc 在变量赋值之后,只需在变量前面加一个$去引用.
lint语禅搜法检查程序
ls dir
man help
more type
查看磁盘空间状况
ps 查看当前进程状况
who 你的用户名和终端类型
定义变量 name=abc? (bash/pdksh) || set name = abc (tcsh)
mkdir 创建目录
rmdir 删除目录
cd 进入目录
rm 删除文件
more 显示文件
echo 显示指定文本
mv 改文件名 /移动文件
pwd 显示目录路径命令
❿ Linux shell常用命令
Linux shell常用命令汇总
对于经常使用linux系统的博主来说,基本常用的shell命令是少不了的,下面为大家总结了Linux shell的常用命令,希望对大家有所帮助!
1.检查远程端口是否对bash开放:
echo >/dev/tcp/8.8.8.8/53 && echo "open"
2.让进程转入后台:
Ctrl + z
3、将进程转到前台:
fg
4.产生随机的十六进制数,其中n是字符数:
openssl rand -hex n
5.在当前shell里执行一个文件里的命令:
source /home/user/file.name
6.截取前5个字符:
${variable:0:5}
7.SSH debug 模式:
ssh -vvv user@ip_address
8.SSH with pem key:
ssh user@ip_address -i key.pem
9.用wget抓取完整的网站目录结构,存放到本地目录中:
wget -r --no-parent --reject "index.html*" http://hostname/ -P /home/user/dirs
10.一次创建多个目录:
mkdir -p /home/user/{test,test1,test2}
11.列出包括子进程的进程树:
ps axwef
12.创建 war 文件:
jar -cvf name.war file
13.测试硬盘写入速度:
dd if=/dev/zero of=/tmp/output.img bs=8k count=256k; rm -rf /tmp/output.img
14.测试硬盘读取速度:
hdparm -Tt /dev/sda
15.获取文本的md5 hash:
echo -n "text" | md5sum
16.检查xml格式:
xmllint --noout file.xml
17.将tar.gz提取到新目录里:
tar zxvf package.tar.gz -C new_dir
18.使用curl获取HTTP头信息:
curl -I http://www.example.com
19.修改文件或目录的时间戳(YYMMDDhhmm):
touch -t 0712250000 file
20.用wget命令执行ftp下载:
wget -m ftp://username:password@hostname
21.生成随机密码(例子里是16个字符长):
LANG=c < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;
22.快速备份一个文件:
cp some_file_name{,.bkp}
23.访问Windows共享目录:
smbclient -U "DOMAIN\user" //dc.domain.com/share/test/dir
24.执行历史记录里的命令(这里是第100行):
!100
25.解压:
unzip package_name.zip -d dir_name
26.输入多行文字(CTRL + d 退出):
cat > test.txt
27.创建空文件或清空一个现有文件:
\> test.txt
28.与Ubuntu NTP server同步时间:
ntpdate ntp.ubuntu.com
29.用netstat显示所有tcp4监听端口:
netstat -lnt4 | awk '{print $4}' | cut -f2 -d: | grep -o '[0-9]*'
30.qcow2镜像文件转换:
qemu-img convert -f qcow2 -O raw precise-server-cloudimg-amd64-disk1.img \precise-server-cloudimg-amd64-disk1.raw
31.重复运行文件,显示其输出(缺省是2秒一次):
watch ps -ef
32.所有用户列表:
getent passwd
33.Mount root in read/write mode:
mount -o remount,rw /
34.挂载一个目录(这是不能使用链接的情况):
mount --bind /source /destination
35.动态更新DNS server:
nsupdate < <eof p=""> </eof>
update add $HOST 86400 A $IP
send
EOF
36.递归grep所有目录:
grep -r "some_text" /path/to/dir
37.列出前10个最大的文件:
lsof / | awk '{ if($7 > 1048576) print $7/1048576 "MB "$9 }' | sort -n -u | tail
39.打开Vim并跳到文件末:
vim + some_file_name
40.Git 克隆指定分支(master):
git clone [email protected]:name/app.git -b master
41.Git 切换到其它分支(develop):
git checkout develop
42.Git 删除分支(myfeature):
git branch -d myfeature
43.Git 删除远程分支
git push origin :branchName
44.Git 将新分支推送到远程服务器:
git push -u origin mynewfeature
45.打印历史记录中最后一次cat命令:
!cat:p
46.运行历史记录里最后一次cat命令:
!cat
47.找出/home/user下所有空子目录:
echo >/dev/tcp/8.8.8.8/53 && echo "open"
1.检查远程端口是否对bash开放:
find /home/user -maxdepth 1 -type d -empty
48.获取test.txt文件中第50-60行内容:
< test.txt sed -n '50,60p'
49.运行最后一个命令(如果最后一个命令是mkdir /root/test, 下面将会运行: sudo mkdir /root/test):
sudo !!
50.创建临时RAM文件系统 – ramdisk (先创建/tmpram目录):
mount -t tmpfs tmpfs /tmpram -o size=512m
51.Grep whole words:
grep -w "name" test.txt
52.在需要提升权限的.情况下往一个文件里追加文本:
echo "some text" | sudo tee -a /path/file
53.列出所有kill signal参数:
kill -l
54.在bash历史记录里禁止记录最后一次会话:
kill -9 $$
55.扫描网络寻找开放的端口:
nmap -p 8081 172.20.0.0/16
56.设置git email:
git config --global user.email "[email protected]"
57.To sync with master if you have unpublished commits:
git pull --rebase origin master
58.将所有文件名中含有”txt”的文件移入/home/user目录:
find -iname "*txt*" -exec mv -v {} /home/user \;
59.将文件按行并列显示:
paste test.txt test1.txt
60.shell里的进度条:
pv data.log
61.使用netcat将数据发送到Graphite server:
echo "hosts.sampleHost 10 `date +%s`" | nc 192.168.200.2 3000
62.将tabs转换成空格:
expand test.txt > test1.txt
63.Skip bash history:
< space >cmd
64.去之前的工作目录:
cd -
65.拆分大体积的tar.gz文件(每个100MB),然后合并回去:
split –b 100m /path/to/large/archive /path/to/output/files
cat files* > archive
66.使用curl获取HTTP status code:
curl -sL -w "%{http_code}\\n" www.example.com -o /dev/null
67.设置root密码,强化MySQL安全安装:
/usr/bin/mysql_secure_installation
68.当Ctrl + c不好使时:
Ctrl + \
69.获取文件owner:
stat -c %U file.txt
70.block设备列表:
lsblk -f
71.找出文件名结尾有空格的文件:
find . -type f -exec egrep -l " +$" {} \;
72.找出文件名有tab缩进符的文件
find . -type f -exec egrep -l $'\t' {} \;
73.用”=”打印出横线:全选复制放进笔记
printf '%100s\n' | tr ' ' = ;