Linux常用命令全集 linux_Shell(脚本)编程入门_实例讲解详解

一,安装和登陆命令
1,进入图形界面         startx
2,进入图形界面         init 5
3,进入字符界面         init 3
4,登陆                 login
5,关机   poweroff  
-p 关闭机器的时候关闭电源
-n 在关闭机器时不同步数据
-w 不做关机的操作,只是把这个操作记录到日志里
-d 不把关机的信息记录到日志文件里
-f 不调用
6,关机重启   shutdown
命令格式: shutdown [选项] 时间 [信息]   时间--是必要参数,一定要加,可以用
now,也可以用+5 信息--在关机的时候给用户的信息
-t 这个参数后面需要加数字,比如 5,表示在发出关机信号 5 秒后开始关机
-k 不做真正的关机,只是通知一下所有的用户.
-r 重启计算机
-h 关机后关闭电源
-f 在重新启动的时候跳过 fsck(磁盘检查程序)
-F 重启时,忽略 fsck 程序(同-f 一样)
-c 取消已在执行的关机动作 例: #shutdown -k now just kid #shutdown -h now system shut down now
7,关机          halt 选项同 poweroff 一样
8,重启计算机    reboot
9,mount 挂载文件系统,
umount 卸载文件系统 挂载光盘 #mount -t iso9660 /dev/cdrom /mnt/cdrom 或者#mount /mnt/cdrom 卸载光盘 #umount

/mnt/cdrom 退出光盘 #eject 送入光盘 #eject -t 挂载软盘 #mount /mnt/floppy 卸载软盘 #umount /mnt/floppy 挂载本地

FAT32 分区,并使挂载后显示中文 #mount -t vfat -o iocharset=cp936 /dev/hda1 /mnt/win 卸载 #/umount /mnt/win 挂载 U 盘

或者移动硬盘 #mount -o iocharset=utf8 /dev/sda1 /mnt/usb 卸载 #umount /mnt/usb 如果本地语言环境不是 utf8,而是

gb18030,需使用下面的命令挂载 #mount -o iocharset=gb2312 /dev/sda1 /mnt/usb 挂载一个光盘镜像至本地/mnt/cdrom 目录,
用下面的命令 #mount -t iso9660 -o loop /tmp/cd.iso /mnt/cdrom
10,字符界面下安装操作系统的命令    linux text
11,选择不同方法安装操作系统的命令    linux askmethod
 二,图形化界面相关命令
1,系统设置            setup
2,服务启动设置        ntsysv
3,登陆设置            gdmsetup gdmconfig
4,网络设置            networkconfig thizconfig
 5,音量控制            gnome-volume-control
 6,KDE 控制中心         kcontrol
7,KDE 设置向导         kpersonalizer
8,网络检测命令         xmtr
三,信息显示命令
1,显示特定指令执行时所需消耗的时间及系统资源等资讯         time
2,显示或设定系统的日期与时间     date
若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss], 其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟

,CC 为年份前两位数字,YY 为年 份后两位数字,ss 为秒数 #date 081112552006.35
3,显示日历         cal #cal -m #cal -s #cal 2006 #cal 08 2006
4,uptime 提供使用者下面的资讯,不需其他参数 现在的时间 系统开机运转到现在经过的时间 连线的使用者数量 最近一分钟,五分

钟和十五分钟的系统负载 参数:-V 显示版本资讯 #uptime
5,l    ast             显示系统开机以来或是从每月初登入者的讯息 #last
6,dmesg             显示系统启动的信息
7,uname             显示系统信息 -m 显示硬件型号 -n 显示主机名 -r 显示内核版本 -S 显示操作系统类型 -V 显

示操作系统的版本 -a 显示全部信息
8,id                 显示真实和有效的 UID 和 GID #id 显示当前用户的 id 信息
9,hostname         显示或设置系统的主机名 -a 显示主机的别名 -d 显示 DNS 域名 -F 从指定文件中读取主机名 -i 显示

主机的 IP 地址
10,who             或 w 显示在线登陆用户 -q 显示全部的登陆名和登陆数 #w 显示系统中当前用户的信息 #w user

username 仅显示指定用户的信息 11,whoami             显示用户自己的身份
12,whois             查询域名注册及 IP 地址相关信息 #whois www.sina.com.cn 小技巧:如果想注册一个域名,可以

