linux常用命令集合

简介:

-----------------------------------------系统运行时间  uptime 
uptime命令显示系统已经运行了多长时间,它依次显示下列信息:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1 min、6 min和8 min内的平均负载

 

或者last|grep "system boot"|head -n 1

 

 

-----------------------------------------索引节点(i节点) 进行删除

可以使用 索引节点(i节点) 进行删除

[root@selboo /]# ll -i
  51665 -rw-r--r--  1 root root     0 May 23 22:38 ?Os???j?

得到i节点为 51665
通过find命令删除i节点为51665的文件

[root@selboo /]# find ./ -inum 51665 -print -exec rm {} -rf \;
./?Os???j?

 

-----------------------------------------selinux

/etc/selinux/config

 

 

-----------------------------------------mount

mount /dev/hda4 /users

由/dev/hda4表示的文件系统安装到路径users 下,随后可以使用ls /users来查看这个文件系统的内容,不能再使用ls /dev/hda4来访问

 

umount

 

-----------------------------------------关机 重启

shutdown -h now

shutdown -h +15 "going down for emergency disk repair."

shutdown -h 09:30 "go....."

 

halt  关机

reboot  重启

 

-----------------------------------------ln

连结又可分为两种 : 硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档案系统中,而软连结却可以跨越不同的档案系统。

 

-s : 进行软链结

 

存在/home/abc/111/sr

存在/home/abc/222

#ln -s /home/abc/111/sr /home/abc/222/sr

#ls -al /home/abc/222/

lrwxrwxrwx 1 root root      16 09-08 22:12 3r -> /home/abc/111/3r

 

 

 

 

-----------------------------------------查找相关命令是否已经在搜索路径中 which whereis locate

#which gcc

/usr/bin/which: no gcc in (/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/centos/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/kerberos/sbin)

 

如果 which没有找到的命令,那么试试whereis
[root@localhost centos]# whereis gcc
gcc: /usr/libexec/gcc

还可以使用locate,它搜索的并不特定于命令或软件包,而是能够找到任何类型的文件
[root@localhost centos]# locate signal.h
/usr/share/man/man0p/signal.h.0p.gz

 

 

-----------------------------------------显示网络流量

watch -n 1 "/sbin/ifconfig eth0 | grep bytes"

 

------------------------------------------查看内存使用情况

free

 

------------------------------------------查看CPU使用情况的命令

每5秒刷新一次,最右侧有CPU的占用率的数据

$ vmstat 5

 

 

------------------------------------------磁盘的IO性能

Linux下的iostat命令

iostat -d -k -t 2

每隔2秒统计一次磁盘IO信息,直到按 Ctrl+C终止程序,-d 选项表示统计磁盘信息, -k 表示以每秒KB的形式显示,-t 要求打印出时间信息,2 表示每隔 2 秒输出一次。第一次输出的磁盘IO负载状况提供了关于自从系统启动以来的统计信息。随后的每一次输出则是每个间隔之间的平均IO负载状况。

运行该命令后,输出:

Linux 2.6.9-67.0.7.ELsmp (localhost.localdomain)        11/19/2008

Time: 03:15:25 PM
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               3.53        26.66        54.76   30122033   61864280
sda1              0.51         1.07         1.73    1207649    1949740
sda2              0.00         0.00         0.00        538        256
sda3             13.84        25.59        53.03   28913291   59914092

Time: 03:15:27 PM
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             275.38         0.00      1738.69          0       3460
sda1             14.57         0.00        58.29          0        116
sda2              0.00         0.00         0.00         0          0
sda3            419.60         0.00      1678.39          0       3340

...

每次输出都会打印时间信息, 接下来显示磁盘IO情况列表。

Device: 显示磁盘名称
tps: 表示每秒钟输出到物理磁盘的传输次数。一次传输就是一个对物理磁盘的 I/O 请求。多个逻辑请求可被并为对磁盘的一个单一 I/O 请求。传输具有中等的大小。
kB_read/s: 每秒从磁盘读取的数据量,单位为KB。
kB_wrtn/s: 每秒从写入磁盘的数据量,单位为KB。
Kb_read: 读取的 KB 总数。 
Kb_wrtn: 写入的 KB 总数。

 

 

 

