志在指尖
用双手敲打未来

linux命令大全(命令手册)

linux命令大全

Linux和windows比较,很多管控都需求用指令来操作。windows以直观的可视化的方式操作,特别适合在桌面端PC上操作履行相应的软件。
而Linux指令行方式的操作,特别是在服务器端编程、办理、运维方面,更加简单、矮小、精悍。短短一行组合指令,即可完结在windows需求各种加工、整合的复杂高效的功能操作。
一、进程办理
w显现当时在线用户状况
my_admpts/0111.111.111.111三1524:582:510.02ssshd:my_admin[priv]
rootpts/3111.111.111.11213:153:47m0.35s0.35s-bash
my_admpts/5111.111.111.11315:142.00s0.54s0.02ssshd:my_admin[priv]
pkill-kill-tpts/??杀掉指定姓名的进程,如上述的pts/5
传送门:Linux中Kill进程的N种方法
二、体系信息
arch显现机器的处理器架构(1)
uname-m显现机器的处理器架构(2)
uname-r显现正在运用的内核版别
dmidecode-q显现硬件体系部件-(SMBIOS/DMI)
hdparm-i/dev/hda罗列一个磁盘的架构特性
hdparm-tT/dev/sda在磁盘上履行测验性读取操作
cat/proc/cpuinfo显现CPUinfo的信息
cat/proc/interrupts显现中止
cat/proc/meminfo校验内存运用
cat/proc/swaps显现哪些swap被运用
cat/proc/version显现内核的版别
cat/proc/net/dev显现网络适配器及统计
cat/proc/mounts显现已加载的文件体系
lspci-tv罗列PCI设备
lsusb-tv显现USB设备
date显现体系日期
ctime=`date+%Y-%m-%dT%k:%M:%S`#格式化时刻,如2018-01-13T11:09:19,留意%k与%H的区别,前者回来9,后者回来09.
YESTERDAY=`date+%Y-%m-%d-d”-1days”`获取昨日日期
cal2007显现2007年的日历表
date041217002007.00设置日期和时刻-月日时分年.秒
clock-w将时刻修正保存到BIOS
查询网关地址(如将centos服务器网络获取类型由dhcp切换为static时,需求获取到ip及网关信息进行固化装备时会用到,如本地ip为10.34.0.123,则通过如下指令查询到网关为第一个3.254):
[root@file-server~]#netstat-rn
KernelIProutingtable
DestinationGatewayGenmaskFlagsMSSWindowirttIface
0.0.0.010.34.3.2540.0.0.0UG000enp3g0
10.34.0.00.0.0.0255.255.252.0U000enp3g0
192.168.1.00.0.0.0255.255.255.0U000virbr0
CentOS/RedHat系列,检查操作体系信息(假如没有lsb_release指令,运用”yuminstallredhat-lsb”装置):
[root@server-testonline]#lsb_release-a
LSBVersion::core-4.1-amd64:core-4.1-noarch
DistributorID:CentOS
Description:CentOSLinuxrelease7.5.1804(Core)
Release:7.5.1804
Codename:Core
三、关机(体系的关机、重启以及登出)
shutdown-hnow关闭体系(1)
init0关闭体系(2)
telinit0关闭体系(3)
shutdown-hhours:minutes&按预定时刻关闭体系
shutdown-c取消按预定时刻关闭体系
shutdown-rnow重启(1)
reboot重启(2)
logout注销
四、文件和目录
cd/home进入’/home’目录’
cd..回来上一级目录
cd../..回来上两级目录
cd进入个人的主目录
cd~user1进入个人的主目录
cd-回来上次所在的目录
pwd显现工作路径
ls检查目录中的文件
ls-F检查目录中的文件
ls-l显现文件和目录的详细资料
ls-a显现躲藏文件
ls*[0-9]*显现包括数字的文件名和目录名
tree显现文件和目录由根目录开端的树形结构(1)
lstree显现文件和目录由根目录开端的树形结构(2)
mkdirdir1创立一个叫做’dir1’的目录’
mkdirdir1dir2一起创立两个目录
mkdir-p/tmp/dir1/dir2创立一个目录树
rm-ffile1删去一个叫做’file1’的文件’
rmdirdir1删去一个叫做’dir1’的目录’
rm-rfdir1删去一个叫做’dir1’的目录并一起删去其内容
rm-rfdir1dir2一起删去两个目录及它们的内容
mvdir1new_dir重命名/移动一个目录
cpfile1file2仿制一个文件
cpdir/*.仿制一个目录下的所有文件到当时工作目录
cp-a/tmp/dir1.仿制一个目录到当时工作目录
cp-adir1dir2仿制一个目录
ln-sfile1lnk1创立一个指向文件或目录的软链接
lnfile1lnk1创立一个指向文件或目录的物理链接
touch-t0712250000file1修正一个文件或目录的时刻戳-(YYMMDDhhmm)
filefile1outputsthemimetypeofthefileastext
iconv-l列出已知的编码
iconv-ffromEncoding-ttoEncodinginputFile>outputFilecreatesanewfromthegiveninputfilebyassumingitisencodedinfromEncodingandconvertingittotoEncoding.
find.-maxdepth1-name*.jpg-print-execconvert”{}”-resize80x60″thumbs/{}”\;batchresizefilesinthecurrentdirectoryandsendthemtoathumbnailsdirectory(requiresconvertfromImagemagick)
五、文件查找
find/-namefile1从’/’开端进入根文件体系查找文件和目录
find/-useruser1查找归于用户’user1’的文件和目录
find/home/user1-name\*.bin在目录’/home/user1’中查找带有’.bin’结束的文件
find/usr/bin-typef-atime+100查找在过去100天内未被运用过的履行文件
find/usr/bin-typef-mtime-10查找在10天内被创立或许修正过的文件
find/-name\*.rpm-execchmod755′{}’\;查找以’.rpm’结束的文件并定义其权限^find/tmp-name\*.hprof-execrm-f{}\;批量删去java仓库.hprof文件
find/-xdev-name\*.rpm查找以’.rpm’结束的文件,疏忽光驱、捷盘等可移动设备
locate\*.ps寻觅以’.ps’结束的文件-先运转’updatedb’指令
whereishalt显现一个二进制文件、源码或man的方位
whichhalt显现一个二进制文件或可履行文件的完整路径
grep-rn”query_string”*Linux目录下大局查找所有文件中是否包括指定字符串(-r:递归;-n:显现行号)
六、挂载一个文件体系
mount/dev/hda2/mnt/hda2挂载一个叫做hda2的盘-确定目录’/mnt/hda2’现已存在
umount/dev/hda2卸载一个叫做hda2的盘-先从挂载点’/mnt/hda2’退出
fuser-km/mnt/hda2当设备繁忙时强制卸载
umount-n/mnt/hda2运转卸载操作而不写入/etc/mtab文件-当文件为只读或当磁盘写满时非常有用
mount/dev/fd0/mnt/floppy挂载一个软盘
mount/dev/cdrom/mnt/cdrom挂载一个cdrom或dvdrom
mount/dev/hdc/mnt/cdrecorder挂载一个cdrw或dvdrom
mount/dev/hdb/mnt/cdrecorder挂载一个cdrw或dvdrom
mount-oloopfile.iso/mnt/cdrom挂载一个文件或ISO镜像文件
mount-tvfat/dev/hda5/mnt/hda5挂载一个WindowsFAT32文件体系
mount/dev/sda1/mnt/usbdisk挂载一个usb捷盘或闪存设备
mount-tsmbfs-ousername=user,password=pass//WinClient/share/mnt/share挂载一个windows网络共享
七、磁盘空间
df-h显现现已挂载的分区列表
ls-lSr|more以尺寸巨细摆放文件和目录
du-shdir1估算目录’dir1’现已运用的磁盘空间’
du-sk*|sort-rn以容量巨细为依据依次显现文件和目录的巨细
rpm-q-a–qf’%10{SIZE}t%{NAME}n’|sort-k1,1n以巨细为依据依次显现已装置的rpm包所运用的空间(fedora,redhat类体系)
dpkg-query-W-f=’${Installed-Size;10}t${Package}n’|sort-k1,1n以巨细为依据显现已装置的deb包所运用的空间(ubuntu,debian类体系)
hdfsdfs-du/dw/default|sort-rn|head-n10|awk'{printf(“%.2f\t\t%.2f\t\t%s\t\n”,$1/1024/1024/1024,”\t”$2/1024/1024/1024,”\t”$3)}’查询hdfs文件体系中表文件巨细,按从大到小的顺序摆放(取前10列),单位GB.

linux

linux命令手册

运用Linux体系的开发者,很多人都有自己喜爱的体系指令,下面这个几个指令是我平常用的比较多的,共享一下。
我不会教科书般的罗列每个指令的详细用法,只是把日常开发过程中的一些场景下,常常运用的指令常见用法进行演示。
No.1grep
grep、awk、sed这三个指令,作为Linux体系中文本处理的三大法宝,我最喜爱、最常用的便是grep指令,没有之一!
它的根本用法是:
grep[OPTIONS]PATTERN[FILE…]grep[OPTIONS][-ePATTERN]…[-fFILE]…[FILE…]+WX:machinegunjoe666免费获取材料
看起来有那么的选项,我最常用的是这2个场景:
1.在一个文件或许文件夹中,查找指定的字符串:
grep-rni”pthread”*
-r:递归查找;
-n:打印行号;
-i:不区分大小写;
2.检查某个进程的相关信息,例如:进程ID
$ps-aux|grepbashroot46810.00.1248925912pts/3Ss10:100:00bashroot180520.00.015968960pts/3S+13:380:00grep–color=autobash
能够看到,成果中呈现了grep这个指令自身的进程信息,能够经过-v选项过滤掉它:
$ps-aux|grepbash|grep-vgreproot46810.00.1248925912pts/3Ss10:100:00bash
最终,再结合awk指令,就能够把进程ID4681提取出来了:
$ps-aux|grepbash|grep-vgrep|awk'{print$2}’4681
在一些脚本工具中,这样的用法仍是很常见的。
例如:在一些守护进程的启动脚本中,都会利用这条指令来判别:当时体系中是否现已有一个实例正在运行了。
No.2q
看到这个指令,您一定会疑问:仅仅一个字母q,这是何方神圣?
Linux体系中压根就没有这个指令!
是的,这个字母仅仅是一个alias(别号)。
我有很强的强迫症,在终端窗口履行一条指令的时分,我常常会需求承认指令是否履行正确。
在Linux体系中,$?用来表明最终指令的退出状态:0表明没有过错,其他表明有过错。
因而,在履行完一条指令后,能够履行下面的这条指令来承认:刚才履行的那条指令是否成功了。
echo$?
强迫症的问题是解决了,可是因为这条指令运用的太频频了,需求敲那么多的字符,还要结合shift按键。
于是我就给它设置了一个alias(别号)。
设置alias的方法估计都知道啊,便是在个人家目录下的.bashrc中修正。
我的alias设置如下:
aliasll=’ls-lF’aliasla=’ls-A’aliasl=’ls-CF’aliasq=’echo$?’+WX:machinegunjoe666免费获取材料
这样的话,每次履行完一条体系指令之后,顺手敲一个字母q就能够检查履行成果了,省时省力!
No.3pwd
或许有些人会奇:pwd怎样会是常用指令呢?它的作用是打印当时途径,在指令行窗口中,途径是一直显现出来的啊!
没错,在默许的状况下,当时所处的途径信息,是直接显现出来的,如下:
root@ubuntu:~/OpenSource/linux-4.15/samples/watchdog$
可是这里有一个小小的问题:假如终端窗口的大小并不是全屏的,假如目录层次比较深,那么显现的途径信息就会特别的长,这样的话,本来就不太宽的终端窗口就显得很挤,输入指令的时分很或许要折返到下一行去。
于是,我就喜爱把这个显现的途径给它缩短:只显现最终一个文件目录,如下:
root@ubuntu:watchdog$
也便是把前面的~/OpenSource/linux-4.15/samples途径信息都丢掉,这样的话,终端窗口中就有足够的空间来输入了。
假如某个时分,我想看一下当时目录的全途径,那么就履行一下pwd这个指令就能够了。
这便是我为什么常常运用pwd指令的原因。
那么,应该怎样样来去掉显现途径中的目录信息呢?
仍是修正家目录下的.bashrc文件:
if[“$color_prompt”=yes];thenPS1=’${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$’elsePS1=’${debian_chroot:+($debian_chroot)}\u@\h:\w\$’fi
找到上面这几行内容,把最终面的\w修正成\W即可,也便是小写的w改成大写的W。
假如你正在测验,请不要忘掉运用source.bashrc或许..bashrc指令来重新加载哦!
No.4find
find指令用来查找符合指定条件的文件。
我最常用的场景便是:查找指定名称或类型的文件了。
特别是在写Makefile的时分,常常遇到找不到头文件的过错,于是就能够这样查找:
find./-namexxx.h
或许依照后缀名来查找文件:
find./-name*.txt
No.5history
history用来记载履行过的指令,假如您很少运用这条指令,那阐明您的记忆力很好!
可是对于我这样忘性比较好的人来说,history指令几乎太有用了!
我在指令行窗口中测验某段代码,常常需求重复的做这样的排错过程:修正代码-编译-履行-检查成果。
假如编译指令比较长,我相信没有谁愿意一个字符一个字符的敲键盘,大部分是运用history列出最近运用的指令,然后仿制、粘贴一下。
检查前史指令的时分,因为输出太多,能够结合grep指令,只显现咱们感兴趣的指令记载,例如:
history|grepgcc
那么,成果中将只会显现带有gcc字眼的那些指令。
别的,还有一个小技巧:在不检查history的状况下,快速的输入之前履行过的某条指令(有一个前提条件:你有必要能记住那条指令中刚开端的几个字符)。
比方,之前现已履行过这条指令:
gcc-m32-Wl,–export-dynamic-omainmain.c-ldl
几分钟之后,我想再次履行这条指令,能够这么做:
一起按下control和r这两个按键,此刻输入光标处就会变成这样:
root@ubuntu:tmp$(reverse-i-search)`’:+WX:machinegunjoe666免费获取材料
这时,能够输入指令最前面的几个字母:gcc-m,此刻终端就会到前史指令记载中去查找,输入的字符越多,匹配就越精确。
假如输入的字符,精准的匹配到了某个前史指令记载,它就立刻把这条指令完好的显现出来。
这个小技巧真的很好用,推荐您试一下!
No.6od
od指令用来输出给定文件的内容。
输入文件内容的指令有很多了:cat、head、tail等等。可是od指令主要用来检查文件的二进制编码,显现的时分能够以指定的进制进行显现。
在之前的一篇拆解ELF格局的文章中:《Linux体系中编译、链接的基石-ELF文件:扒开它的层层外衣,从字节码的粒度来探究》,我就很多的运用了od指令,在一个ELF格局的文件中,从恣意地址开端、读取恣意长度的字节码。
例如下面这条指令:读取main文件中最开端的52个字节的内容:
od-Ax-tx1-N52main
main是Linux体系中的可履行程序,当然也便是ELF格局了。
od指令中运用到了下面这几个选项:
-Ax:显现地址的时分,用十六进制来表明。假如运用-Ad,意思便是用十进制来显现地址;
-t-x1:显现字节码内容的时分,运用十六进制(x),每次显现一个字节(1);
-N52:只需求读取52个字节;
能够看出main文件最开端的四个字节:7f是ELF文件的魔数,454c46是”ELF”3个字母。
因而,运用od指令来剖析二进制文件的内容,仍是很有威力的!
No.7for
for这个指令,常常呈现在脚本文件中,用来处理循环的状况,比方:遍历文件、计数,例如:
#!/bin/bashforfilein/tmp/*;doecho$file;done
我在运用for的时分,最常用的场景是给很多相同后缀的文件,按次序进行重命名:
i=0;forxin*.mp4;don=$(printf”%02d””$i”);mv$x$n.mp4;leti=i+1;done
这里是依照纯数字来重命名的,也能够根据需求加上前缀等字符串。
这里还有一个小问题需求注意一下:假如文件名中存在空格,mv指令就会提示过错:
mv:target’xxx’isnotadirectory
解决方法是:在终端窗口中,先履行一下这个指令:
IFS=”
然后,再履行批量重命名指令,就不会呈现过错了!
当然,更好的方式是,把这几个指令写成一个脚本文件,实现对恣意类型的文件进行批量重命名功用,然后放在自己的私有bin目录下,随取随用。
别忧虑,我现已帮你写好了,如下所示(file_rename.sh):
#!/bin/bashif[$#-eq0];thensufix=mp4elsesufix=$1fiIFS=’+WX:machinegunjoe666免费获取材料’i=0;forxin*.$sufix;don=$(printf”%02d””$i”);mv$x$n.$sufix;leti=i+1;done
只要履行./file_rename.sh,就会默许把当时目录下所有mp4文件进行重命名。
假如是其他类型的文件,那就传递一个参数进去。
比方:假如要批量对png格局的图片进行重命名,那就履行./file_rename.shpng,最终的png是传入的参数,对应于脚本文件中的$1变量。

未经允许不得转载:IT技术网站 » linux命令大全(命令手册)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载