用 whois 工具查询一下是否有人注册.
13,whatis             查看命令的解释 #whatis ls
14,whereis         显示系统命令及其文档所在目录 #whereis ls
15,which             显示系统命令所在目录 #which ls
16,stat             显示指定文件的相关信息(含节点内容) #stat -f / 查看整个文件系统的情况
17,free             显示当前内存和交换空间使用情况 -b 以字节为单位 -m 以 MB 为单位
18,du 显示指定的文件或目录已使用的磁盘空间的总量
-a 显示对所有文件的统计(包含子目录)
-b 输出的结果一字节 bytes 为单位
-c 只计算目录的总用量
-h 以 M 为单位 1024kb=1M -H 以 M 为单位 1000kb=1M
-s 只显示目录使用空间的总和
19,df         显示文件系统磁盘空间的使用情况
-h 以 1024kb=1M 计算
-H 以 1000kb=1M 计算
-t 指定显示分区的类型
-i 显示分区的 inode 使用情况
20,wc         统计指定文件中的字节数,字数,行数,并将结果显示输出 -c 输出字节统计数 -l 输出换行符统计数 -L 输出最长

的行的长度 -w 输出单词统计数
21,ls         显示目录文件 -a 显示所有文件(包含隐藏文件) -l 使用长格式显示 -F 以符号形式附加文件类别 -R 以树状结构

显示目录内容 -d 查看目录属性 -i 显示每个文件的 inode 号 -m 所有项目以逗号隔开,并填满整行 -h 将列出文件的大小及人性化

格式输出 -t 依照文件最后修改时间的顺序列出文件名 --color 彩色显示文件
22,cat         显示文本文件内容 -b 显示文件内容的时候显示行数 -n 显示文件内容包括空行 -s 将多个空行合并成一个空行输


23,tac         反转显示文件内容,后面的行放在前面显示 选项同上
24,head         显示文本文件的前若干行 -n (行数)显示文件的最后指定的行 -b (字节数)     显示文件最后字节数里

的内容 -q 不输出文件头的内容 -v 输出文件头的内容
25,tail                 显示文本文件的后若干行 选项同上
26,more 或 less         分页显示文本文件内容
-s 将多个空行压缩成一个空行
-p 清楚屏幕后在显示 +行数 直接从给定的行数开始显示 -数字 规定每次显示多少行
27,cut         显示每行从开头算起 num1 到 num2 的文字 # cat example test2 this is test1 # cut -c0-6 example ##

print 开头算起前 6 个字元 test2 this i
28,pwd         显示当前工作目录
29,locale         显示当前语言环境
30,fc-list         列出系统字体
31,jobs         查看当前终端,当前 shell 下的后台的进程
32,ps             查看系统中的进程 #ps aux #ps -elf
33,pstree         将所有行程以树状图显示
34,top         查看系统中实时进程
35,set         查看系统变量
36,export         查看环境变量
37,man         查看命令帮助信息
38,info         查看命令帮助信息
39,help         查看命令帮助信息
四,文件处理命令
1,file         显示文件类型
2,mkdir         创建目录 -p 依次创建目录(建立多级目录) -m 指定目录的权限
3,grep         在指定的文本文件中查找指定的字符串
4,dd             转换及输出数据 #dd if=/dev/hda of=/dev/hdb 硬盘对拷
5,find         查找文件或目录 -name 根据指定的文件名进行查找 例:#find . -name "*.c" (将当前目录及其子目录下所有扩展

名是 c 的文件列出) -type 查找指定类型的文件
类型文件有:
 l 链接   d 目录   f 普通文件   b 块设备文件   c 字符设备文件 s socket(套接字文件) p 管道(pipe)文件 例:#find ~ -type

d -size n [bc] 查找 n 值大小的文件,默认单位是字节 b=bit c=kb 例: #find ~ -size 1500b #find ~ -size +1500b 查找大于

1.5M 大小的文件 #find ~ -size -1500b 查找小于 1.5M 大小的文件 -user <用户名> 查找属于指定用户的文件 #find / -user

test -group <用户组名>查找属于指定用户组的文件 #find / -group test -newer <文件名> 查找比文件更新的文件 #find / -

