鸟哥的私房菜-Linux命令总结
2013-12-25 21:23
246 查看
1.文件或目录操作(要熟记的)
mkdir 创建目录,-m表示创建时就制定mod 如 mkdir 711 xxx.txt;-p表示级联创建上层不存在的目录
rmdir 移除空目录,如果非空目录就要rm -r xxx递归删除
mv 移动或重命名现有目录或文件,如果没有指定目标路径就是重命名了(也可多个,同cp)常用参数f-强制覆盖 i-询问 u-如果比现有的新才覆盖。
rm 删除文件或目录
cp [-adfrsu] 源文件 目标文件:复制 cp可以复制多个文件到目录(如cp -air f1,f2 /home),常用参数a-复制属性且递归 i-提示是否覆盖 r-递归
cd [相对路径或绝对路径]:切换目录,同dos,/表示根目录,../之类表示相对路径
pwd 显示当前工作目录
touch 更改文件或目录的时间
tree 以树状显示文件目录,如果少的话,比ls好
ls 列出目录内容,最常用之一,-al最常用
-l:long详细信息
-a:all,所有文件+子目录
-c:以时间顺序显示
-d:只显示目录
-m:以逗号间隔
-n:只显示文件或目录的名称
-t:以更改时间为序显示
ln:创建硬/软链接,软链接类似快捷方式
2.查看文件内容
cat:连接并输出文件内容,-n可制定行号,等同nl命令。但是一次性显示,太多,一般用more/less,有个比较好用的是定向 cat...>>...
tac:反序输出文件内容
more:分页显示文件。ctrl+f/空格向下翻一页,回车向下一行,ctrl+b向上翻一页但对管道无用;
less:分页显示文本,可前后翻,优于more。pageup/pagedown,上下左右箭头,/?下上搜索字符串,n/N在搜索结果中向前向后搜索,q退出;优于more
head -n 数字 文件名:-n 10 显示前n行,-n -100 100行以前的
tail -n 数字 文件名:-n 10 显示后n行, -n +100 100行以后的。
nl:按行号显示文本内容,等效cat -n
od:按照不同的进制显示文件内容
3.查找文件
find [路径][参数]
locate 范本样式:比find快,因为从数据库中查询
whereis [可选] 文件:用于查找二进制,说明文件,source文件。
which [可选] 文件:只能查找在$PATH路径下的执行文件
4.文件隐藏属性attr(很重要,尤其系统安全上,只支持ext2/ext3文件系统)
lsattr [-adR] 文件或目录:查看隐藏属性
chattr [+-=][ASacdistu] 文件或目录名:修改隐藏属性,其中比较重要的是:
a:设置此属性后将只能增加,不能删改数据,只有root有此权限;
i:设置此属性之后将不能增删改,只有root有此权限。
5.文件权限(rwx)
chgrp:改变用户组
chmod:改变rwx权限,需要制定u,g,o,a,不只是421哦~例如 chmod o-x,g=7 aaa.txt
chown:改变owner甚至用户组
linux文件或目录的ls命令显示出来文件的权限共10个字符,第一个是文件类型,d是目录,-是文件,l是链接文件,b存储目录,c是串行设备如鼠标键盘;剩下的9个3个一组,分别是user,group,other,每组都有rwx的值。所以chmod命令相对多一点儿,另外,其他连个指令是需要root权限的。
6.文本操作(极重要)
vim [可选] [文件](vi的升级版,增加高亮等)
-n:表示从第n行显示
如何只看后几行
vim三种工作模式:命令行模式,输入模式,末行模式
>1.命令行模式
ctrl+b:上翻一页,ctrl+f:下翻一页(pageup/pagedown)
j:上移一行,k:下移一行(上下左右箭头)
o:移至行首,$:移至行尾(home/end)
{:光标移至前一个开始花括号,}:光标移至下一个结束花括号(调程序相当有用)
W/w:光标移至下一个字符
y+w:复制光标所在字符串(word)
y+y:复制光标所有行
p:在光标处插入
n+y+y:复制光标所在行+后面(n-1)行
d+d:删除光标所在行
n+d+d:删除光标所在行+后面(n-1)行
总结:复制用y,删除用d,行用y,单词用w,插入用p,上下左右箭头在vim里不能用吗?
>2.输入模式(指定开始插入的位置)
Append:
A:在当前光标所在行行尾追加
a:.....................字符后追加
Insert:
I:.....................行的行首插入
i:.....................处插入
O:open
O:.....................行的上方新增一行插入
o:.....................行的下方新增一行插入
>3.末行模式(保存退出等)
:n 加载文件(new)
:w 保存文件
:w newfile 另存为
:wq 保存并退出
:w!强制保存,对只读文件有用
:q退出
:q!强制退出
:!强制执行(执行什么?)
:/ 查找匹配字符串,高亮显示,n向下找,N向上找,好像look也可以。。。
vim环境设置:
set nu在每行开头显示行号(报错指定行号时有用)
set none 取消行号
7.文件备份归档和还原,压缩解压缩
linux中每个设备都被当成一个文件来处理,所有的设备都要与某个文件树绑定,这就是装载。
比较费解的是假设partition1给/,但是partition2给/home,所以如果想确定某个文件系统对应的分区,那就逆向找,遇到的第一个分区就是。
linux中最常见的压缩命令就是gzip和bzip2,至于compress已经过时了,但是这俩命令指示压缩单个文件的,如果要打包就要用到tar,如果打包+压缩,那就tar+压缩参数。
zip/unzip:zip压缩的后缀是.zip,指令没有解压缩功能,要用unzip
gzip/gunzip/zcat:应用最广的压缩,后缀是.gz,可以解开compress,zip,gzip的压缩文件。gzip -d xxx可以解压缩,不需要用gunzip命令。语法:gzip [-cdtv#] 文件名 如gzip man.config,就生成了man.config.gz的文件,默认原文件就不存在了,加c参数就ok了。zcat是不解压直接读取压缩文件中的文本文件的命令。
bzip2/bunzip2/bzcat:优于gzip,不替代原文件的参数是k,其他与gzip同。
tar:打包命令,可以在打包的同时压缩,常见用法如下(-f参数一般单独用):
tar [-j|-z] [cv] [-f 新建的文件名一般是.tar.gz/bz2] 原始文件 -打包+压缩
tar [-j|-z] [tv] [-f 新建的文件名] -查看文件名 不解,为什么要加f参数?f是new的意思。。。
tar [-j|-z] [xv] [-f 新建的文件名一般是.tar.gz/bz2] [-C 目录] -解压缩到特定目录
dump:
restore:
cpio:可以备份任何东西但是不会主动找文件所以要配合使用find。
8.用户信息
useradd:新建用户,比如useradd sky,默认情况下没有密码,需要passwd设置密码,groupadd是增加用户组。
passwd:设置密码,所有用户均可使用。普通用户只能修改自己的,root可以重置所有的,而且无需指定旧密码。
finger [可选][用户名],比如finger sky vbird,没有逗号的哦~~
fwhois [用户名]:有局限性,需要在数据库中注册的用户才可以查到
ID:显示用户的ID以及所属群组的ID,用法直接id就是当前用户的信息,或者id 用户名,比如id sky
w/who:用来查看目前在系统上的用户,两者差不多,只是w更多,可以列出IP,工作内容等
whoami:查看当前用户,因为极力不推荐用root登录,而用su或sudo来管理,忘记身份时就用此查看。
last:当前系统所有登录记录,不知当前用户。
whois:
su:身份切换命令,需要输入切换后身份的密码,所以容易密码流露,一般用sudo比较好。su root和su -的区别,前者无法使用init等,因为切换时环境变量等并没有随之改变,后者就变了。
sudo:切换身份执行命令 sudo [-u] 用户名 命令,默认只有root有此命令的权限,所以需要添加,用到visudo命令
visudo:该命令是root账号用vi打开/etc/sudoers文件,修改用的。如修改谁可以使用sudo命令。
9.帮助命令
man [要查询的命令]:
pageUp/pageDown:上下翻页 Home/End:首页/尾页 /字符串:向上查找 ?字符串:向下查找 n/N:向上,向下寻找匹配结果 q:退出
info [要查询的命令] 与man的区别是info是分段落的,而且还有类似超链接的东西来调到不同的页面。
10.系统指令
clear:清屏
history:显示历史命令,-n表示显示的个数
date:显示或设置系统时间
echo:输出
exit:退出shell,不是关机咯。不是任何时候exit都是退出命令,如果su之后,再输入exit那就是exit su身份,继续回到最初的登录身份咯。
file:查看文件类型,asci,date,binary等等,linux严格来说没有扩展名,有的那些只是为了方便并不具有严格意义,是否可执行看x,其他类型看file结果
df:列出文件系统的整体磁盘使用量(du是评估)
语法:df [-ahikHTm] [目录或文件名],一般用df -h,结果包括filesystem,size,used,avail,use%,mounted on(表示挂载到那个文件树)
fsck:检查并修复磁盘,除非系统出现重大问题,否则使用此命令有可能引发问题。而且必须确保被检查的文件是卸载状态。
badblocks:检查损坏的区块
fdisk:观察硬盘使用情况并分割硬盘
free:显示内存信息,可以指定单位,k,kb,mb(一般用-m),总共,以用,空闲,share,buffer,cache。
mount/unmount:装载/卸载
quota:显示磁盘配额,因为默认所有用户的主文件夹都在/home下,一般/home是单独挂载点,多用户共享磁盘,所以就存在合理分配空间配额的问题。高级管理,暂且不关注。
quotacheck:
11.网络命令:
ping:通dos的ping命令
ifconfig:查看当前网址,相当于windows下的ipconfig
route:
netstat:
host:
nslookup:
13.开关机指令
login:登录
logout:退出
init:执行等级,所有的开关机操作都可以通过此实现,0-关机 1-单用户 2-多用户 3-完整 4-一般不用 5-x-window 6-重启,root的权限咯
logname:登录名
sleep:
sync:将数据同步写入硬盘,为了防止丢失数据,一般在关机之前执行一下此命令以防万一虽然shutdown/reboot/halt都会执行。
shutdown:shutdown [-t 秒数][-arkhncFf] 时间 [警告信息](主要使用的命令)
-t表示过几秒后关机的意思,好像很少用到
-r表示停掉服务后再重启,等效reboot;
-h表示停掉服务后再关机,等效halt;
-k并不会真正关机,只是发送警告信息给所有登陆者
时间是必备参数,now表示马上,+10表示10分钟以后
相对于其他关机命令,shutdown会更安全的关机
reboot:重启,相当于shutdown -r
halt:相当于shutdown -h,区别不是很清楚。
poweroff:断电,这是很危险的,会损坏系统或硬件。
14.进程相关指令
ps:查看当前进程状况,一般ps aux(没有-哈)表示所有进程,会很多,用ps aux | less就可以分屏了,管道的东东。如果只是当前用户就ps -l,a表所有信息,l表当前用户相关,不过只看当前似乎没有意义哈。PID,CPU,mem,start time等等
top:ps是静态查看某个时刻的进程状况,而top则是动态跟踪进程运行的状态。
&:将屏幕中的命令放到后台执行: command &
ctrl+z:将一个正在执行的命令放到后台执行,可不是windows下的撤销咯~
jobs:查看当前有多少在后台运行的命令,-l可以查看任务的PID
fg:将后台任务调制前台,
bg:将前台暂停的任务继续执行,不是调到前台哈~fg和bg的 参数都是%+PID(结合jobs查看)
kill:杀死进程,kill -sigal %PID,-9立刻终止不管死活;-15停止一个程序默认处置;-2中断该进程
killall:killall 程序名而非PID,终止程序。通过ps或者pgrep查看哪些程序在运行。pkill差不多。
ps/top:监视系统进程和资源使用情况的命令,ps使用更多些,top可以按照占用cpu或内存大小排序显示,
at:作业
crontab:
15.管道相关(很好很强大)
很多命令的执行结果要经过好几道工序才能得到我们想要的结果,这个时候就要用到管道命令,比如一屏显示不下,或者数据结果很多时,管道的界定符是 |,这与连续执行命令是不同的,管道的处理结果是继续前面一个命令的输出,环环相扣的,而联系执行只是顺序关系,内容并不相关。要求是前一个命令要有标准输出,管道可以读取标准输入,处理完再标准输出。
PS:管道是可以单独使用的咯,只需要最后加上文件名就行了。。。
cut:选取命令,针对每行数据进行处理。
语法cut -d '分割字符' -f 字段,比如 echo $PATH | cut -d ':' f 3,5(取第三和第五个字段)
cut -c '字符范围',比如export | cut -c 12-,输出第12个以后的字符,12-20就是12-20个字符。
grep:也是选取命令,cut选取每行中符合条件的字段,而grep是选取符合条件的整行。
gerp [-acinv] [--color=auto] '查找字符串' 文件名字,c 计算字符串出现的次数,i 忽略大小写,n输出行号,v 非操作即没有... color是颜色显示,比如last | grep 'root' 包含root的行,last | grep -v 'root'不包含root的行
这俩命令分析日志时很有用,比如cut取ip时,但是cut精确度比较高,所以多个空格就不太好办,grep就灵活多了。
sort:对数据排序,有点找到数据库中的感觉,但是处理的是文本,蛮好~
sort [-fbMnrtuk] 文件或stdin,f忽略大小写,n对数字排序默认是文本,r反序,t指定分隔符默认tab键,k取第几个字段进行排序,比如cat /etc/passwd | sort -t ':' -k 3 -n 以:作为分隔符对第三列做数字排序
uniq:排重,重复的只显示一个,相当于数据库中的distinct。uniq [-ic] i忽略大小写,c是计数出现的次数,没有c就是distinct,加上c就是group by +count(1)。比如统计登录情况 last | cut -d ' ' -f 1 | sort |uniq -c(sort uniq顺序不同结果也不同咯)
wc(word calculate):统计文件中字符的行数,字数。wc [-lwm] l行数 w字数 m字符数
tee:双向重定向,可以让输出在屏幕和文件双向输出,tee [-a] file 很简单的一个命令,-a表示以append的方式输出到file中,认证考试中常考,看来很有用咯~~。
tr:字符串替换命令。tr[-ds] 串1 [串2] -d是删除,-s是替换,替换可以实现-d的功能,''呗(没有''吧哈哈)。替换可以用正则,比如[a-z] [A-Z]
col:替换tab键为空格和去掉/的,似乎一般用不到。expand会将tab转换成指定个数的空格,似乎没啥大用处。
join:这是比较拽的功能,再没有数据库下处理文本很强大。join [-ti] -1 字段 file -2 字段 file2,如join -t ":" -1 4 /etc/passwd -2 3 /etc/group 以":"作为分隔符,将passwd中的第四列与group中的第三列如果相同就合并,合并后的分隔符还是: 不过语法给出的格式似乎挺别扭,应该把2放到后面才是。。。需要注意的是最好先进行排序,否则有些数据会被略过。
paste:join是符合条件的连接,而paste是直接连接,用tab键分隔。
split:在程序语言中是分隔字符串为数组的一个方法,linux下用处就大了,是把大文件分隔成小文件。语法 split [-bl][容量或行数] file prefix, -b是按容量进行分割,-l是按行进行切割,后面指定大小,prefix是生成的小文件的前缀,比如 cd /tmp;split -b 300k /etc/termcap mytest,然后ll -k mytest*,然后还可以再合并cat mytest* >>mytestall
xargs:这是个蛮好的一个命令,比如ls不是管道命令,但是又想对前面的结果进行ls那就用xargs了,相当于数据库中temp用法,比如cut -d ':' -f 1 /etc/passwd |head -n 3 |xargs finger 查出密码前三行记录的用户信息。-p是个蛮好的参数,会对拆出的每条命令执行前进行询问。
-:减号的作用,有点类似~,但是是指代的前一个操作的stdout或者stdin,比如 tar -cvf - /home | tar -xvf -前一个-表示将home文件打包但不记录到文件而是用-代表stdout,后面一个-表示前面传来的stdin,省掉了生成和读文件的操作,实际需要的只是中间结果。也蛮好的~
16.shell语法:
if...then...else...fi
case...in...esae
for()do...done
while()do...done
until()do...done
16.固定参数总结:
-R:递归查询子文件夹
-f:force,强制
-i:info,提示信息,文本中i是ingnore忽略大小写的意思。
-h:habit,常规的b,kb,mb,gb等表示,磁盘内存时是这个意思。
-c:calculate,计算,管道中是这个意思。
--version:版本信息
--help:help信息
lsXXX:列出,显示
q:退出
ctrl+c取消,中断
Ctrl+d终止键盘输入,相当于exit
17.常见问题:
>如果了解当前系统使用情况?
who查看当前有谁在线,netstat查看网络状态,ps aux查看后台执行的程序(因为是终端模式,所以后台运行很正常,不像windows一目了然)
>如何同时执行多个命令?分号间隔,写在同一行。比如sync;sync;reboot
linux的命令格式:commond [options] [文件或目录等],不要反了2和3咯
>硬盘坏了怎么办?
执行fsck /home/xxx修复,需要注意的是正常情况下不要乱执行此命令,有可能破坏好的系统,且执行此命令时要卸载状态。
mkdir 创建目录,-m表示创建时就制定mod 如 mkdir 711 xxx.txt;-p表示级联创建上层不存在的目录
rmdir 移除空目录,如果非空目录就要rm -r xxx递归删除
mv 移动或重命名现有目录或文件,如果没有指定目标路径就是重命名了(也可多个,同cp)常用参数f-强制覆盖 i-询问 u-如果比现有的新才覆盖。
rm 删除文件或目录
cp [-adfrsu] 源文件 目标文件:复制 cp可以复制多个文件到目录(如cp -air f1,f2 /home),常用参数a-复制属性且递归 i-提示是否覆盖 r-递归
cd [相对路径或绝对路径]:切换目录,同dos,/表示根目录,../之类表示相对路径
pwd 显示当前工作目录
touch 更改文件或目录的时间
tree 以树状显示文件目录,如果少的话,比ls好
ls 列出目录内容,最常用之一,-al最常用
-l:long详细信息
-a:all,所有文件+子目录
-c:以时间顺序显示
-d:只显示目录
-m:以逗号间隔
-n:只显示文件或目录的名称
-t:以更改时间为序显示
ln:创建硬/软链接,软链接类似快捷方式
2.查看文件内容
cat:连接并输出文件内容,-n可制定行号,等同nl命令。但是一次性显示,太多,一般用more/less,有个比较好用的是定向 cat...>>...
tac:反序输出文件内容
more:分页显示文件。ctrl+f/空格向下翻一页,回车向下一行,ctrl+b向上翻一页但对管道无用;
less:分页显示文本,可前后翻,优于more。pageup/pagedown,上下左右箭头,/?下上搜索字符串,n/N在搜索结果中向前向后搜索,q退出;优于more
head -n 数字 文件名:-n 10 显示前n行,-n -100 100行以前的
tail -n 数字 文件名:-n 10 显示后n行, -n +100 100行以后的。
nl:按行号显示文本内容,等效cat -n
od:按照不同的进制显示文件内容
3.查找文件
find [路径][参数]
locate 范本样式:比find快,因为从数据库中查询
whereis [可选] 文件:用于查找二进制,说明文件,source文件。
which [可选] 文件:只能查找在$PATH路径下的执行文件
4.文件隐藏属性attr(很重要,尤其系统安全上,只支持ext2/ext3文件系统)
lsattr [-adR] 文件或目录:查看隐藏属性
chattr [+-=][ASacdistu] 文件或目录名:修改隐藏属性,其中比较重要的是:
a:设置此属性后将只能增加,不能删改数据,只有root有此权限;
i:设置此属性之后将不能增删改,只有root有此权限。
5.文件权限(rwx)
chgrp:改变用户组
chmod:改变rwx权限,需要制定u,g,o,a,不只是421哦~例如 chmod o-x,g=7 aaa.txt
chown:改变owner甚至用户组
linux文件或目录的ls命令显示出来文件的权限共10个字符,第一个是文件类型,d是目录,-是文件,l是链接文件,b存储目录,c是串行设备如鼠标键盘;剩下的9个3个一组,分别是user,group,other,每组都有rwx的值。所以chmod命令相对多一点儿,另外,其他连个指令是需要root权限的。
6.文本操作(极重要)
vim [可选] [文件](vi的升级版,增加高亮等)
-n:表示从第n行显示
如何只看后几行
vim三种工作模式:命令行模式,输入模式,末行模式
>1.命令行模式
ctrl+b:上翻一页,ctrl+f:下翻一页(pageup/pagedown)
j:上移一行,k:下移一行(上下左右箭头)
o:移至行首,$:移至行尾(home/end)
{:光标移至前一个开始花括号,}:光标移至下一个结束花括号(调程序相当有用)
W/w:光标移至下一个字符
y+w:复制光标所在字符串(word)
y+y:复制光标所有行
p:在光标处插入
n+y+y:复制光标所在行+后面(n-1)行
d+d:删除光标所在行
n+d+d:删除光标所在行+后面(n-1)行
总结:复制用y,删除用d,行用y,单词用w,插入用p,上下左右箭头在vim里不能用吗?
>2.输入模式(指定开始插入的位置)
Append:
A:在当前光标所在行行尾追加
a:.....................字符后追加
Insert:
I:.....................行的行首插入
i:.....................处插入
O:open
O:.....................行的上方新增一行插入
o:.....................行的下方新增一行插入
>3.末行模式(保存退出等)
:n 加载文件(new)
:w 保存文件
:w newfile 另存为
:wq 保存并退出
:w!强制保存,对只读文件有用
:q退出
:q!强制退出
:!强制执行(执行什么?)
:/ 查找匹配字符串,高亮显示,n向下找,N向上找,好像look也可以。。。
vim环境设置:
set nu在每行开头显示行号(报错指定行号时有用)
set none 取消行号
7.文件备份归档和还原,压缩解压缩
linux中每个设备都被当成一个文件来处理,所有的设备都要与某个文件树绑定,这就是装载。
比较费解的是假设partition1给/,但是partition2给/home,所以如果想确定某个文件系统对应的分区,那就逆向找,遇到的第一个分区就是。
linux中最常见的压缩命令就是gzip和bzip2,至于compress已经过时了,但是这俩命令指示压缩单个文件的,如果要打包就要用到tar,如果打包+压缩,那就tar+压缩参数。
zip/unzip:zip压缩的后缀是.zip,指令没有解压缩功能,要用unzip
gzip/gunzip/zcat:应用最广的压缩,后缀是.gz,可以解开compress,zip,gzip的压缩文件。gzip -d xxx可以解压缩,不需要用gunzip命令。语法:gzip [-cdtv#] 文件名 如gzip man.config,就生成了man.config.gz的文件,默认原文件就不存在了,加c参数就ok了。zcat是不解压直接读取压缩文件中的文本文件的命令。
bzip2/bunzip2/bzcat:优于gzip,不替代原文件的参数是k,其他与gzip同。
tar:打包命令,可以在打包的同时压缩,常见用法如下(-f参数一般单独用):
tar [-j|-z] [cv] [-f 新建的文件名一般是.tar.gz/bz2] 原始文件 -打包+压缩
tar [-j|-z] [tv] [-f 新建的文件名] -查看文件名 不解,为什么要加f参数?f是new的意思。。。
tar [-j|-z] [xv] [-f 新建的文件名一般是.tar.gz/bz2] [-C 目录] -解压缩到特定目录
dump:
restore:
cpio:可以备份任何东西但是不会主动找文件所以要配合使用find。
8.用户信息
useradd:新建用户,比如useradd sky,默认情况下没有密码,需要passwd设置密码,groupadd是增加用户组。
passwd:设置密码,所有用户均可使用。普通用户只能修改自己的,root可以重置所有的,而且无需指定旧密码。
finger [可选][用户名],比如finger sky vbird,没有逗号的哦~~
fwhois [用户名]:有局限性,需要在数据库中注册的用户才可以查到
ID:显示用户的ID以及所属群组的ID,用法直接id就是当前用户的信息,或者id 用户名,比如id sky
w/who:用来查看目前在系统上的用户,两者差不多,只是w更多,可以列出IP,工作内容等
whoami:查看当前用户,因为极力不推荐用root登录,而用su或sudo来管理,忘记身份时就用此查看。
last:当前系统所有登录记录,不知当前用户。
whois:
su:身份切换命令,需要输入切换后身份的密码,所以容易密码流露,一般用sudo比较好。su root和su -的区别,前者无法使用init等,因为切换时环境变量等并没有随之改变,后者就变了。
sudo:切换身份执行命令 sudo [-u] 用户名 命令,默认只有root有此命令的权限,所以需要添加,用到visudo命令
visudo:该命令是root账号用vi打开/etc/sudoers文件,修改用的。如修改谁可以使用sudo命令。
9.帮助命令
man [要查询的命令]:
pageUp/pageDown:上下翻页 Home/End:首页/尾页 /字符串:向上查找 ?字符串:向下查找 n/N:向上,向下寻找匹配结果 q:退出
info [要查询的命令] 与man的区别是info是分段落的,而且还有类似超链接的东西来调到不同的页面。
10.系统指令
clear:清屏
history:显示历史命令,-n表示显示的个数
date:显示或设置系统时间
echo:输出
exit:退出shell,不是关机咯。不是任何时候exit都是退出命令,如果su之后,再输入exit那就是exit su身份,继续回到最初的登录身份咯。
file:查看文件类型,asci,date,binary等等,linux严格来说没有扩展名,有的那些只是为了方便并不具有严格意义,是否可执行看x,其他类型看file结果
df:列出文件系统的整体磁盘使用量(du是评估)
语法:df [-ahikHTm] [目录或文件名],一般用df -h,结果包括filesystem,size,used,avail,use%,mounted on(表示挂载到那个文件树)
fsck:检查并修复磁盘,除非系统出现重大问题,否则使用此命令有可能引发问题。而且必须确保被检查的文件是卸载状态。
badblocks:检查损坏的区块
fdisk:观察硬盘使用情况并分割硬盘
free:显示内存信息,可以指定单位,k,kb,mb(一般用-m),总共,以用,空闲,share,buffer,cache。
mount/unmount:装载/卸载
quota:显示磁盘配额,因为默认所有用户的主文件夹都在/home下,一般/home是单独挂载点,多用户共享磁盘,所以就存在合理分配空间配额的问题。高级管理,暂且不关注。
quotacheck:
11.网络命令:
ping:通dos的ping命令
ifconfig:查看当前网址,相当于windows下的ipconfig
route:
netstat:
host:
nslookup:
13.开关机指令
login:登录
logout:退出
init:执行等级,所有的开关机操作都可以通过此实现,0-关机 1-单用户 2-多用户 3-完整 4-一般不用 5-x-window 6-重启,root的权限咯
logname:登录名
sleep:
sync:将数据同步写入硬盘,为了防止丢失数据,一般在关机之前执行一下此命令以防万一虽然shutdown/reboot/halt都会执行。
shutdown:shutdown [-t 秒数][-arkhncFf] 时间 [警告信息](主要使用的命令)
-t表示过几秒后关机的意思,好像很少用到
-r表示停掉服务后再重启,等效reboot;
-h表示停掉服务后再关机,等效halt;
-k并不会真正关机,只是发送警告信息给所有登陆者
时间是必备参数,now表示马上,+10表示10分钟以后
相对于其他关机命令,shutdown会更安全的关机
reboot:重启,相当于shutdown -r
halt:相当于shutdown -h,区别不是很清楚。
poweroff:断电,这是很危险的,会损坏系统或硬件。
14.进程相关指令
ps:查看当前进程状况,一般ps aux(没有-哈)表示所有进程,会很多,用ps aux | less就可以分屏了,管道的东东。如果只是当前用户就ps -l,a表所有信息,l表当前用户相关,不过只看当前似乎没有意义哈。PID,CPU,mem,start time等等
top:ps是静态查看某个时刻的进程状况,而top则是动态跟踪进程运行的状态。
&:将屏幕中的命令放到后台执行: command &
ctrl+z:将一个正在执行的命令放到后台执行,可不是windows下的撤销咯~
jobs:查看当前有多少在后台运行的命令,-l可以查看任务的PID
fg:将后台任务调制前台,
bg:将前台暂停的任务继续执行,不是调到前台哈~fg和bg的 参数都是%+PID(结合jobs查看)
kill:杀死进程,kill -sigal %PID,-9立刻终止不管死活;-15停止一个程序默认处置;-2中断该进程
killall:killall 程序名而非PID,终止程序。通过ps或者pgrep查看哪些程序在运行。pkill差不多。
ps/top:监视系统进程和资源使用情况的命令,ps使用更多些,top可以按照占用cpu或内存大小排序显示,
at:作业
crontab:
15.管道相关(很好很强大)
很多命令的执行结果要经过好几道工序才能得到我们想要的结果,这个时候就要用到管道命令,比如一屏显示不下,或者数据结果很多时,管道的界定符是 |,这与连续执行命令是不同的,管道的处理结果是继续前面一个命令的输出,环环相扣的,而联系执行只是顺序关系,内容并不相关。要求是前一个命令要有标准输出,管道可以读取标准输入,处理完再标准输出。
PS:管道是可以单独使用的咯,只需要最后加上文件名就行了。。。
cut:选取命令,针对每行数据进行处理。
语法cut -d '分割字符' -f 字段,比如 echo $PATH | cut -d ':' f 3,5(取第三和第五个字段)
cut -c '字符范围',比如export | cut -c 12-,输出第12个以后的字符,12-20就是12-20个字符。
grep:也是选取命令,cut选取每行中符合条件的字段,而grep是选取符合条件的整行。
gerp [-acinv] [--color=auto] '查找字符串' 文件名字,c 计算字符串出现的次数,i 忽略大小写,n输出行号,v 非操作即没有... color是颜色显示,比如last | grep 'root' 包含root的行,last | grep -v 'root'不包含root的行
这俩命令分析日志时很有用,比如cut取ip时,但是cut精确度比较高,所以多个空格就不太好办,grep就灵活多了。
sort:对数据排序,有点找到数据库中的感觉,但是处理的是文本,蛮好~
sort [-fbMnrtuk] 文件或stdin,f忽略大小写,n对数字排序默认是文本,r反序,t指定分隔符默认tab键,k取第几个字段进行排序,比如cat /etc/passwd | sort -t ':' -k 3 -n 以:作为分隔符对第三列做数字排序
uniq:排重,重复的只显示一个,相当于数据库中的distinct。uniq [-ic] i忽略大小写,c是计数出现的次数,没有c就是distinct,加上c就是group by +count(1)。比如统计登录情况 last | cut -d ' ' -f 1 | sort |uniq -c(sort uniq顺序不同结果也不同咯)
wc(word calculate):统计文件中字符的行数,字数。wc [-lwm] l行数 w字数 m字符数
tee:双向重定向,可以让输出在屏幕和文件双向输出,tee [-a] file 很简单的一个命令,-a表示以append的方式输出到file中,认证考试中常考,看来很有用咯~~。
tr:字符串替换命令。tr[-ds] 串1 [串2] -d是删除,-s是替换,替换可以实现-d的功能,''呗(没有''吧哈哈)。替换可以用正则,比如[a-z] [A-Z]
col:替换tab键为空格和去掉/的,似乎一般用不到。expand会将tab转换成指定个数的空格,似乎没啥大用处。
join:这是比较拽的功能,再没有数据库下处理文本很强大。join [-ti] -1 字段 file -2 字段 file2,如join -t ":" -1 4 /etc/passwd -2 3 /etc/group 以":"作为分隔符,将passwd中的第四列与group中的第三列如果相同就合并,合并后的分隔符还是: 不过语法给出的格式似乎挺别扭,应该把2放到后面才是。。。需要注意的是最好先进行排序,否则有些数据会被略过。
paste:join是符合条件的连接,而paste是直接连接,用tab键分隔。
split:在程序语言中是分隔字符串为数组的一个方法,linux下用处就大了,是把大文件分隔成小文件。语法 split [-bl][容量或行数] file prefix, -b是按容量进行分割,-l是按行进行切割,后面指定大小,prefix是生成的小文件的前缀,比如 cd /tmp;split -b 300k /etc/termcap mytest,然后ll -k mytest*,然后还可以再合并cat mytest* >>mytestall
xargs:这是个蛮好的一个命令,比如ls不是管道命令,但是又想对前面的结果进行ls那就用xargs了,相当于数据库中temp用法,比如cut -d ':' -f 1 /etc/passwd |head -n 3 |xargs finger 查出密码前三行记录的用户信息。-p是个蛮好的参数,会对拆出的每条命令执行前进行询问。
-:减号的作用,有点类似~,但是是指代的前一个操作的stdout或者stdin,比如 tar -cvf - /home | tar -xvf -前一个-表示将home文件打包但不记录到文件而是用-代表stdout,后面一个-表示前面传来的stdin,省掉了生成和读文件的操作,实际需要的只是中间结果。也蛮好的~
16.shell语法:
if...then...else...fi
case...in...esae
for()do...done
while()do...done
until()do...done
16.固定参数总结:
-R:递归查询子文件夹
-f:force,强制
-i:info,提示信息,文本中i是ingnore忽略大小写的意思。
-h:habit,常规的b,kb,mb,gb等表示,磁盘内存时是这个意思。
-c:calculate,计算,管道中是这个意思。
--version:版本信息
--help:help信息
lsXXX:列出,显示
q:退出
ctrl+c取消,中断
Ctrl+d终止键盘输入,相当于exit
17.常见问题:
>如果了解当前系统使用情况?
who查看当前有谁在线,netstat查看网络状态,ps aux查看后台执行的程序(因为是终端模式,所以后台运行很正常,不像windows一目了然)
>如何同时执行多个命令?分号间隔,写在同一行。比如sync;sync;reboot
linux的命令格式:commond [options] [文件或目录等],不要反了2和3咯
>硬盘坏了怎么办?
执行fsck /home/xxx修复,需要注意的是正常情况下不要乱执行此命令,有可能破坏好的系统,且执行此命令时要卸载状态。
相关文章推荐
- linux 鸟哥的私房菜(第三版)每章总结 第一章 计算机基础知识
- 鸟哥的 Linux 私房菜学习总结(超赞!!!)
- 鸟哥的私房菜 第七章Linux 档案于目录管理个人总结
- 鸟哥的 Linux 私房菜18-- 例行性命令的建立
- Linux vi / vim常用命令 (来自鸟哥的私房菜)
- 读鸟哥linux私房菜收获总结二(20170710)
- linux常用命令总结
- 我的Linux生涯之Mysql:[Mysql基础命令总结]
- Linux操作系统常用命令总结1
- (总结)Linux的chattr与lsattr命令详解
- linux命令总结之date命令
- [置顶] 【总结】嵌入式linux常用命令
- linux下的压缩和解压缩的命令总结
- Linux常用命令总结(二)--系统命令
- 【Linux总结】文件类型以及常用命令
- Linux常见命令总结
- Linux关机和重启命令总结
- 滴滴面试总结之写出你常用的linux命令及详解
- linux 命令总结大全
- linux下find(文件查找)命令的用法总结