管理

在UNIX/linux系统中,一切皆为文件;若非文件,则为进程。首先认识文件系统:

linux文件系统

/var - 经常变化的(variable)文件,诸如日志或数据库等

/usr - 包含绝大部分所有用户(users)都能访问的应用程序和文件

/opt - 提供一个供可选的 (optional) 应用程序安装目录

/tmp - 临时(temporary)文件

/etc - 配置文件、启动脚本等 (etc)

/dev - 设备 (device) 文件

/bin - 重要的二进制 (binary) 应用程序

/boot - 启动 (boot) 配置文件

/sbin - 重要的系统二进制 (system binaries) 文件

/sys - 系统 (system) 文件

/home - 本地用户主 (home) 目录

/lib - 系统库 (libraries) 文件

ls

(http://www.jb51.net/article/56474.htm)

ls命令的20个实用范例

通过修改时间列出:ls -lt
排序文件大小:ls -lhs
测量大小: ls -l --block-size=M
显示隐藏文件 ls -a
只列出目录条目 ls -d */
增加 / (斜线) 标记目录: ls -p
排序时反转顺序: ls -r
递归列出子目录: ls -R
扩展名排序: ls -lX
统计某文件夹下文件的个数:ls -l |grep "^-"|wc -l
统计某文件夹下目录的个数:ls -l |grep "^d"|wc -l
统计当前文件夹下文件的个数,包括子文件夹里的 ls -lR|grep "^-"|wc -l

程序安装

yum
rpm
卸载已经安装的rpm包
两个关键点:
1.如果提示有xxx.rpm包已经被installed了,那么先用rpm -e --nodeps xxx来卸载
2.如果存在多个版本的话,用rpm -e --allmatches来卸载 linux 下如何安装 tar.gz包
1)解压tar.gz包
    ==》最常见的gz格式,则可以执行:“tar –xvzf 软件包名”,就可以一步完成解压与解包工作。
    tar -zxvf 软件包名.tar.gz -C /home/hao 将软件包名.tar.gz解压到指定的目录下 (注意:-C为大写)
2)进入解压后的文件目录下 执行“./configure”命令为编译做好准备;
    ./configure --prefix=/opt
    表示安装到/opt目录
3) 执行“make”命令进行软件编译;
4) 执行“make install”完成安装;
5) 执行“make clean”删除安装时产生的临时文件。

文件解压

tar
tar -zxvf 软件包名.tar.gz -C /home/hao 将软件包名.tar.gz解压到指定的目录下 (注意:-C为大写)
unzip

文件操作

cp
mv
scp 快速删除大量文件:
1)先建立一个空目录
mkdir /data/blank
2)用rsync删除目标目录
rsync --delete-before -d /data/blank/ /var/spool/clientmqueue/ ln -s 源文件 目的文件(链接文件)
ln -s log2013.log link2013
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
ln -s /usr/local/nginx/conf /etc/nginx
1.源文件被删除后,并没有影响硬链接文件;软链接文件在centos系统下不断的闪烁,提示源文件已经不存在
2.重建源文件后,软链接不在闪烁提示,说明已经链接成功,找到了链接文件系统;重建后,硬链接文件并没有受到源文件影响,硬链接文件的内容还是保留了删除前源文件的内容,说明硬链接已经失效

权限

https://www.cnblogs.com/0xcafedaddy/p/7132860.html

  1. 常用的linux文件权限:
444 -r--r--r--
600 -rw-------
644 -rw-r--r--
666 -rw-rw-rw-
700 -rwx------
744 -rwxr--r--
755 -rwxr-xr-x
777 -rwxrwxrwx 注:使用ll命令查看文件/文件夹属性时候,一共有10列,第一个小格表示是文件夹或者连接等等
d表示文件夹,l表示连接文件,-表示文件
  1. 用户分组权限概念
从左至右:
0位数字代表文件类型:d表示文件夹,l表示连接文件,-表示文件
1-3位数字代表文件所有者的权限
4-6位数字代表同组用户的权限
7-9数字代表其他用户的权限

3.数字概念解析

读(r)=4
写(w)=2
执行(x)=1
读+写+执行=4+2+1=7 通过4、2、1的组合,得到以下几种权限:
0(没有权限)
4(读取权限)
5(4+1 | 读取+执行)
6(4+2 | 读取+写入)
7(4+2+1 | 读取+写入+执行) chmod 777 目录
chmod -R 777 usr/

Linux centos关机与重启命令详解与实战

Linux centos重启命令:
●   1、reboot
●   2、shutdown -r now 立刻重启(root用户使用)
●   3、shutdown -r 10 过10分钟自动重启(root用户使用)
●   4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
  如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启
Linux centos关机命令:
●   1、halt 立刻关机
●   2、poweroff 立刻关机
●   3、shutdown -h now 立刻关机(root用户使用)
●   4、shutdown -h 10 10分钟后自动关机
  如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启

查找