newer /home/httpd -cmin +n 查找在过去 n 分钟以内(-)或以外(+)被修改过的文件 #find ~ -cmin +20 -ctime +n 查找在过去 n

天以内(-)或以外(+)被修改过的文件 #find ~ -ctime +20 -atime +n 查找在过去 n 天以内(-)或以外(+)被读取过的文件 #find ~

-atime +20 -amin +n 查找在过去 n 分钟以内(-)或以外(+)被读取过的文件 #find ~ -amin +20 -links n 查找 n 个链接数的文件

#find /home -links [2-5]
6,mv         移动文件或目录,文件或目录改名
-i 出现提示
-v 显示进度
–f 强制移动
-u 只有源文件比目的文件新时才移动
7,diff         比较并显示文件差异的部分
8,comm         比较文件内容
9,ln             建立文件之间的链接 -s 符号链接的选项 -f 强制建立链接 -i 出现提示 -v 显示操作信息
10,rm             删除文件或目录 -r 递归删除 -f 强制删除 -v 删除时显示信息 -i 删除时会有提示确认 11,rmdir 删除

空目录 -p 依次删除目录 -v 删除的时候显示信息
12,cp             复制文件或目录 -R 递归复制整个目录里的内容 -f 强制复制 -p 复制完后保持目录的权限值 -i 复制时

出现同名会有提示 -v 显示进度 -l 创建硬链接 -u 只有在目的文件比源文件旧时才复制
13,cd             切换目录 #cd 回到用户的主目录 #cd - 回到用户的主目录 #cd ~ 回到用户的宿主目录 #cd .. 转到上

一级目录 #cd / 切换到根目录 #cd . 切换到当前目录
14,tar -f 这个选项是一定要用的,表示使用归档文件 -v 显示进度 -c 建立一个新的 tar 文件 -z 调用 gzip 或者 gunzip 程序

-j 调用 bzip2 或者 bunzip2 程序 -t 显示 tar 打包文件里的内容 -x 解压缩 tar 文件 -r 追加一个或多个文件到已有的 tar 包

中 -u 如果文件比打包文件中的新就替换打包中的文件 -k 在解开打包文件时保持原有的文件 -C 指定解包的目的目录 -A 将其他打

包中的文件追加到一个打包文件中 -M 将一个包分成多个包,但必须配合-L 参数一起使用(分包实现的过程比较麻烦) --get 提取某

个文件 --remove -files 打包以后删除文件 -t 进行测试解压缩,不会解压到当前目录 格式: tar [选项] 生成打包文件名 需打包

的源文件
15,compress             压缩命令,生成.z 的文件
16,uncompress         解压缩扩展名为.z 的文件
17,zip                 压缩文件或目录
18,unzip                 解压缩扩展名为.zip 的文件
19,gzip             压缩命令(不支持对目录进行压缩) ,生成.gz 的文件
20,gunzip 或 zcat         解压缩.gz 的文件
21,bzip2             压缩命令,生成.bz2 的文件
22,bunzip2         解压缩命令
23,touch             更改文件的时间标记或创建一个空文件
24,unlink             删除软链接 25,locate 在系统中搜索包含字符串的文件
26,ldd             列出与文件有关的分享函数库
五,系统管理相关命令
 1,clear         清楚界面
2,konsole         打开命令终端
3,gnome-terminal         打开命令终端
4,fdisk         修改磁盘分区
m 帮助
l 打印已知分区
d 删除一个分区
n 新建一个新的分区
 p 打印当前分区表
w 将新的分区表写入磁盘,并且退出
t 改变一个分区的系统标识
q 放弃保存并且退出 例如:#fdisk /dev/hda #fdisk -l
5,mkfs             格式化磁盘工具 键入 mkfs 后,按 tab 键两次,会显示出很多格式化工具
6,fsck         单用户模式下,检测修复文件系统 例如: #fsck -j /dev/hda1 注:建议不要手动 fsck,系统会自动调用
7,quota         显示并限制用户的磁盘用量
8,quotacheck
-a 根据/etc/mtab 检查所有非网络文件系统(当带了-a 参数以后,就不能再手动指定检查哪 个分区了)
 -v 显示过程和结果
-u 检查带有 usrquota 参数的分区
-g 检查带有 grpquota 参数的分区
-c 创建数据库 aquota.usr 和 aquota.group
 -M 把所有分区强制以读写方式检查
