首页 > 代码库 > Linux命令汇总
Linux命令汇总
- linux查询进程占用哪些端口:netstat –nlap
- 从尾部将指定内容输出指定文件:tail -n 100000 /data/HaierServerHomeAir/logs/uhome_service_log >> /data/log07181113.txt
- Xxx is not soduers file问题:看看用户是否是root,如果不是,su命令,输入密码,此时切换到了root用户;
- vim进入到编辑模式:1. Ctrl+C;2. :e!;下一步就是保存:1. Ctrl+C;2. :wq!
- Vi进入编辑模式:1. 摁一下i就可以了;保存:1.ctrl + c;2. :wq!,vim是vi的升级版本,vi是linux原生的编辑器
- 查看当前目录路径:pwd(Print Work Directory)
- Linux下面命令有的是单横线,有的是双横线;但是这两种横线其实是有开发的时候定义的,并没有什么硬性规定;
- 压缩文件:
tar -czf uos07311445.tar.gz uos
uos07311445.tar.gz为目标gz文件,ous为要压缩的文件 - 解压缩文件:首先是将路径定位到要解压缩的路径,然后执行:
tar -xzvf uos07311445.tar.gz
文件将直接解压缩到当前路径;-x代表校验释放,-z代表校验是否为zip,-v显式解压缩的文件,-f指定压缩/解压缩的文件后面紧跟着文件路径(如果是当前路径仅需要写出文件名即可); - 删除文件:rm uos07311445.tar.gz(删除文件,目录不行);
- lsof(list open files):罗列系统打开的文件
- 查看各进程占用cpu和内存的百分比(%):top
- 查看文件/etc/sysctl.conf,第一个开头为"/",代表根目录,所以到etc目录可以直接"cd /etc",然后通过
- cat sysctl.conf来查看文章;cat无参指令将会一次性加载文章的所有内容(vi只会加载满屏数据,但是vi具有编辑功能,cat是只读功能);cat –n 用来输出文件指定行数的内容,还可以用来将一个文本的内容输出到另外一个文件 cat file1 > file2(">"代表附加到覆盖,">>"代表追加;
- vi sysctl.conf来编辑文本;敲入"i"是进入到编辑模式;敲":q!"来退出文本;
- 查看命令服务器的log文件(看心跳等等信息),
- 1)使用cd /data定位到根目录下面的data文件夹;
- 2)然后dir查看里面的文件夹,敲入cd HaierCommonServer/logs;
- 3)查看uhome_service-XXX最先的log,使用tail –f uhome_service-XXX,通过这种方式来动态查看文件的变化(首先显示的是文件的尾部信息,然后是动态的显示文件的变化信息);
- 查看进程的端口:netstat –anp,展示所有的进程所占用的端口;–anp,展示所有的进程所占用的端口;根据端口查看进程:lsof i:8080;
- 有的log非常的大,不能使用tail -50f XXX之类的方式来查询,比如要全文检索"推送",我们能做的就是vi XXX,回车,返回n行,之后敲"/",这样就会进入到查询模式,敲入"推送",回车,定位到了第一个处,然后"ctrl + N",会定位到下一处,通过上下箭头则可以查看定位出前后的位置的内容。
- 剪切,在linux的意义是移动:mv source_filepath+filename, destination_folder
例如:mv /data/HSJAchievement_Document/AirConditionWash_src.zip /data/AirCondition_Document - 设置共享目录
mkdir /mnt/shared 新建挂载点(mountpoint)
mount -t vboxsf share /mnt/shared 挂载共享文件夹
cd /mnt/shared 进入共享文件夹 - 看linux版本:lsb_release –a
- 测试gcc的安装:
- /root/nginx-1.2.4/configure
- 一定要全路径,这样才会测试到,如果显示为"C compiler gcc is not found"则代表gcc没有安装成功;
- grep是对于文本进行正则表达式过滤,-a代表对于二进制格式文本也看做文本来处理;有的时候会有"Binary file 二进制文件名 matches"的问题,通过在grep后面添加-a命令再加上过滤条件即可避免这个问题;
- Linux删除文件(夹)命令:rm –rf XXX;
- 删除某个文件夹下的所有文件:rm -rf /test/*
- Linux查看文件/文件夹大小:du –sh *
- 全盘搜索:find –name XXX;正则匹配的话, find –name libevent*,之前就是因为直接搜索find –name libevent才导致啥也没有搜到(因为libevent文件都是后缀版本号的);
- 脚本执行,如果是直接执行需要使用./<filename>;如果是全路径,也是需要如此,例如执行/var/jdk1.6.0_33/bin/下面的jstack,就需要敲入:. /var/jdk1.6.0_33/bin/jstack
- 如果想要在任意路径下执行,就需要写执行脚本,并放置在/usr/local/sbin/下面,例如家用的tomcat日志就是放置在./usr/local/sbin/jylog;
- Jstack使用方式:首先是top看看cpu占用率,然后是全盘搜一下jstack,使用上面的命令;然后用命令:jstack -l <PID>查看该进程里面的堆栈。
- 58上面的路径是:./root/jdk1.6.0_33/bin/jstack
- 167上面的路径是:./usr/java/jdk1.6.0_33/bin/jstack
- 正式服务器路径:./var/jdk1.6.0_33/bin/jstack
- 文件过大,尤其是日志文件,可以通过split命令进行分隔;
- wc –l filename :可以获知某个文件共有多少行;分隔是可以通过行/size进行分隔;
- split –l 50000 filename newfilename:按照5万行一个文件进行分隔;分隔到"newFileName"的log文件中。后缀分别为aa~ZZ(最多支持分隔24*24个文件)
- 查看某个端口的的数量:netstat -anp | grep -i 56801 | wc –l;wc的意思是word count,l就是list,netstat命令本质是输出一个文件;其后面的参数是对netstat命令进行直接过滤和筛选;管道符(|)则是代表对文件进行处理;grep就是过滤文件中的关键字;wc同样是对于netstat命令导致的文件进行word count;
- 从尾部将指定内容输出指定文件:tail -n 100000 /data/HaierServerHomeAir/logs/uhome_service_log >> /data/log07181113.txt
- 在Linux执行脚本之所以需要使用./,是因为./的意思是当前目录,但是执行脚本是需要全目录的,windows下面执行exe文件默认的就是当前目录,但是linux出于安全性考虑没有这样处理,只要是执行脚本就要指定全路径,所以需要在前面加上./指定是当前目录下的XX脚本文件;
- 还有一种方式就是写一个脚本,比如Redis就有自己的启动/停止脚本;默认在/etc/rc.d/init.d/下面;把这个脚本拷贝到/usr/local/sbin/下面;但是这个脚本需要修改;他的很多路径有问题;而且还有一点,如果想要使用这个脚本需要让redis运行在"daemonize" 为yes情况下(redis.conf文件下进行配置)
- vi中查找关键字:在命令模式下输入"/",敲回车,然后点击"n"查看下一个(next之意),shift+n,查看上一个;
- linux下面的etc文件夹其实"其他,等等"的意思,但是所有的配置文件都放置在这个路径下面,比如如果想要配置nginx,通过find -name nginx找到了一堆,那么直接选择etc目录下就可以找到配置文件;usr/sbin下面是管理系统用的bin文件,即以root权限操作的可执行文件;
- Linux的vi的wq其实是writequit的意思;
- 查看端口被那些程序占用使用lsof(list open files)命令:lsof -i:80;还可以添加协议限制lsof -i TCP:80;
- 切换用户su,switch user,一般普通用户切换为高级用户使用此命令;sudo则是不需要切换,但是需要管理员在sudousers配置文件中指定那个用户可以做什么事情;
- 看硬盘空进大小df –h,想要看分区格式使用df –T(ext3,ext4等);
- vmstat n(n=1,2,3... ...)n代表的是延迟时间;显示列bi和bo代表block input以及block output;
- 索引,因为iNode很大,所以建立了一个位图索引,这让我想到了昵称生成里面的机制,只是把索引读到内存中,确定昵称也是通过内存昵称进行操作的,避免了数据库复杂的SQL;
- Linux的内存模式是虚拟内存映射到物理内存;
- getconf LONG_BIT 得到系统位数,32/64;
- lsb_relase –a 查看Linux版本lsb:Linux standard base,这是Linux发行版本信息,内核信息使用uname –a或者cat /proc/version来进行查看;
- 看内存信息free,默认是以K为单位,后三位为K,前面三位M,再往前是G,1049880,就是1G49M889K;
- Linux的~代表用户的根目录;比如连接到阿里云之后,默认就是~,使用pwd命令看后,发现时/root,因为登陆的用户就是root,所以用户的根目录就是root;~等价于$home;
- 查看某个程序是否启动,有两种方式:一种是看进程,ps –ef | grep [app name];第二种方式看端口,netstat –npl | grep 873或者lsof –i:873都可以确定程序是否启动;
- 想要查询yum可以安装的软件,yum search [part of application name]
- make是编译过程(使用gcc等编译工具,不同版本操作系统环境不一样,需要基于当前系统进行编译,所以没有编译好的,现成的东西);make.sh install,是执行安装,将程序安装到系统中,注册程序,拷贝文件到bin下面等;
- 对于防火墙iptables,修改完毕后,切记要调用iptables save进行保存,才会重启后仍然生效;
- 打开一个端口:iptables –A INPUT –p tcp --dport 11901 –j Accept
-A, append to INPUT/ OUTPUT chain;
-p, protocal, tcp/upd/icmp
--dport, destinate port, means the outer access the port, relative option is –sport, source port, means the the port packets will be out;
-j, means jump, jump to target: Accept/ Drop
查看iptables内容iptables –L,如果想要删除规则,首先
iptables –L –line-number
显式带有行号的规则列表,然后通过
iptables –D INPUT/OUTPUT num
进行删除,需要制定INPUT以及output是因为这是两张独立的链表(chain),索引行号也是独立的; - 如果想要设置开机启动,最简单的办法就是在/etc/rc.d/rc.local文件中附件上要启动的内容,比如启动FastDFS的tracker,另起一行,输入:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart即可;但是有一点很重要,就是要让r.local文件具有x(执行)权限,所以还需要执行chmod +x /etc/rc.d/rc.local;rc.local文件是Linux系统启动之后做的最后一件启动相关的事情,之前都是把init.d下面以及rc.d下面的rc.0,rc.1...下面的脚本启动执行完毕了(rc.X里面其实引用的是init.d里面的文件),再来执行rc.local;init.d以及rc.d中的d是daemon的意思,这两个文件夹下面的执行的都是守护进程(service)应用
- Linux文件的权限,首先会为三种用户(创建者,创建者所在组的成员,其他用户)各自赋权限,这一点之前已经记录过;每类用户其实都有三种操作权限,r(read,读),w(write,写)以及x(excute,执行),还有一个附加在最前面的文件类型,d(directory,目录)代表是文件夹,l(link,代表是软连接文件),b、c代表区块设备或者外围设备(区块设备?不懂),"-"代表普通文件,这样,表示文件夹权限一共是10位,如果有权限就是用让位显式为对应的字母,没有权限就显示为"-";"drwxr-xr-x"代表这个文件是个目录(文件夹),本目录的所有者拥有读写执行权限,组成员具有执行和读权限,其他用户具有执行权限;-rwxr-...则代表这个文件是普通文件;通过前缀可以知道文件的类型;
- 通过ll看到的内容,有两列是表示用户已经用户组:"-rwxrwxrwx 1 user users 12172 8月 15 23:18 conkyrc.sample";第一个user代表创建用户是user,users代表该用户所在的用户组是users,可以通过"chown user conkyrc.sample"来修改所属用户,以及通过"chown :users conkyrc.sample"来修改用户组;
- SecurityCRT自动断开,很多时候很挠头,可以在CRT上面的"会话选项"中"终端"设定"反空闲",勾选NO-OP,并设定时间,比如一分钟;这样就可以实现终端实时和服务器交互维持回话;或者是在Linux系统中/etc/ssh/sshd_config中进行设定,打开ClientAliveInterval 并设定时间3-5分钟,这样服务器点就会定时和客户端通信;总之前者是客户端维持回话,或者是服务器维持会话(session);
- Linux下面安装jdk,使用yum –search jdk,然后使用yum install进行安装;将会在/usr/lib/jvm下面有一个很长的jdk的文件夹;这个就是JAVA_HOME的位置;然后你需要做的就是在vi /etc/profile,在下面添加上:
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
跳出来之后,执行source /etc/profile即可(这一点比windows强多了,还需要重启才能够生效,当然可以通过set方式进行设置,重启前凑合用); - Wget –c url 断点续传;
- 正常情况下,一个链接终端的命令将会伴随着这个终端断开或者Ctrl+C之后而断开,比如wget,终端断开,下载也就终止了;使用了nohug…&指令将会使得运行和终端(shell)链接情况无关,而是在服务器后台运行;
- source 执行脚本语言将不会创建子进程来执行脚本,但是./ 以及sh方式将会导致每一句脚本都是子新建的子进程来跑,对于sh,是不需要chmod +x来赋权限,./的方式则需要
- netstat -ao | find "listening"
a,代表显示全部
o,代表显示进程号
|,代表要对结果进行过滤
find是过滤机制,只是支持字符串,但是对于整数的检索也是要添加"";另外这个指令在Linux和Windows下面通用;
Linux命令汇总
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。