● find
○ find . -name “*” | xargs grep “hello abcserver”
○ find . -name "*" | xargs grep "test" ● locate(locate)
用来查找文件或目录。 locate命令要比find -name快得多,原因在于它不搜索具体目录,
而是搜索一个数据库/var/lib/mlocate/mlocate.db 。这个数据库中含有本地所有文件信息。
Linux系统自动创建这个数据库,并且每天自动更新一次,因此,我们在用whereis和locate
查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是
因为数据库文件没有被更新。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。 locate /etc/my

查看资源

系统版本

cat /etc/redhat-release

硬盘资源

du-Disk Usage
df-Disk Free du -ah --max-depth=1 /ddhome/usr/hadoop du -h du -lh df -h df -TH
ll -lh fdisk -l

查看CPU信息

总核数 = 物理CPU个数 X 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 #查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l #查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq #查看逻辑CPU的个数
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

调试

set -x 查看shell调试信息

网络

查看生效的ip信息

ifconfig

关闭和启动网卡

ifdown lo
ifup lo

查看网络状态

netstat

-t 列出tcp协议端口

-u 列出udp协议端口

-n 不使用域名与服务名,使用IP和端口

-l 列出监听状态的网络服务

-a 列出所有的网络连接

-r 路由信息

-p 列出pid,进程id

netstat -anp|grep :22
netstat -tunl
netstat -rn netstat -an|grep ESTABLISHED #通过这条指令查看当前计算机开启了哪些服务。
netstat -an|grep ESTABLISHED |wc -l #查看正在连接我的计算机

抓包命令

tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' -w 80.cap
tcpflow -a -o . -Fk -r 80.cap

开机自启动

/etc/rc.d/

init.d/ :各种服务器和程序的二进制文件存放目录

rc.* 各个启动级别的执行程序连接目录。里头的东西都是指向init.d/的一些软连接

服务开机自启动

/etc/rc.d/rc*.d

chkconfig --add service
chkconfig -level 5 service on

脚本开机自启动

etc/rc.d/rc.local
直接在该文件末尾添加自定义脚本

启动日志

/var/log/boot.log

进程查看ps

ps命名可以确定哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等.总之大部分信息都是可以通过执行该命令得到。ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令。

参数:

-A :所有的进程均显示出来,与 -e 具有同样的效用;
-a : 显示现行终端机下的所有进程,包括其他用户的进程;
-u :以用户为主的进程状态 ;
x :通常与 a 这个参数一起使用,可列出较完整信息。
输出格式规划: l :较长、较详细的将该PID 的的信息列出;
j :工作的格式 (jobs format)
-f :做一个更为完整的输出。 相关信息的意义为: F 代表这个程序的旗标 (flag), 4 代表使用者为 superuser;
S 代表这个程序的状态 (STAT);
UID 代表执行者身份
PID 进程的ID号!
PPID 父进程的ID;
C CPU使用的资源百分比
PRI指进程的执行优先权(Priority的简写),其值越小越早被执行;
NI 这个进程的nice值,其表示进程可被执行的优先级的修正数值。
ADDR 这个是内核函数,指出该程序在内存的那个部分。如果是个执行 的程序,一般就是『 - 』
SZ 使用掉的内存大小;
WCHAN 目前这个程序是否正在运作当中,若为 - 表示正在运作;
TTY 登入者的终端机位置;
TIME 使用掉的 CPU 时间。
CMD 所下达的指令名称

ps命令举例

使用 -a 参数。-a 代表 all。同时加上x参数会显示没有控制终端的进程。
$ ps -ax 在需要查看特定用户进程的情况下,我们可以使用 -u 参数。比如我们要查看用户'pungki'的进程,可以通过下面的命令:
$ ps -u pungki 通过cpu和内存使用来过滤进程
也许你希望把结果按照 CPU 或者内存用量来筛选,这样你就找到哪个进程占用了你的资源。要做到这一点,我们可以使用 aux 参数,来显示全面的信息:
$ ps -aux | less 根据 CPU 使用来升序排序
$ ps -aux --sort -pcpu | less 根据 内存使用 来升序排序
$ ps -aux --sort -pmem | less 显示前10个结果:
$ ps -aux --sort -pcpu,+pmem | head -n 10 通过进程名和PID过滤
使用 -C 参数,后面跟你要找的进程的名字。比如想显示一个名为getty的进程的信息,就可以使用下面的命令:
$ ps -C getty
$ ps -f -C getty 根据线程来过滤进程
如果我们想知道特定进程的线程,可以使用-L 参数,后面加上特定的PID。
$ ps -L 1213 显示安全信息
如果想要查看现在有谁登入了你的服务器。可以使用ps命令加上相关参数:
$ ps -eo pid,user,args 格式化输出root用户(真实的或有效的UID)创建的进程
系统管理员想要查看由root用户运行的进程和这个进程的其他相关信息时,可以通过下面的命令:
$ ps -U root -u root u 使用PS实时监控进程状态
ps 命令会显示你系统当前的进程状态,但是这个结果是静态的。 当有一种情况,我们需要像上面第四点中提到的通过CPU和内存的使用率来筛选进程,并且我们希望结果能够每秒刷新一次。为此,我们可以将ps命令和watch命令结合起来。 $ watch -n 1 ‘ps -aux --sort -pmem, -pcpu’ 如果输出太长,我们也可以限制它,比如前20条,我们可以使用head命令来做到。 $ watch -n 1 ‘ps -aux --sort -pmem, -pcpu | head 20’