-R 检查除了根分区以外的所有分区 #quotacheck -avugc
9,quotaon                 启动 quota
-a 打开所有磁盘配额
-v 显示输出结果
-u 指定基于用户的磁盘配额
-g 指定打开基于组的磁盘配额
-p 打印当前状态
10,quotaoff             关闭 quota 选项同上
11,edquota             配置限额
-u 用户名
-g 组名
-t 设置宽限时间
12,repquota         查看所有配额
13,at             在指定的时间执行特定的命令
14,atq         查询待执行的任务
15,atrm         删除待执行的任务
16,crontab         设置计划任务
17,lp             打印文件
18,useradd         新建账号
19,usermod         修改账号设置
20,userdel         删除账号
21,groupadd         建立组
22,groupmod         改变组标识符或名称
23,groupdel         删除组
24,kill             对程序下达信号或终止程序
25,nice             以改过的优先级执行程序
26,renice             调整正在执行程序的优先级
27,wget             从指定的网址下载文件
28,md5sum             计算并校验软件 MD5 码
29,mesg             控制当前所用终端机的写入权限
30,wall             广播信息
31,write             传送信息给其他用户
32,lpq             列出打印机队列的状态
33,lprm             删除正在打印的作业
34,sleep             时间暂停
35,chfn             改变 finger 所显示的信息
36,chsh             改变用户登陆系统时所使用的 shell
六,网络操作相关命令
1,ifconfig                           设置或显示网络接口
2,ifup                                 启用网络接口
3,ifdown                                 关闭网络接口
4,ping                             传送 ICMPecho 的包,用来检查联机状态
5,netstat                                 查询网络的当前状态
6,route                             显示并设置路由
7,traceroute                         追踪联机所经过的路由器
8,mtr             是一个既具有 ping 功能,又具有 traceroute 功能的命令
8,xmtr         是一个在 X windows 下执行的命令
9,tcpdump         显示网络上 TCP 的联机状态
10,telnet         远程联机程序
11,ftp         文件传输
12,rlogin         远程登陆主机
3,rcp             远程复制文件或目录
14,ssh         远程加密的联机
15,finger         远端查询主机上的用户信息
16,mail         收发邮件
17,host         查询主机使用的域名
18,nslookup     查询网络名称与地址的对应
七,系统安全相关命令
1,passwd         修改用户密码
2,su             切换并取代该用户的身份
3,sudo         使用指定的用户权限执行程序
4,umask         设置新建文件的权限屏蔽
5,chgrp         改变文件或目录所属的组
6,chmod         改变文件或目录的权限
7,chown         改变文件或目录的拥有者或组
8,chattr         改变文件属性
9,lsattr         列出 ext2 上的文件属性
10,pswho
八,其它命令
 1,bc         计算器
2,xmms     播放器
3,xine     播放器


linux Shell(脚本)编程入门 实例讲解详解
为什么要进行shell编程
在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具。Shell不仅仅是命令的收集,而且是一门

非常棒的编程语言。您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便

携性比效率更重要的任务。
下面,让我们一起来看看shell是如何工作的:
建立一个脚本
Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用

。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在bash的大姐,bourne shell中运行)。
如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit、kedit、emacs、vi等来编写我们的shell程序。程序必须以下面

的行开始(必须方在文件的第一行):
#!/bin/sh
符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。当编辑好脚本时,如果要

执行该脚本,还必须使其可执行。
要使脚本可执行:
chmod +x filename
然后,您可以通过输入: ./filename 来执行您的脚本。
注释
在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。我们真诚地建议您在程序中使用注释。如果您使用了注释,那么

即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。
变量
在其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。要赋值给一个变

量,您可以这样写:
变量名=值
取出变量值可以加一个美元符号($)在变量前面:
#!/bin/sh
#对变量赋值:
a="hello world"
# 现在打印变量a的内容:
echo "A is:"
echo $a
在您的编辑器中输入以上内容,然后将其保存为一个文件first。之后执行chmod +x first。使其可执行,最后输入./first执行该脚

本。
这个脚本将会输出:
A is:
  hello world
有时候变量名很容易与其他文字混淆,比如:
num=2
  echo "this is the $numnd"
