㈠ 什么是shell
Shell俗称壳,它提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行
Shell实际上是一个命令解释器,它通过解释用户输入的命令并把它传输给系统内核去执行。
Shell有自己的编程语言,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等。
㈡ 求Bash shell命令
at----安排,检查,删除队列中的工作
cat----连接文件并打印到标准输出
cd----改变目录,能处理绝对和相对路径
chmod----改变文件保护权限
chown----改变文件的属主和组
clear----清除屏幕(象DOS中的cls)
cp----拷贝文件
crontab----操作每个用户的守护程序和执行的时间表
date----打印或设置系统日期和时间
dd----拷贝一个文件(并可以同时转化它)
df----报告磁盘剩余空间
----报告磁盘空间使用情况
file----探测文件和目录类型
find----搜索目录中文件
grep----在文件中搜索匹配的行并输出
gzip----压缩或展开文件
head----显示文件的前几行
history----显示历史命令记录
kill----中止一个进程
last----显示过去多少个用户或终端登录到本机器
less----想对于more命令, 用来按页显示文件
ln----在文件间建立连接
ls----列出当前目录下的文件
man----显示具有一定格式的在线手册
more----命令能逐页阅读文本
mount----安装一个文件系统
mv----将文件改名
passwd----设置用户的密码
ps----命令罗列运行进程
reboot----重新启动系统
rm----命令用于删除文件
su----创建和编辑Unix归档文件
tar----创建和编辑Unix归档文件
touch----改变文件的时间参数
wc----统计一个文件中的字节数,单词数,行数
who----查看其他登录的用户
which----which--显示命令的全路径
ping----命令—确定网络上机器是否可达或到达速率
使用多任务
输出重定向
了解进程
--------------------------------------------------------------------------------
在linux系统中有两种操作界面,分别是:X窗口模式(缺省为KDE)和控制台模式(Console)。两中操作界面类似于Windows和DOS。
如果在X窗口模式下想转变为控制台模式,您只需同时按下Alt+F1(或F2…F6)键,屏幕将会出现新的等录窗口,您可以重新以控制台模式登录系统。如果在控制台模式下,要想返会X窗口模式,需要您同时按下Ctrl+Alt+F7键。
如果没有启动X窗口方式,想从控制台方式中启动X窗口方式,请在控制台方式中输入:startx(或kdm),就可以启动X窗口。
在上面两章中我们已经介绍了X窗口(缺省为KDE)的操作,在本章和下一章中我们将主要讨论控制台模式下的操作,同时也将会间插相应的KDE操作。
6.1 启动和关闭系统
启动系统
如果您在安装过程中已经安装了LILO, 您就可以启动系统,LILO启动时,屏幕显示:
LILO:
单击Tab键,屏幕将显示所有可以启动的操作系统。键入显示的操作系统名,您就可以启动相应操作系统。键入Linux可启动BluePoint Linux&127;系统。如果您直接击回车键或等待5秒钟,同样可以启动BluePoint Linux&127;操作系统。
另一种启动linux系统的方法是:在DOS/WINDOWS系统下运行loadlin.exe。具体使用方法参见相应资料。
登录程序
Linux系统是多用户系统。如果想使用系统,就要鉴别使用者身份进行鉴别,这就是所谓的注册程序。在安装过程中,我们已经创建了叫root超级用户帐号。启动系统后,在登录命令行,键入root,再输入密码("Password")。如果密码正确,登录成功。
建议: 进入系统后建立第二个帐号(非特权用户),以便日常使用。
因为root帐号拥有整个系统的资源所有权,是管理帐号而非工作帐号。
如果您要创建工作帐号,需要两个步骤:
第一步: 创建用户注册帐号。
键入:adsr login_name
其中login_name是您选择的注册帐号(不要使用root)。
第二步: 创建帐号密码。
键入:passwd login_password
其中login_password是您选择的帐号密码(最好不要 和root密码相同)。
如果普通用户要想使用系统的所有特权,使用su命令,并在root命令行中输入 root密码。另外,您还可以使用超级用户模式文件管理器来获取系统资源, 使用方法是:
“K菜单”-->”系统应用”-->”文件管理器(超级用户方式)”
如果您的同事(家庭成员…)要使用您计算机系统,应该为这些用户创建新的用户帐号,而不能将root帐号告诉他们。注意:您要充分利用Linux是多用户操作系统这个优点。
关闭系统
关闭系统的方法有很多,但千万不要直接关断电源!
因为,Linux是使用缓存和磁盘(硬盘,软盘…)来加速输入/输出的;如果直接关断电源,存起来的数据可能没有真正写到磁盘,可能会导致数据丢失。
正确关闭系统是下面几种:
键入/sbin/halt命令(或直接键入halt),等待系统挂起的消息(systemhalted)再关闭系统
快速关闭系统方法是同时按下Ctrl+Alt+Del键(象DOS一样),系统将卸载所有外围设备,并等待计算机重初始化时,再关断电源 。
使用KDM会话。在桌面上任意位置单击右键,选择“注销”。再选择"关闭"系统或"重启"系统。
如果直接关断电源或发生掉电,会出现什么情况呢?Linux重新启系统时会检查未正确卸载的磁盘(fsck 操作)。持续几分钟后。系统可能才会正确启动。
6.2 Linux 的shells
一旦进入系统,您将会看到$的提示符,提示您键入命令。这个等待命令的程序叫shell,其作用是将指令传送给Linux的内核。
Linux系统中有许多不同shell: bash,csh,ksh,tcsh,sh,zsh…..。
在BluePoint Linux&127;系统系统中,shell选用"Bash",因为Bash shell简单并且功能强大。
如果您想知道目前使用的是那种shell,您只要简单键入: echo $SHELL
可以发现系统正在使用的shell类型。
注意:不同的shell有不同的语法。
6.3 使用Bash shell
和DOS系统一样, Linux系统控制台也采用命令行方式。需要在控制台上输入命令,才会执行。
快捷方式
通用的键盘快捷方式是:
. Ctrl+A 到开始行
. Ctrl+U 清除目前行
. Ctrl+C 停止运行的程序
.使用分号能在同一行中键入几个命令。
.上下键能获取命令历史记录。
自动名字补全
在Linux系统下,程序和命令名有时十分长,Bash支持自动名字补全功能。
您开始键入命令名字,再击Tab键,系统将为您自动补全命令或程序或目录名字。
例如: 如果您要使用解压程序bunzip。键入
$bu
接着击Tab键:Bash将显示所有以bu开始的名字。例如:
buildhash buildin bunzip
键入n (bunzip2是唯一名字第三个字符是n),再击Tab键。shell将为您在命令行补全名字,您只要击回车键就可以执行bunzip2命令了。
at命令
at,batch,atq,atrm:安排,检查,删除队列中的工作。
at [-V][-q 队列][-f 文件名][-mlbv ] 时间
at -c 作业 [作业…]
atq [-V] [-q队列][-v]
atrm [-V] 作业 [作业…]
batch [-V] [-q队列] [-f 文件名] [-mv ] [时间]
at在设定时间执行作业。
atq列出用户排在队列中的作业,如果是超级用户,就列出队列中所有的作业。
atrm 删除队列中的作业。
batch 用低优先级运行作业,只要系统的loadavg(系统平均负载)<1.5(或者在atrun中设定的值),它就可开始执行作业。
超级用户可以在任何情况下使用at系列的命令。一般用户使用at系列命令的权限由文件/etc/at.allow,/etc/at.deny控制。如果/etc/at.allow存在,则只有列在这个文件中的用户才能使用at系列命令。如果/etc/at.allow文件不存在,则检查文件/etc/at.deny这个文件。只要不列在这个文件中的用户都可以使用at系列的命令。缺省的配置是文件/etc/at.deny是一个空文件,这表明所有的用户都可以使用a系列的命令。
例如:
在二天后上午8点执行文件workfile中的作业。
[test@bluepoint /]$at -f workfile 8am+2 days
cat命令
cat---连接文件并打印到标准输出。
cat常常用来显示文件,类似于DOS下命令TYPE。
例如:
显示文件file的内容
[test@bluepoint /]$cat file
将file1,file2连接起来输出到文件file3中。
[test@bluepoint /]$cat file1 file2>file3
cd命令
cd---改变目录,能处理绝对和相对路径。
例如:
假如当前在根目录中,想进入etc/子目录。键入(相对目录):
[test@bluepoint /]$cd etc/
如果想进入/usr/bin目录,键入(绝对目录):
[test@bluepoint /]$cd /usr/bin/
此命令一些实用选项是:
回到父目录(注意cd和.. 之间有空格)
[test@bluepoint /]$cd ..
回到目前目录了。
[test@bluepoint /]$cd .
cd ~ 到达个人目录
[test@bluepoint /]$cd ~
chmod命令
chmod-- 改变文件保护权限
文件保护控制用户对文件的访问权,有三个安全级别:所有者级别,组访问级别,其它用户访问级别。在这三个级别中,又有三种权限:读(r),写(w),执行(x)。(用户可以使用ls -lg 命令来观看某一文件的所属的group)。
对于文件来说读权限意味着可以看文件的内容,写文件权可以修改或删除文件,执行权限则可以执行它。对于目录来说,读权限意味可以查看目录下的内容,写权限意味着可以在目录中建立新文件,并可以从目录中删除文件,执行权限意味着可以从一个目录转到另一个目录。
保护权限:格式为[ugoa][[+-=][rwxXstugo…]…][….]"ugoa"控制哪些用户对该文件权限将会改变:(u)文件的所有者,(g)与文件所有者同组的用户,(0)其它组的用户,(a)所有用户。操作符"+"使得用户权限被追加到每个目录文件。操作符"-"使得用户权限被取消,操作符"="使用户只有这些权限。"rwxXstugo"选择新的属性:(r)读权限(w)写权限(x)执行权限(和对目录的访问权)(X)只有目标文件对某些用户是可执行的或该目标文件是目录时才追加X属性(s)同时设定用户或组ID(t)保存程序的文本到交换设备上(u)目标文件属主(g)目标文件属主所在的组(o)其它用户。如果数字来表示属性,则(0)没有权限(1)执行权(2)读权(4)写权,然后相加,所以数字属性的格式应为3个0到7的八进制数,其顺序是(u)(g)(o)文件名:以空格分开的要改变权限的文件列表,支持通配符。
范例:
使所有用户对文件testfile有执行权
[test@bluepoint /]$chmod a+x testfile
使所有用户对文件testfile读权
[test@bluepoint /]$chmod 222 testfile
chown 命令
chown --改变文件的属主和组。
用户:可以是用户名或用户ID。
组:可以是组名或组的ID。
文件名:以空格分开的要改变权限的文件列表,支持通配符。
例如:
[test@bluepoint /]$ chown host:test file1
将文件file1的属主改为host组的test。
clear命令
clear--清除屏幕(象DOS中的cls)。
例如:
[test@bluepoint /] $clear
清除屏幕,提示符将被移到左上角。
cp 命令
cp--拷贝文件
用法:
cp [options] 源文件 目标文件
选项:
-f,--force:强行覆盖已存在的目标文件
-i,-interactive:在强行覆盖已存在的目标文件时给出提示。
-R,--recursive:整个目录拷贝。
例如:
[test@bluepoint /]cp sourcefile destfile
拷贝文件sourcefile到文件destfile。
crontab命令
crontab--操作每个用户的守护程序和执行的时间表。
crontab file [-u user]--用指定的文件替代目前的crontab。
crontab - [-u user]--用标准输入替代目前的crontab。
crontab -l [user]--列出用户目前的crontab。
crontab -e [user]--编辑用户目前 的crontab 。
crontab -d [user]--删除用户目前 的crontab 。
crontab -c dir --指定crontab的目录。
crontab文件的格式:M H D m d cmd
M:分钟(0-59)
H:小时(0-23)
D:天(1-31)
m:月份(1-12)
d:一星期内的天(0-6,0为星期天)
cmd:要运行的程序,程序被送入shell执行,这个shell只有USER,HOME,SHELL三个环境变量。
例如:
列出用户目前的crontab
[test@bluepoint /]$crontab -l
$MIN HOUR DAY MOUTH DAYOFWEEK COMMAND
8 6 * * * clear
[test@bluepoint /]$
date命令
date--打印或设置系统日期和时间
date [-u] [-d datestr] [-s datestr] [--utc][--universal][--date=datestr][--set=datestr] [--help][--version][+FORMAT][MMDDhhmm[[CC]YY][。ss]]
+FORMAT:控制如何显示日期。
指令: % :%号
n:新行
t:TAB
时间域
%H 小时 (00..23)
%l 小时 (00..12)
%k 小时 (0..23)
%l 小时 (1..12)
%M 小时 (00..59)
%p AM或者PM
%r
㈢ 关于linux命令行,shell命令,vi命令
shell并不是一个所谓在“终端”执行的东西,而是一个linux内核与用户之间交互的界面,也可以理解成为是一个专业翻译的角色。
vi不过就是一个文本编辑器罢了,就如同DOS或Windows系统中的Edit一样,只不过这个vi文本编辑器的功能是可以靠添加模块来扩展罢了。在unxu或linux中还有一个文本编辑器叫‘emacs’,只不过这个编辑器更烦,更难于掌握。
其实linux并不难学,无非就是些常用的‘命令’罢了,而且这些所谓的‘命令’多半都是以源码的方式存在在系统中的。所谓‘命令行’不过就是调用这些源码后,然后让一个叫‘shell’的‘家伙’解释给linux内核去听。而这些所谓的‘命令’统统都在bin或是sbin的目录下面。
linux在用户登录以后,自行会启动一个shell,所有用户必须通过shell才能与系统会话。linux的所谓窗口界面,只不过就是系统在用户登录后自行调用了一个shell脚本而启动了Xwindow后的表象罢了。
所谓‘命令行’其实就是shell的解释命令。
㈣ 显示历史命令表的所有内容的命令
linux查看历史命令history
来源:yonggang7的专栏|2014-11-03
1. history作用
linux的history命令的作用是,记录执行过的命令。 用法: history [n] n为数字,列出最近的n条命令 -c 将目前shell中的所有history命令消除 history [-raw] histfiles -a 将目前新增的命令写入histfiles, 默认写入~/.bash_history -r 将histfiles内容读入到目前shell的history记忆中 -w 将目前history记忆的内容写入到histfiles
shell > history 34 14-10-28 16:19:24 ll 35 14-10-28 16:19:26 vim test 36 14-10-28 16:19:33 ll 37 14-10-28 16:19:34 ll
展示3行
shell > history 3 1032 14-11-02 16:10:41 history 1033 14-11-02 16:10:46 history |more 1034 14-11-02 16:11:15 history 3
使用! 执行历史命令。 ! number 执行第几条命令 ! command 从最近的命令查到以command开头的命令执行 !! 执行上一条
shell > !1046 history 3 1045 14-11-02 16:22:38 head ~/.bash_history 1046 14-11-02 16:35:37 history 3 1047 14-11-02 16:35:48 history 3 shell > !! history 3 1046 14-11-02 16:35:37 history 3 1047 14-11-02 16:35:48 history 3 1048 14-11-02 16:35:52 history 3 shell > !head head ~/.bash_history #1414484377 cd update/ #1414484377
2. history配置修改
history记录的行数
shell > echo $HISTSIZE 1000 shell >
默认记录1000行 配置文件在/etc/profile中修改
HISTSIZE=1000 export HISTSIZE
历史命令文件记录在 ~/.bash_history中
想要让linux的history命令显示时间,history是默认不带时间, 在/etc/profile 中增加
export HISTTIMEFORMAT="%y-%m-%d %H:%M:%S "
查看.bash_history
shell > head ~/.bash_history #1414484377 cd update/ #1414484377 ll #1414484388 vim address #1414484439 ll #1414484440 ll shell >
3. 同一账号同时多次登录写入history
普通情况下, 当以bash登录系统时,系统会从~/.bash_history读取以前运行的命令 当注销时,把最新的1000(HISTSIZE)条命令更新到~/.bash_history文件中。 也可以使用history -w强制立刻写入,仅保留最新的。
当同一账号,同时登录多个bash时,只有最后一个退出的会写入bash_history,其他的都被覆盖了。
4. Ctrl+r 反向查询历史命令
使用Ctrl+r反向查询历史命令,将匹配的最新一条显示出来 如果还想继续向上查询,继续按Ctrl+r
shell > history 3 1048 14-11-02 16:35:52 history 3 1049 14-11-02 16:36:11 head ~/.bash_history 1050 14-11-02 16:41:05 history 3 (reverse-i-search)`his': head ~/.bash_history
地址:http://blog.csdn.net/yonggang7/article/details/40710623
㈤ 怎样清除Linux的shell命令历史记录
有两种方法:
一、清除 ~/.bash_history中的相关命令行。
二、在bash shell命令行状态下,执行 HISTSIZE=0
㈥ csh shell模式下利用上下键切换历史命令,命令显示一直累加怎么办
M-p
M-n
这是默认百的快捷度键知。
如果要用方道向键回,加到答 ~/.emacs
12345678
(defun my-comint-mode-hook () (interactive) (define-key comint-mode-map (kbd "<up>") 'comint-previous-input) (define-key comint-mode-map (kbd "<down>") 'comint-next-input) )(add-hook 'comint-mode-hook 'my-comint-mode-hook)
㈦ Linux下的shell编程 如何替换文件中的内容
可以这样做:
方法1:sed -i 's/被替换的内容/要替换成的内容/' file
方法2:sed 's/被替换的内容/要替换成的内容/g' file > file.out;mv file.out file。
(7)shell历史命令扩展阅读:
Shell编程的常用技巧:
一、自动补齐:在linux中对于命令或路径,可以TAB键进行自动补全,以下事项需要注意:
1、只存在一个该输入字符开头的命令或路径,此时自动补全;
2、存在多个该输入字符开头的命令或路径,此时第一次点击TAB键无效,此时再次点击TAB会罗列出所有该字符开头的命令或路径,继续输入直到仅仅剩一个时自动补全;
3、如果命令已经是完整的,TAB键则是本来的移动功能;而路径的话要看命令自身的行为决定后续动作。
二、历史命令
1、history命令可以显示历史执行过的命令;
2、使用!+序号执行该序号对应的命令;
3、使用!+字符执行该字符开头的最后一次执行的指令。
三、命令别名
1、实现别名:alias ddd="df -Th";
2、删除别名:unalias ddd;
3、显示所有别名命令列表:alias;
4、存放位置:~/.bashrc (加入该文件后,重启后不会消失)。
四、重定向
1、重定向标准输入:< 命令接收输入的途径由键盘改为文件;
2、重定向标准输出:> 将命令的执行结果输出到指定文件,而不是直接显示到屏幕;
3、重定向标准输出:>> 将命令的执行结果追加输出到指定文件;
4、重定向标准错误:2> 清除指定文件的内容,并把标准错误信息保存到指定文件;
5、重定向标准错误:2>> 标准错误信息追加到指定文件;
6、重定向标准输出和标准错误:&> 将标准输出、标准错误信息全部保存到指定文件,而不是直接显示在屏幕上。
㈧ linux中Shell历史命令记录文件的路径是什么
路径/etc/bashrc。在 Linux 下面可以使用 history 命令查看用户的所有历史操作,同时 shell 命令操作记录默认保存在用户目录的 .bash_history 文件中。通过这个文件可以查询 shell 命令的执行历史。
代码如下:
HISTFILESIZE=4000
HISTSIZE=4000
HISTTIMEFORMAT='%F %T'
export HISTTIMEFORMAT
注意:
HISTFILESIZE 表示在 .bash_history 文件中保存命令的记录总数,默认值是 1000;
HISTSIZE 定义了 history 命令输出的记录总数;
HISTTIMEFORMAT 定义了时间显示格式,该格式与 date 命令后的 “+"%F %T"” 是一样的;
HISTTIMEFORMAT 作为 history 的时间变量将值传递给 history 命令。
(8)shell历史命令扩展阅读:
显示历史命令
history 显示全部历史
history 数字 显示之前执行过的若干命令,例:history 2 显示执行过的上两条命令
使用上下箭头键也可以查看上一条根下一条命令,
3.运行历史命令
!! 运行上一条命令
!88 运行第88条命令
!88 /test 运行第88条命令并在命令后面加上/test
!?CF? 运行上一个包含CF字符串的命令
!ls 运行上一个ls命令
!ls:s/CF/l 运行上一个ls命令,其中把CF替换l
fc 编辑并运行上一个历史命令
fc 66 编辑并运行第66个历史命令
fc -e /usr/bin/vim 66 使用vim编辑第66个命令并运行
㈨ 如何 查看xhsell 历史命令
在每个用户目录都有一个.bash_history文件,里面记录了该用户的所有命令操作,无论这个用户是直接登录的还是通过xshellssh方式过来的。那么,首先必然有一个root用户,所有在/root/.bash_history里面记录了root用户的命令操作,你可以用cat、vim等工具来查看。另外,假设你还有一个用户叫做XXX,那么在/home/XXX/.bash_history里面就记录了XXX用户的命令操作。当然,值得注意的一点是,这个文件是可以被用户更改的,所有还得通过手段来帮助你确认信息,比如系统日志等等。
㈩ shell如何联想记忆
history命令:用于显示历史记录和执行过的指令命令。history命令读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。
_istory命令:是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量 HISTSIZE进行控制。默认是不显示命令的执行时间,命令的执行时间,history 已经记录,只是没有显示。
__喝缦氩檠掣鲇没г谙低成现葱辛耸裁疵睿梢允褂_oot用户身份登录系统,检查Home目录下的用户主目录下的“.bash_history”文件,该文件记录了用户所使用的命令和历史信息。
__trl+R搜索历史命令;当你执行了一串相当长的命令之后,你只要用关键字搜索一下历史命令然后重新执行这条命令而不需要将整条命令再输一遍。方法是:按下Ctrl+R然后输入关键字。如搜索”date”,则显示历史的命令中含有”date”的命令
?