L-1-2 Linux基础命令详解之系统操作指令

  1. 云栖社区>
  2. 博客>
  3. 正文

L-1-2 Linux基础命令详解之系统操作指令

科技探索者 2017-11-12 22:39:00 浏览989
展开阅读全文

这一篇中主要记录了一些linux系统的操作命令。


[alias]

alias [<a>='<b>']

命令别名命令。起别名a这个短语代替b命令//不能有空格

//注意这里b才是真正的命令,如cls=clear。还可以用带选项的命令代替命令本身,如vim=vim -i。

//在不填写任何参数的时候打印所有替换命令。

//alias生成的别名只能在当前的bash下使用,当退出bash后重新登录则需要重新输入。

如果需要每次登录都需要alias出现,则需要在/etc/bashrc(全用户)或者~/.bashrc(单用户)中指定别名。

在bashrc文件写完后,需要使用source命令来执行这个文件才能生效。

//关联命令unalias

更多详细请参考:linux下alias命令详解

----------------------------------------------------------------------------------------

[at]

at <time>  //让电脑能够在指定的时间执行任务。这是一个交互式的命令

at> <command>

at> ...

at> ^D


时间格式<time>:

hh:mm dd.mm.yy mm/dd/yy 当不指定日期时,那么就是到下一次到达的时间触发。

now+<num>{minutes|hours|days|weeks}   相对的时间

noon,midnight,teatime                  模糊时间


命令的执行结果将以邮件的形式发送给安排任务计划的用户

-l //显示作业的列表,相当于命令atp

-d <job.mun> //取消指定的任务

//配置文件/etc/at.deny  指定不能使用at命令的用户。

///etc/at.allow指定能够使用命令的用户,两个文件都存在使用allow。root默认可以运行。

----------------------------------------------------------------------------------------

[batch]

batch //在电脑空闲时执行命令,用法和at相同。

----------------------------------------------------------------------------------------

[bg]

^Z可以让某个程序到后台去

在命令输入时加入&,可直接进入后台。

前台指的是某个程序启动后占据了命令指示符。

后台指的是某个程序在启动后在后台完成任务。

bg [<jobid>]

//让后台的命令停止的命令继续进行,如果不写作业号,启用默认的作业

//通过jobs命令去查看作业号。关联命令jobs

----------------------------------------------------------------------------------------

[busybox]

busybox  //是一个集成的二进制程序,可以模拟很多其他命令

----------------------------------------------------------------------------------------

[cal]

cal [month] <year>      查看第几年第几月的日历

//关联命令date

-----------------------------------------------------------------------------------------

[clock]

clock               本地时钟

//关联命令hwclock

------------------------------------------------------------------------------------------

[chroot]

chroot <path> [<pathToShell>]

//切换根目录,切换根目录需要要求新的目录要有bash和库的支持。查看lib支持要使用命令ldd

------------------------------------------------------------------------------------------

[cron]

anacron可以保证那些在关机的时候错过运行时间的任务在开机后被执行,默认不启动。配置文件为/etc/anacrontab

配置文件/etc/crontab和/var/spool/cron/<username>

<min> <hour> <day> <month> <weekday> [<user>] <command>//0和7都表示周日

* 代表对应的所有有效取值

, 代表离散取值。比如10,40 * * * * 每小时的10分和40分运行

- 代表连续的时间。

/ 代表取值范围的频率。比如*/3 * * * * 表示每三分钟一次

//cron的环境变量:cron执行的所有命令都去path环境变量指定的路径下去找。但是用户不登陆的情况下,不能去使用某些只能在用户下才能运行的命令。记得命令路径打全。

可以参考文档:每天一个linux命令(50):crontab命令

Linux计划任务crontab运行脚本与手工运行不一样的问题

------------------------------------------------------------------------------------------

[crontab]

cronbtab 

打印调度命令

//调度文件地址/etc/crontab 调度命令的五个星号 每小时的第几分钟 每日的第几个小时 每月的第几天 每年的第几月 每周的第几天

//可以将任务写入一个sh文件

  -e                   修改调度命令

//-e修改的调度命令被存放在文件/var/spool/cron/<username>中,它只对当前修改它的用户有效。

  -r                   终止任务调度

  -l                   列出当前有哪些任务调度

  -u <username> 为其他用户添加命令

------------------------------------------------------------------------------------------

[date]

date <MMDDHHMMCCYY.SS>

指定系统时间为<月月日日时时分分年年年年.秒秒>

date +"%Y-%m-%d"

将时间以年月日形式表现回显

