一、Linux命令分类
内部命令:没有单独对应的系统文件,只要shell解释器被运行,内部命令也就自动载入内存了,用户可以直接使用(enable命令可以查看内部命令有哪些)
外部命令:每个外部命令对应了系统中的一个文件(bin/sbin目录下),属于shell解释器程序之外的命令,所以为外部命令
二、Linux命令格式
命令字 [选项] [参数]
命令字:就是用来为了实现某一功能的具体表示方法,区分大小写。
选项:调整命令的执行特性的,另外选项可以有多个而多个选项之间必须以空格分隔;选项有短选项“-char”和长选项“–char”,且短选项可以合并使用而长选项一般不可以合并;有些特殊的选项需要有参数。
参数:命令的作用对象,有些命令可以带多个参数而各参数间需要使用空格符分隔。注意命令参数跟选项参数是不同的。
三、Linux基本命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
uname -a #查看当前系统的简要信息比喻内核版本等信息 whatis COMMAND #查询一个命令在MAN手册中哪些章节存在 ifconfig eth0 #查看IP信息 ifconfig eth0 IP netmask MASK #设定eth0的IP和掩码 netstat -tunlp #查看当前系统所有进程状态 route -n #查看网关 route add default gw GATEWAY #添加网关地址 route del default gw GATEWAY #删除网关地址 w #查看当前系统所有的登录用户信息和IP地址 whoami #查看当前用户 pwd #显示当前所在路径 uptime #查看系统运行时间,系统负载等信息 last #查看登录过此系统的用户并显示IP;信息保存位置/var/log/wtmp last -x #显示系统关机,重新开机以及执行等级改变信息 lastb #查看登录失败的用户并显示IP;信息保存支持/var/log/btmp lastlog #显示当前系统用户最近一次的登录时间 lastlog -u user #指定用户显示最近一次登录时间 mail #收邮件 unset VARIABLES_NAME #撤销变量 touch /etc/nologin #不允许普通用户登录 locale #查看系统当前使用的字符集 locale -a #查看系统支持的所有字符集 runlevel #显示系统运行级别 basename /etc/rc.d/init.d #取路径基名 diname /etc/rc.d/init.d #取路径名 hostname #查看主机名或更改主机名 sleep 5 #设置进程延迟几秒 ulimit -n 2048 #设置单个进程能打开的文件数(默认是1024个) type COMMAND_NAME #查看命令是不是内置命令(shell内置命令不需要依赖其他程序) which COMMAND_NAME #命令查看一个命令的路径 clear #清屏 arp -a #查看arp缓存 sync #同步内存数据到磁盘 free -m #查看内存使用率 md5sum FILE_NAME #计算文件的摘要值 history #查看历史执行命令,使用“HISTFILE=/dev/null”就是不记录命令历史 history –C #清除历史命令 alias #查看命令别名 alias CMDALIAS='CMD’ #定义别名 printenv #显示当前所有的环境变量(其中有一个PATH变量) file FILE_NAME #查看文件或命令的格式 strace ls /mnt #查看一个程序执行的过程和调用哪些系统函数 elinks #纯文本访问网站 elinks -source #访问网站源码 enable #查看内置命令(shell内置) enable -n alias #关闭内置命令 enable alias #开启内置命令 echo #打印字符串,默认换行(加-n就不换行),如echo "I'm fine in beijing" echo $PATH #显示变量值 export VARIABLES_NAME #设置环境变量 expr #一般用于整数值但也可用于字符串计算 unix2dos FILE_NAME #把unix下的文本格式转换为windows下的文本格式 dos2unix FILE_NAME #把windows下的文本格式转换为unix下的文本格式 ldd httpd #查看一个程序依赖哪些库文件 power off | shutdown -h now | half | init 0 #系统关机 reboot |shutdown -r now | init 6 #系统重启 exit | logoff #退出登录 sync && echo 1 > /proc/sys/vm/drop_caches #清除buffer/cache(当内存不够用时Linux默认也会清除),其中0是不清除缓存(默认),1是释放页缓存,2是释放所有缓存 echo -e '\033[32m' ; cat /dev/urandom | xxd -c 40 #装逼神器 |
硬件信息查看命令
1 2 3 4 5 6 7 |
cat /proc/cpuinfo #CPU信息 cat /proc/meminfo #内存信息 lsusb #USB信息 lspci #VGA,硬盘,网卡,桥等信息 hal-device #更详细的硬件信息 dmesg #显示开机信息 dmidecode | grep "Product Name" #查看Linux服务器型号 |
日期时间类命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
date #查看Linux系统详细时间信息 date -d "-2 week" #显示两周前的日期 date -d "2 week" #显示两周后的日期 date -d "-30 day" #显示30天前的日期 date +%D #显示月日年 date +%Y #显示年或date +%y只显示两位年14 date +"This year is %Y." #在字符串中调用时间 date +%d #显示日 date +"This %Y. %n Today is %d" #%n可以换行显示 date +%Y-%M-%d #显示年月日 date +%H:%M #显示小时分钟或date +%H-%M date +%s #显示UNIX记时法UTC时间从1970年1月1号0点0分到此刻所经过的时间是以英国的格林威治天文台的标准时间记时(全球时间上都是一样的) date 061121442014.05 #更改系统当前时间为"六月11日21时44分14年05秒" cal #查看当前日历 cal 10 #查看默认年份10月的日历 cal 2014 #查看2014年的所有日历 cal 1 2014 #查看2014年1月的日历 clock #查看当前时间(Linux主板的晶体振荡器硬件时间) hwclock #查看硬件时间 hwclock -w #同步系统时间到硬件时间更改硬件时间 hwclock -s #同步硬件时间到系统时间更改系统时间 |
磁盘统计命令
1 2 3 4 5 6 7 8 9 |
du [OPTIONS] DIR :统计目录及文件的空间占用情况 -a:统计磁盘空间占用时包括所有文件,而不仅仅只统计目录 -h:以更人性化的方式显示出统计结果 -s:statistic只统计每个参数所占用空间总和 df [OPTIONS] :查看磁盘信息 -h:做单位换算 -P:整行显示 -i:查看inode使用情况 |
其他命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
bc :需要在命令行输入bc进入到bc模式 +:加 -:减 *:乘 /:除 %:取余 scale=2:保留两位小数 PS:在linux命令行或shell脚本中使用bc(bc可以保留小数),如 echo "sclae=2; $num1/$num2" | bc curl :curl支持包括http,https,ftp在内的众多协议,它还支持POST,cookie认证,从指定偏移处下载部分文件,参照页,用户代理字符串,扩展头部,限速,文件大小限制,进度条等特性。下面主要介绍如何通过curl命令获取到网站的性能指标信息: [root@localhost ~]# curl -o /dev/null -s -w %{time_total}"\n" http://www.baidu.com -s:获取网站头部信息(curl -I http://www.baidu.com) -o:将curl获取到的页面代码重定向到/dev/null -s:静默模式 -w %{OPT}:指定要获取的指标 time_total:完成请求所用的时间 time_namelookup:解析完成的时间 time_connect:TCP连接所用的时间 time_redirect:重定向完成时间 size_download:下载网页或文件大小 size_upload:上传文件大小 size_header:响应头 speed_upload:传输速度 |
四、其他命令
1 |
$ hash |
显示缓存命令命中次数也是shell的一种缓存机制(把刚刚执行过的命令缓存在内存中;缓存保存的列表是哈希的,哈希保存的是键值对key-value数据库;它的查询的速度是o(1)的;那什么是o(1)呢它是衡量程序执行速度的一种标准、他的意思是我们从一个列表中查找一个数据的速度是随着列表长度发生变化而变化的一种函数;无论这个队列有多长我从中找一个数据的时间是一样的比喻10和1000个数据;因此说从hash中找无论hash有多长瞬间就可以找到使用key对应实际命令的位置;这比在文件系统中一个一个找快很多)
1 |
$ ldconfig |
是一个动态链接库管理命令,为了让动态链接库为系统所共享,还需运行动态链接库的管理命令;ldconfig命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.. ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。
-v:显示正在扫描的目录及搜索到的动态链接库,还有它所创建的连接的名字。
-f /PATH: 此选项指定动态链接库的配置文件为CONF,系统默认为/etc/ld.so.conf。
五、Windows到Linux两者文件传输方法
1. 共享文件然后mount挂载到Linux
2. Linux服务器搭建samba服务器
3. Linux服务器搭建FTP服务器
4. sftp(xshell可以使用sftp)
put:上传
get:下载
5. zmodem协议(lrzsz包支持)
sz file:下载文件
rz:上传文件
-b:以二进制格式上传下载
-e:对所有控制字符转义