查看系统打开文件lsof

lsof(list open files)是一个列出当前系统打开文件的工具。

在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。

因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。

lsof输出各列信息的意义如下:
COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
TYPE:文件类型,如DIR、REG等
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称 lsof -i[46] [protocol][@hostname|hostaddr][:service|port]

参考文献


tips:本文属于自己学习和实践过程的记录,很多图和文字都粘贴自网上文章,没有注明引用请包涵!如有任何问题请留言或邮件通知,我会及时回复。

linux系统常用命令(一)的更多相关文章

  1. Linux系统常用命令总结

    1. 最关键的命令 manecho 2. 目录文件操作命令 ls: 查看目录下的文件信息或文件信息dir:pwd: 打印当前路径cd:改变路径mkdir:创建路径rmdir:删除路径cp:拷贝文件或目 ...

  2. Linux系统常用命令权威指南

    <一>线上查询及帮助命令(2)1.man man [选项] [命令] 查看命令帮助,命令的词典,更复杂的还有info,但不常用. #man cd-a 显示所有的手册页,不只是显示第一个-f ...

  3. 【linux】工作中linux系统常用命令操作整理

    1.Linux如何查看端口 使用lsof(list open files)命令,lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000. 或者使用n ...

  4. Linux系统常用命令大全

    一.系统信息操作(备注:红色标记为常用命令,以下类推,不再赘述) arch 显示机器的处理器架构(1) uname -m   显示机器的处理器架构(2) uname -r               ...

  5. Linux系统常用命令速查手册

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 系统信息 arch      #显示机器的处理器架构(1 ...

  6. Linux系统常用命令 __转载的

    1.登录linux系统命令:login 用户名   密码: 2.注销linux系统命令:logout ; 3.在linux系统中进入windows系统(图形界面)命令:Start x; 4.关闭lin ...

  7. Linux系统常用命令汇总

    命令格式:命令 -选项 参数,例如:ls -la /usr:当有多个选项时,可以写在一起.ifconfig:查看当前机器的IP信息service network restart:重启网络服务servi ...

  8. Linux 入门记录:四、Linux 系统常用命令

    一.日期时间 命令 date 查看.设置当前系统时间: date -u 格林威治时间 date %Y-%m-%d 显示格式化的时间 date -s "23:00" 使用 -s 参数 ...

  9. Linux 系统常用命令汇总(三) 用户和用户组管理

    用户和用户组管理 命令 选项 注解 示例 useradd [选项] 用户名 新建用户 创建一个名为tester的用户,并指定他的UID为555,指定加入test群,指定其使用C-shell:  use ...

随机推荐

  1. Android ConstraintLayout 说明和例子

    快速说明 当我们点击一个按钮时,显示效果如下 Baseline的显示需要右键该控件,然后 约束类型 尺寸约束 实心方块,用来调整组件的大小 边界约束 空心圆圈,建立组件之间,组件和parent的约束关 ...

  2. Python smtplib发邮件

    常用邮箱SMTP.POP3域名及其端口号 发送普通文本内容的邮件 import smtplib from email.header import Header from email.mime.text ...

  3. 【LOJ】#3123. 「CTS2019 | CTSC2019」重复

    LOJ3123 60pts 正难则反,熟练转成总方案数减掉每个片段都大于等于s的字典序的方案 按照一般的套路建出kmp上每个点加一个字符的转移边的图(注意这个图开始字母必须是nxt链中下一个相邻的字符 ...

  4. 使用Minikube运行一个本地单节点Kubernetes集群

    使用Minikube是运行Kubernetes集群最简单.最快捷的途径,Minikube是一个构建单节点集群的工具,对于测试Kubernetes和本地开发应用都非常有用. ⒈安装Minikube Mi ...

  5. GoJS

    GoJS GoJS示例 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  6. 网络名称空间 实例研究 veth处于不同网络的路由问题

    相关命令详细介绍参见 http://www.cnblogs.com/Dream-Chaser/p/7077105.html .问题: 两个网络名称空间中的两个接口veth0和veth1,如何配置net ...

  7. Win32汇编语言语法基础

    汇编语言(assembly language)是一种用于电子计算机.微处理器.微控制器或其他可编程器件的低级语言,亦称为符号语言.在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地 ...

  8. 链表分割——牛客剑指offer

    题目描述: 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 给定一个链表的头指针 ListNode pHead,请返回重新排列后的链表的头指针.注意:分割以后 ...

  9. OnMouseWheel的通常处理

    BOOL CMainWindow::OnMouseWheel(UINT nFlags, short zDelta, CPoint point) { BOOL bUp = TRUE; int nDelt ...

  10. lsof---列出当前系统打开的文件信息

    lsof---list open file,一个列出当前系统打开文件的工具 1.lsof查找原理 在Linux系统中,系统为了方便管理进程,会在/proc下为每一个运行中的进程创建一个目录,目录名就是 ...