------------------------------------------linxu 文件夹 权限 chmod chown

drwxr-xr-x 中的第一位(左数)表示当前目录是目录还是文件,d表示目录,-表示普通文件.
后面9位分为3组,每3组作为1组,从左到右分别表示文件属主,文件属组,和其他所有用户的权限.
r表示文件可读,w表示文件可写,x表示文件可以执行.

 

chown chmod -R 递归更新目录权限


用命令chmod改变文件权限.有两种
第一种 
  chmod (ugoa) (=-+) (rwx) file
u代表文件属主,g代表文件属组,o代表系统中除属主和属组成员之外的其他用户,a代表所有用户(u,g,o)总和
+代表增加相应的权限,-代表减少相应的权限,=代表只有相应的权限
chmod g-w file就可以完成上面那个文件的权限改正.
第二种
用数字改正,r为4,w为2,x为1
把数字相加就是所对应的权限,不如rwx就是7,rw就是6
改正上面问题的权限方法为
chmod 775 file 就行了

 

chown user:group

#chown -R matt:staff ./mattt

 

 

-----------------------------------------------date -s”命令来修改系统时间
#date -s 12/14/2007  
将系统时间设定成上午9点16分0秒的命令如下。
#date -s 09:16:00

 

 

-------------------------------------------ls getfacl

getfacl 可显示一个文件当前的acl

#getfacl ./

 