//关联命令cal

------------------------------------------------------------------------------------------

[env]

env                    查看电脑环境变量

------------------------------------------------------------------------------------------

[fg]

fg <jobid>  //将某个程序从后台调回前台

//关联命令jobs

------------------------------------------------------------------------------------------

[free]

free

查看物理内存和交换内存的使用情况

  -m

  以mb来显示字节

------------------------------------------------------------------------------------------

[fuser]

fuser <file>

验证进程正在使用的文件

  -v

  参看某文件正在使用的进程

  -k <file>

  关闭占用文件的进程

  -m <dev.path>

  与k连用关闭占用设备的进程

------------------------------------------------------------------------------------------

[getty]

getty   //是linux终端命令行启动的重要命令,通常写在启动脚本中。

------------------------------------------------------------------------------------------

[grub]

grub

//这是一个交互式的命令。

grub> root (hd0,0)  //mbr出错时,指定root的分区

grub> setup (hd0,0)  //安装mbr到指定分区


当grub出现问题,不能正常引导系统时,如果进入grub界面,应该去找kernel好人initrd来尝试启动系统。

grub> find (hd0,0) //尝试去找系统文件

grub> root (hd#,#)

grub> kernel <pathToKernel>

grub> initrd <pathToInit>

grub> boot


grub.conf的解释

//路径为/etc/grub.conf

default=<num>  //设定默认启动的title编号,从0开始

timeout=<num>  //等待用户选择的超时时长

splashimage<dev>/<path> //指定grub的背景图片,dev的写法(hd0,0)

hiddenmenu  //有这条就会隐藏菜单

[password=<pwd>] //设置密码

[password --md5 <pwd.md5>]  

//设置加密密码,防止grub文件中密码被人看到,具体的加密的值应该使用grub-md5-crypt命令生成

title <string>   //内核的标题,即操作系统的名称

root <dev>   

//内核所在文件的设备,格式(hd#,#),对grub而言,所有的硬盘一律为hd,hd后面的数字表示第几块磁盘,再后面的数字表示对应磁盘的分区。

kernel

//这里写内核路径和传递内核的参数。grub去访问/boot的文件时,直接写/代替。

initrd //这里写的是ramdisk文件路径

[password <pwd>]进系统时输入密码

------------------------------------------------------------------------------------------

[grub-install]

grub-install --root-drectory=<pathtoBoot> //修复mbr

------------------------------------------------------------------------------------------

[grub-md5-crypt]

grub-md5-crypt

//这是一个交互式的命令,输入命令后,会被要求输入两次密码,两次密码相同后会输出加密的密码。结果可复制到grub.conf

------------------------------------------------------------------------------------------

[history]

history                查看历史输入的命令

<val>                  查看最近使用的X个命令

//带!的是在命令符中使用,而不是跟着命令使用

!<val>                 查看编号为X的命令,并使用。可以使用负号来表示倒数的命令。

!<string>              查看最近一次输入以<string>开头的命令

!!                     使用上一个使用的命令。

!$                     使用上一个使用的参数。

------------------------------------------------------------------------------------------

[hostname]

hostname [<string>]

显示主机名,输入内容可以改变电脑到的主机名

------------------------------------------------------------------------------------------

[hwclock]

hwclock                硬件时钟

//关联命令clock

------------------------------------------------------------------------------------------

[init]

init {0|1|2|3|4|5|6}   //配置文件路径:/etc/inittab

//可以通过命令who -r或者runlevel来查看当前用户的运行级别

0:关机

1:单用户

2:无网络的多用户

3:多用户

4:无任何作用

5:图形界面

6:系统重启

<进程名字>:<在多少等级下运行,不填则是全部等级>:<ACTION>:<运行命令>

ACTION:

initdefault:设定为默认运行级别

sysinit:系统初始化

wait:等待级别切换完成

ctrlaltdel:在按下ctrl+alt+del的情况下

powerfail:在停电情况下

powerokwait:电力恢复的情况下

respawn:一旦程序终止,会重新启动

------------------------------------------------------------------------------------------

[jobs]

jobs    

//查看所有的前台和后台作业,作业有作业好,不同于进程号

//作业就是停止的进程

//带+命令被视为默认操作的作业

//带-命令将被认为第二个操作的作业

//关联命令bg fg

------------------------------------------------------------------------------------------

[kill]

kill [<pid>]

终止进程号为<pid>的进程


-l 对程序发出信号的列表。l后不加参数。显示出来的列表对应数字作为选项有对应的功能。输入英语也有同样功效

-1 让一个进程不重启,重读配置文件,让新的配置文件生效。

-2 中断一个进程

-9 <pid> 强制终止

-15 终止一个进程(可以给出时间关闭资源)是kill程序默认的信号

  

kill <%jobid>  //用过输入%,可杀死作业。

------------------------------------------------------------------------------------------

[killall]

killall <command> //关闭某个名字的所有进程

//killall的命令选项类似于kill

------------------------------------------------------------------------------------------

[ldconfig]

ldconfig    //重新搜寻库文件

-v         //显示重新搜寻库的过程


//系统默认的库文件路径为/lib,/usr/lib。额外添加的路径需要在/etc/ld.so.conf.d/中创建一个.conf结尾的文件

------------------------------------------------------------------------------------------

[ldd]

ldd <file>//显示文件库的依赖关系

------------------------------------------------------------------------------------------

[logout]

logout                 注销当前用户

------------------------------------------------------------------------------------------

[ln]

ln

创建一个硬链接

  -s <path/filename> <name>

  name指向路径里的实际文

//硬链接只能对文件创建,针对的inode。不能跨文件系统。

//符号链接针对的是文件地址。

------------------------------------------------------------------------------------------

[locale]

locale

//查看语言环境变量

-a

//查看本机上的编码

------------------------------------------------------------------------------------------

[logout]

logout

注销当前用户

------------------------------------------------------------------------------------------

[man]

man [<num>] <command>  查看某个指令的说明,某些命令有多页,通过whatis命令来查看这些数字

-M <path> //指定查看man文件的路径

//可在配置文件/etc/man.config中添加一条路径

------------------------------------------------------------------------------------------

[mingetty]

mingetty 是一个登陆终端时运行的程序,通常在init中使用

--loginprog=<pathToCommand>  //登陆后启动的程序,默认为login

-------------------------------------------------------------------------------------------

[mkinitrd]

mkinitrd /boot/initrd-`uname -r`.img `uname -r` //对initrd进行编译

------------------------------------------------------------------------------------------

[nice]

nice -n <nice> <command> //让某个程序启动时,设定指定的nice

//另见命令renice

----------------------------------------------------------------------------------------

[pidof]

pidof <process> //输入进程名,查看其PID

---------------------------------------------------------------------------------------

[pgrep]

pgrep //显示进程的某些信息

-u <username>  //显示和指定用户相关的信息

------------------------------------------------------------------------------------------

[ps]

ps

查看当前系统执行的进程

  

  -e

  显示所有线程,同-A

  -F

  显示所有信息,可以用-f代替

  -l

  长格式显示//ps -elF也是一种显示方法

  表格的解释:pri是优先级的表示,sz表示大小,psr表示运行在哪个cpu上

  -o

  指定需要显示的字段,具体的命令可以在man中的standard format specifiers中看

  如:ps -e -ostat,ppid,pid,cmd | grep -e '[^Zz]'

//这里先让ps输出格式为状态,ppid号,pid号,命令行输出。并筛选出Z开头的行,Z开头的行为僵尸进程


//关联命令top

//在不加-的时候显示的风格不同

  a

  显示与终端有关的进程

  u

  以用户的格式显示进程信息

  x

  显示与终端无关的进程,和-x基本一样//基本是连用ps aux


状态的解释:

D:不可中断的睡眠

R:运行或者就绪

S:可中断的睡眠

T:停止

Z:僵死


<:高优先级进程

N:低优先级进程

+:前台进程组中的进程

l:多线进程进程

s:会话进程


ps表格的解释:USER用户名,PID进程号,cpu使用cpu的百分比,men使用内存百分比,vsz虚拟内存集,rss常驻内存集,tty与哪个终端关联,stat程序状态,start程序启动的时间,time启动时长,command启动命令的指令

------------------------------------------------------------------------------------------

[pstree]

pstree                 使用树状结构显示当前系统的进程

------------------------------------------------------------------------------------------

[reboot]

reboot                 重新启动

-----------------------------------------------------------------------------------------

[renice]

renice <nice> <pid> //调整某个软件的nice值

//nice值指的是程序的优先值,在-20到19之间的数字记录,越小越优先。普通用户可以提高自己的nice值,但不能降低。

//另见命令nice

------------------------------------------------------------------------------------------

[runlevel]

runlevel 

//显示上一个运行级别和当前运行级别。N表示没有切换过运行级别

-----------------------------------------------------------------------------------------

[ulimit]

ulimit  //限制系统资源

-H <num> 用户不能超过这个配额

-S <num> 超过这个配额警告

-a  单独使用,列出所有限制额度

-f <num>这个shell能够创建的最大额度,单位为KB

-d <num> 这个进程可以使用的最大文件容量

-t <num> 可用CPU最大时间,单位为秒

-u <num> 单用户可使用的最大进程数量

-n <num>     //一个程序最多能够执行的进程数

------------------------------------------------------------------------------------------

[unalias]

unalias <a>            删除命令别名,只要上文的a即可。

//关联命令alias

------------------------------------------------------------------------------------------

[uname]

uname -a               查看当前Linux版本操作系统内核信息

------------------------------------------------------------------------------------------

[updatedb]

updatedb

更新文件数据库

//相关命令locate

-------------------------------------------------------------------------------------------

[uptime]

uptime //显示系统的时间,负载均衡等信息

是top命令显示的第一行

------------------------------------------------------------------------------------------

[set]

set                    打开和关闭系统的某些功能。

//使用man set来查看具体选项

------------------------------------------------------------------------------------------

[shutdown]

shutdown

  -h now               立刻进行关机

  -r now               立刻重新启动

-----------------------------------------------------------------------------------------

[source]

source <filename>

执行文件中的命令,作用与./<filename>相同。

source命令与bash命令不同的是,bash命令是开启一个子shell执行命令。而source是在本shell中执行命令。

对于一些变量来说使用bash命令不能使其在现有系统中生效。如alias

------------------------------------------------------------------------------------------

[su]

su <username>          切换到指定用户

  -<username>          在不切换目录的前提下切换到指定用户

  -l                   在不切换目录的前提下切换到指定用户,登陆式shell

------------------------------------------------------------------------------------------

[sudo]

sudo

<command>//某用户可以以另外一个用户的身份通过某主机执行某命令,输入的是自己的密码,默认五分钟后需要重新输一次

-k //确保下一次执行命令时必须要输入密码

-l //查看用户目前能够输入的sudo命令

配置文件/etc/sudoers

------------------------------------------------------------------------------------------

[startx]

startx                 启动图形界面

------------------------------------------------------------------------------------------

[stty]

stty -F /dev/console size //显示终端窗口大小

-----------------------------------------------------------------------------------------

[sync]

sync       //将内存的数据同步到硬盘

------------------------------------------------------------------------------------------

[sysctl]

sysctl -w kernel.hostname=""  //改主机名,立即生效,重启失效。

sysctl -w <option>  //更改系统内核数据,设置的数据重启后失效

-p //在修改/etc/sysctl.conf后重读文件内容,即让修改立即生效

-a //显示所有内核参数和它们的值

------------------------------------------------------------------------------------------

[top]

//此为交互式命令

top

查看系统的进程,并且实时更新

  -d <val>

  指定更新进程的时间为val秒

  -b //刷新的内容通过新的屏幕中显示,非交互式输出

  -n <num>//和-b连用,设置显示屏幕的个数,显示完退出

//进入后输入u 再输入用户名查看特定用户的进程

//输入k与进程号,关闭指定的进程

//M根据内存占用量排序

//T根据时间排序

//c 显示完整命令行

//关联命令ps

------------------------------------------------------------------------------------------

[whatis]

whatis <command>       查看说明书里的页

------------------------------------------------------------------------------------------

[watch]

//这是一个交互式命令

watch `<command>`

//每隔2秒钟执行一次命令,并使用全屏显示结果。通常命令中联用cat,来观察那些时刻变化的文件。

-n <num>  //指定间隔周期长度,单位为秒,默认为2秒。

-------------------------------------------------------------------------------------------

[whereis]

whereis <command>      查看软件安装路径

------------------------------------------------------------------------------------------

[which]

which  <command>       查看命令所在的目录

------------------------------------------------------------------------------------------

[visudo]

visudo  //编辑sudo的配置文件

格式:<who>     <whichHost>=(<runas>) TAG: <command> [,TAG2: <command2>]

// /var/log/secure中会记录用户使用sudo命令执行的命令

//相关命令sudo

------------------------------------------------------------------------------------------

[vmstat]

vmstat [<num>] [<num2>] 

//系统状态查看命令,输入数字参数将会根据输入的数字每隔<num>秒更新数据。第二个数字表示只显示<num2>行信息。

本文转自Heartnight();博客51CTO博客,原文链接http://blog.51cto.com/181647568/1784024如需转载请自行联系原作者


tangjiashiertui

网友评论

登录后评论
0/500
评论
科技探索者
+ 关注