这并不会打印出"this is the 2nd",而仅仅打印"this is the ",因为shell会去搜索变量numnd的值,但是这个变量时没有值的。

可以使用花括号来告诉shell我们要打印的是num变量:
num=2
  echo "this is the $nd"
这将打印: this is the 2nd
有许多变量是系统自动设定的,这将在后面使用这些变量时进行讨论。
如果您需要处理数学表达式,那么您需要使用诸如expr等程序(见下面)。除了一般的仅在程序内有效的shell变量以外,还有环境

变量。由export关键字处理过的变量叫做环境变量。我们不对环境变量进行讨论,因为通常情况下仅仅在登录脚本中使用环境变量。
Shell命令和流程控制
在shell脚本中可以使用三类命令:
1)Unix 命令:
虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令。这些命令通常是用来进行文件和文字操作的。
常用命令语法及功能:
echo "some text": 将文字内容打印在屏幕上。
ls: 文件列表。
wc –l file wc -w file wc -c file: 计算文件行数 计算文件中的单词数 计算文件中的字符数。
cp sourcefile destfile: 文件拷贝。
mv oldname newname : 重命名文件或移动文件。
rm file: 删除文件。
grep 'pattern' file: 在文件内搜索字符串比如:grep 'searchstring' file.txt
cut -b colnum file: 指定欲显示的文件内容范围,并将它们输出到标准输出设备比如:输出每行第5个到第9个字符cut –b 5-9

file.txt千万不要和cat命令混淆,这是两个完全不同的命令。
cat file.txt: 输出文件内容到标准输出设备(屏幕)上。
file somefile: 得到文件类型。
read var: 提示用户输入,并将输入赋值给变量。
sort file.txt: 对file.txt文件中的行进行排序。
uniq: 删除文本文件中出现的行列比如: sort file.txt | uniq。
expr: 进行数学运算Example: add 2 and 3 expr 2 "+" 3。
find: 搜索文件比如:根据文件名搜索find . -name filename -print。
tee: 将数据输出到标准输出设备(屏幕) 和文件比如:somecommand | tee outfile。
basename file: 返回不包含路径的文件名比如: basename /bin/tux将返回 tux。
dirname file: 返回文件所在路径比如:dirname /bin/tux将返回 /bin。
head file: 打印文本文件开头几行。
tail file : 打印文本文件末尾几行。
sed: Sed是一个基本的查找替换程序。可以从标准输入(比如命令管道)读入文本,并将结果输出到标准输出(屏幕)。该命令采用

正则表达式(见参考)进行搜索。不要和shell中的通配符相混淆。比如:将linuxfocus 替换为 LinuxFocus :cat text.file |

sed 's/linuxfocus/LinuxFocus/' > newtext.file。
awk: awk 用来从文本文件中提取字段。缺省地,字段分割符是空格,可以使用-F指定其他分割符。cat file.txt | awk -F,

'{print "," }'这里我们使用,作为字段分割符,同时打印第一个和第三个字段。如果该文件内容如下:
Adam Bor, 34, IndiaKerry Miller, 22, USA
命令输出结果为:
Adam Bor, IndiaKerry Miller.
2) 概念: 管道, 重定向和 backtick
这些不是系统命令,但是他们真的很重要。
管道 (|) 将一个命令的输出作为另外一个命令的输入。
grep "hello" file.txt | wc -l
在file.txt中搜索包含有”hello”的行并计算其行数。在这里grep命令的输出作为wc命令的输入。当然您可以使用多个命令。
重定向:将命令的结果输出到文件,而不是标准输出(屏幕)。
> 写入文件并覆盖旧文件。
>> 加到文件的尾部,保留旧文件内容。
反短斜线,使用反短斜线可以将一个命令的输出作为另外一个命令的一个命令行参数。
命令:
find . -mtime -1 -type f -print
用来查找过去24小时(-mtime –2则表示过去48小时)内修改过的文件。如果您想将所有查找到的文件打一个包,则可以使用以下脚

本:
#!/bin/sh
  # The ticks are backticks (`) not normal quotes ('):
  tar -zcvf lastmod.tar.gz `find . -mtime -1 -type f -print`
3) 流程控制
"if" 表达式 如果条件为真则执行then后面的部分:
if ....; then


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值