ls -lih 所有文件和目录
ls -lih /home/web/limebook/*

ls -ld uploadfile/  指定文件的属性
ls -l xxx.xxx 查看文件权限

ls -la |wc -l 
应该减三,因为ls -la会显示"."和".."两个目录,并且-l会产生

total信息,故应该减三。
ls -l|wc -l

ls | egrep '[0-9]{2}'  显示带数字的目录和文件
ls | egrep '^[0-9]{2}/$'

只显示目录名
ls -l | grep ^d

只显示文件
ls -l | grep ^-

只显示文件名
ls -l | grep ^f

统计当能目录下的文件数
ls -l | grep ^- | wc -l

 

 

-----------------------------------------------find

find / -name "mysql*"  查找文件
# find / -name wish -print
 find ./ -name '*.php'  可遍历目录
find ./ -maxdepth 1 -name '*.php' 不遍历,只寻找一级目录下
find . -regex '.*\.\(c\|h\|min\|cpp\|mak\|txt\)' -print  find查找包含 .c .h .min .cpp .mak .txt 等后辍名的文件
find -type f ! -name "*.php"    find . ! -name "*.php"查找当前目录,包括所有子目录里,除了 .sh结尾的所有其他文件。


df -h  查看磁盘空间

mv 可以移动一个文件(或目录)到另一个文件(或目录),如果文件(或目录)不存在,则创建它。其实mv 这个过程也可以理解为改名过程

,所以说mv工具能修改文件名和目录名。

file *.* 查看文件类型

 

 

//cp整个目录但是不包含其中某个目录

#cp -r `find /tmp/test -type d  -path /tmp/test/c  -prune -o -print |sed 1d ` /tmp/test2

find所带的参数
-prune:使用这一选项可以使f i n d命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被f i n d命令忽略。
-type 查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。

 

 

-----------------------------------------------------------cd

cd .. 返回上级目录
cd ../.. 进入上二级目录
cd - 返回上一次进入的目录
cd 进入用户自己的主目录
cd ~ 进入用户自己的主目录

 

 

---------------------------------------------------------tail

 

tail 命令从指定点开始将 File 参数指定的文件写到标准输出。
tail -f 命令可用于监视另一个进程正在写入的文件的增长。 
[root@xiegh-yangb ~]# tail -f /var/log/httpd/error_log

 

 

 

----------------------------------------------------------cp

cp -r limebook limebook_6.3 
cp -rf mysqlse ../mysql-5.1.26-rc/storage/sphinx
- f 删除已经存在的目标文件而不提示。   
- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。 
- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。 
- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
-a 尽可能将档案状态、权限等资料都照原状予以复制。

 

 

 

-------------cp整个目录但是不包含其中某个目录

/tmp/test
        /a
        /b
        /c
        /d
我想拷贝整个test目录,但是不包括下面的c目录,该怎么写啊?
#cd /tmp
#mkdir test2
#cp -r `find /tmp/test -type d  -path /tmp/test/c  -prune -o -print |sed 1d ` /tmp/test2

 

 

-------------------------------------------------------rm

rm -rf 目录  遍历删除

 

 

----------------------------------------------------------netstat网络统计信息

    -a 显示所有socket,包括正在监听的,列出所有主动监听的端口。 
-c 每隔1秒就重新显示一遍,直到用户中断它。
-i 显示所有网络接口的信息,格式同“ifconfig -e”。 
-n 以网络IP地址代替名称,显示出网络连接情形,获得数字地址和端口号。 
-r 显示核心路由表,格式同“route -e”。
-t 显示TCP协议的连接情况。
-u 显示UDP协议的连接情况。
-v 显示正在进行的工作。

      -p 每个监听端口相关联的特定进程

 

netstat -i -e 显示主机上每个网络接口的配置和状态

netstat -lp 标识正在监听的网络服务

netstat -rn  检查路由表

netstat -s 查看各种网络协议运行的统计信息


netstat -tln 用来查看linux的端口使用情况
netstat -anp | grep 25
netstat --ip -an


Lsof:其功能是列示打开的文件,包括监听端口
推荐:lsof -i :port,使用lsof -i :port就能看见所指定端口运行的程序,同时还有当前连接。//lsof -i:25,可以看到PID:3200
使用lsof -i :port就能看见所指定端口运行的程序,同时还有当前连接。
linux lsof命令详解 

-----------------------------------------------------------监视进程ps top
ps是比较常用的,可以配合grep命令来查找正在运行的进程。
ps auxf  所有进程的全貌

 ps lax 
推荐ps ax 命令显示一个当前系统进程的列表,该列表是一个静态列表
ps ax | grep 25
ps aux |grep send
ps -ax | grep http

ps -fp "5892 5893" 查看相关进程
top用于动态监视高资源占用的,要退出 top,按 [q] 键。


------------------------------------------------------------kill
kill 命令用于终止进程

   例如: kill -9 [PID]                 

                 -9表示强迫进程立即停止

 

通常用ps 查看进程PID ,用kill命令终止进程

-----------------------------------------------------------pmap  查看 进程所用内存

Linux下使用pmap命令能查看一个具体进程所用内存的分布情况。
pmap -x 进程号
我们可以通过这个命令查看apache的http进程的各个模块的内存调用,从而我们可以通过分析精简apache的模板。

 

 

---------------------------------------------------------用户相关

/etc/passwd 注:用户(user)的配置文件;
/etc/shadow 注:用户(user)影子口令文件;

 

/etc/group 注:用户组(group)配置文件;
/etc/gshadow 注:用户组(group)的影子文件;

 

 

who
last

last | grep reboot
如果指明了用户,那么last只报告该用户的近期活动,例如:last ynguo(回车)显示: 
ac -p (回车)显示每个用户的总的连接时间 
w:w命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息

 

lastlog   列出每个帐户最后登陆系统的时间
last      列出所有用户的登陆记录(包括登陆设备和时间),以时间排序显示
who /var/log/wtmp  将报告自从wtmp文件创建或删改以来的每一次登录。
ac -d     显示每天的总的连结时间  -p 显示每个用户的总的连接时间

 

usermod -g group loginname 
强行设置某个用户所在组
usermod -G groups loginname
把某个用户改为 group(s) 
usermod -a -G groups loginname
把用户添加进入某个组(s)

#id    注:查看用户的UID、GID及所归属的用户组

#id apache 查看APACHE用户的信息

 

 

 

--------------cat

cat命令就是查看文件的内容:
如#cat a.txt,而vi是一个文件编辑器

------------mkdir
mkdir -p
mkdir有一个很方便的-p选项,该选项告诉mkdir创建所有缺少的父目录,如下所示:
$ mkdir -p easy/as/pie


mkdir -m 711 test2   //指定权限

----------------touch 创建文件
----------------------telnet  远端登入
ping smtp.163.com
telnet smtp.163.com



-----------------file 显示文件类型
file 文件或文件夹

 

查看系统状态
查看系统使用字符集:echo $LANG $LANGUAGE
环境变量:set

 

 

系统

查看CPU个数 cat /proc/cpuinfo   看出现processor字样的行数是多少条
cat /proc/meminfo

 



# uname -a               # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue   # 查看操作系统版本
# cat /proc/cpuinfo      # 查看CPU信息
# hostname               # 查看计算机名
# lspci -tv              # 列出所有PCI设备
# lsusb -tv              # 列出所有USB设备
# lsmod                  # 列出加载的内核模块
# env                    # 查看环境变量

资源

# free -m                # 查看内存使用量和交换区使用量
# df -h                  # 查看各分区使用情况
# du -sh <目录名>        # 查看指定目录的大小
# grep MemTotal /proc/meminfo   # 查看内存总量
# grep MemFree /proc/meminfo    # 查看空闲内存量
# uptime                 # 查看系统运行时间、用户数、负载
# cat /proc/loadavg      # 查看系统负载

磁盘和分区

# mount | column -t      # 查看挂接的分区状态
# fdisk -l               # 查看所有分区
# swapon -s              # 查看所有交换分区
# hdparm -i /dev/hda     # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE       # 查看启动时IDE设备检测状况

网络

# ifconfig               # 查看所有网络接口的属性
# iptables -L            # 查看防火墙设置
# route -n               # 查看路由表
# netstat -lntp          # 查看所有监听端口
# netstat -antp          # 查看所有已经建立的连接
# netstat -s             # 查看网络统计信息

进程

# ps -ef                 # 查看所有进程
# top                    # 实时显示进程状态

用户

# w                      # 查看活动用户
# id <用户名>            # 查看指定用户信息
# last                   # 查看用户登录日志
# cut -d: -f1 /etc/passwd   # 查看系统所有用户
# cut -d: -f1 /etc/group    # 查看系统所有组
# crontab -l             # 查看当前用户的计划任务

服务

# chkconfig --list       # 列出所有系统服务
# chkconfig --list | grep on    # 列出所有启动的系统服务

程序

# rpm -qa                # 查看所有安装的软件包

 

 

 

 

 

-----------------------------------------------------------------------------------------【ubuntu】

 

-------------------------------------------rcconf设置开启启动

进去以后按空格键可取消或选择对应的设置

 

-----------------------------------------------------------------------------------------【centos】

 

 

-------------------------------ifconfig 命令无效

# ifconfig
提示命令不存在

使用 # /sbin/ifconfig 即可


原因: 系统默认的环境变量设置不对

    在 普通用户 和root用户下分别执行echo $PATH,PATH里少了四个地址:/sbin:/usr/sbin:/usr/local/sbin:/usr/kerberos/sbin
    而,ifconfig恰恰就在/sbin里面。

    修改/home/用户/.bash_profile,在PATH后面添加/sbin:/usr/sbin:/usr/local/sbin:/usr/kerberos/sbin这几个路径。
    改完之后,注销下或者重启才能生效。
    再来sudo ifconfig , 就OK了。

 

-------------------------------chkconfig 用户管理服务,可以在系统中增删启动脚本

chkconfig --list [name]  显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态【对应/etc/rc.d/rc*.d/目录】 。 
chkconfig --add name   增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。 
chkconfig --del name    删除服务,并把相关符号连接从/etc/rc[0-6].d删除。 
chkconfig [--level levels] name <on|off|reset>   设置某一服务在指定的运行级是被启动,停止还是重置。例如,要在3,4,5运行级停止nfs服务,则命令如下:

    #chkconfig --level 345 nfs off

 

on和off分别指服务被启动和停止,reset指重置服务的启动信息, on和off开关,系统默认只对运行级3,4,5有效,但是reset可以对所有运行级有效。

 

#/sbin/chkconfig --add sshd [在服务清单中添加ssh服务]
#/sbin/chkconfig sshd on [设置ssh服务开机启动]


本文转自holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/417201


相关文章
|
1天前
|
Ubuntu Linux
【Linux基础】常用 apt 命令
在 Linux 系统中,特别是基于 Debian 的发行版(如 Ubuntu),apt(Advanced Package Tool)是一个用于处理软件包的强大工具。apt 提供了对软件包的搜索、安装、升级、删除等操作的命令行界面,使得用户能够方便地管理系统中的软件包。
22 13
|
1天前
|
缓存 Linux
【Linux基础】 常用 yum 命令
yum是Yellowdog Updater, Modified的简称,旨在自动化地升级、安装/移除 RPM 安装包。它通过收集rpm包的相关信息,检查依赖性,并提示用户解决依赖问题,从而简化了Linux系统中软件包的管理。
26 10
|
1天前
|
Shell Linux 数据安全/隐私保护
蓝易云 - Linux中的chsh命令及示例
注意:只有拥有适当权限的用户(如root用户)才能更改其他用户的登录shell。普通用户只能更改自己的登录shell。
9 3
|
1天前
|
缓存 监控 安全
Linux top命令详解:持续监听进程运行状态
Linux top命令详解:持续监听进程运行状态
13 3
|
17小时前
|
存储 安全 Linux
深入解析Linux命令p11-kit:PKCS#11模块的协调器
**p11-kit详解:连接PKCS#11模块的桥梁** p11-kit是Linux下管理PKCS#11加密设备的库,它提供统一接口,简化与智能卡、HSM等的交互。用于密码学开发、系统集成及云服务,支持动态加载模块,通过API简化编程。安装时注意依赖,选择合适方式,关注版本兼容性,并通过文档和测试确保稳定。代码示例展示如何加载和卸载PKCS#11模块。
|
17小时前
|
Linux 数据处理 开发者
Linux命令od的深入探索
**Linux的od命令详解** od是Linux中用于以多种格式显示文件内容的工具,尤其适合二进制文件分析。它支持八进制、十进制、十六进制、ASCII及浮点格式。常用参数如`-a`显示可打印字符,`-b`以八进制,`-x`以十六进制,`-j`跳过字节,`-N`限制输出字节数。通过od,用户能查看非打印字符和理解文件结构。在处理大文件或特定编码的文本文件时需谨慎。最佳实践是结合具体需求选用参数,提高工作效率。
|
17小时前
|
NoSQL Linux 程序员
Linux objdump命令:深入解析与实战应用
`objdump`是Linux下的反汇编工具,用于将二进制文件转换为汇编代码,便于理解程序底层。它可以反汇编目标文件、可执行文件和库,支持多种参数,如显示符号表(-t)、反汇编代码(-d)、源代码与汇编混合视图(-S)。在实践中,结合-g编译选项和特定段(-j)反汇编,能辅助调试和分析。使用时注意包含调试信息,选择适当参数,并与其他工具(如gdb)配合使用。
|
17小时前
|
Linux 编译器 测试技术
探索Linux中的objcopy命令:数据处理与分析的得力助手
`objcopy`是GNU工具集中的实用程序,用于复制和转换二进制目标文件,如ELF到S-record。它支持格式转换、内容提取和修改,如移除调试信息。命令参数包括指定输入/输出格式和复制特定段。示例用途有:`objcopy -O binary input.elf output.bin`(ELF转二进制)和`objcopy -j .text input.elf output.o`(复制.text段)。使用时注意文件格式、备份原始文件并查阅文档。对于处理和分析二进制数据,`objcopy`是不可或缺的工具。
|
17小时前
|
Linux 数据处理
Linux中的numfmt命令:数字格式化的强大工具
**numfmt命令在Linux中用于数字格式化,如转换进制、添加千位分隔符、处理字节单位。它支持从文件读取数字并能自定义分隔符、小数位数。例如:`numfmt 12345` 输出12,345(十进制),`numfmt -b 255` 输出11111111(二进制),`numfmt --to=iec 1000000` 输出976.6K(字节单位)。使用时注意选项组合及单位标准。**
|
17小时前
|
安全 网络协议 Linux
探索Linux命令nss-policy-check:数据安全的守护者
`nss-policy-check`是Linux工具,用于检测名称服务策略的安全性,防止配置错误或风险。它检查`/etc/nsswitch.conf`,确保用户、组等信息解析的正确性。命令参数包括 `-f` 指定配置文件,`-v` 显示详细信息,`-q` 输出错误。定期运行此命令并关注输出,是维护系统安全的关键。修改配置前记得备份。