linux系统命令大全:
系统信息
# uname -a # 查看内核/操作系统/CPU信息
# cat /etc/issue # 查看操作系统版本
# sudo lsb_release -a # 查看操作系统版本
# cat /etc/lsb-release # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c #逻辑CPU数量和型号
# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l #物理CPU数量
# cat /proc/cpuinfo | grep "cpu cores" | uniq #物理CPU内核的个数,1个物理CPU里面有几个物理内核
# cat /proc/cpuinfo | grep "processor" | wc -l #查看所有逻辑CPU的个数
# grep -c 'processor' /proc/cpuinfo #查看所有逻辑CPU的核数
# cat /proc/cpuinfo | grep 'siblings' | uniq #物理CPU中逻辑CPU的个数,如使用超线程技术,则为整倍数
# cat /proc/cpuinfo | grep -e "cpu cores" -e "siblings" | sort | uniq #超线程,分别输出cpu cores和siblings数量
# grep 'model name' /proc/cpuinfo # 查看CPU信息
# lscpu # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量资源
# dmidecode -t memory #查看内存硬件信息
资源
# free -m # 查看内存使用量和交换区使用量
# du -sh <目录名> # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载磁盘和分区
磁盘和分区
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区# lsblk #查看硬盘和分区分布
#cat /proc/partitions #查看磁盘分区 #df -h #以容易理解的格式印出文件系统大小 # df -hT # 查看各分区使用情况,以K/M/G为单位显示文件大小和文件格式 # blkid #查看所有设置的分区和磁盘卷标
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况网络
# sudo blkid # ubuntu下查看分区的uuid #parted -l #查看所有gpt分区信息
(parted) P ----显示分区信息
(parted) Q ---退出
网络
# ifconfig -a # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息进程
用户
$su user2 #切换到user2用户
# sudo su #切换到root用户 # last # 查看用户登录日志
# useradd //添加用户
# passwd user1 //为user1用户设置密码
# usermod //修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;
# groupadd //添加用户组;
# groupdel //删除用户组;
# groupmod //修改用户组信息
# groups //查看当前登录用户的组内成员
# groups user1 查看user1用户所在的组,以及组内成员
# w # 查看活动用户
# id user1 # 查看指定用户信息
#grep user1 /etc/passwd #查看用户user1在/etc/passwd文件中的信息行
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务服务
--------------------------------------------------------------- 查看所有用户和用户组命令
# whoami //查看当前登录用户名 # groups //查看当前登录用所属的用户组
# groups www //查看用户www所属的用户组 # cat /etc/passwd //查看所有用户
/etc/passwd文件格式:
用户名:密码:UID:GID:用户信息:HOME目录路径:用户shell
其中UID为0则是用户root,1~499为系统用户,ubuntu系统中1000及以上为普通用户
# cat /etc/group //查看所有用户组
在/etc/group 中的每条记录分四个字段:
第一字段:用户组名称;
第二字段:用户组密码;
第三字段:GID
第四字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名; 格式如下:
group_name:passwd:GID:user_list
服务
#chkconfig --list # 列出所有系统服务
# chkconfig --list | grep on # 列出所有启动的系统服务程序
#chkconfig --add name
#chkconfig --del name
#chkconfig [--level levels] name <on|off|reset>
#chkconfig [--level levels] name
进程
# ps -ef # 查看所有进程
# top # 实时显示进程状态用户
-----------------------------------------------------------------------------
文件管理常用命令:
# pwd #显示用户当前所在的目录。
cd
cd命令不仅显示当前状态,还改变当前状态,它的用发跟dos下的cd命令基本一致。
cd .. #切换到到上一级目录
cd ../.. #切换到上二级目录
cd ~ #可进入用户的home目录
cd / #切换到根目录
cd - #可进入上一个进入的目录
ls
ls命令跟dos下的dir命令一样,用于显示当前目录的内容。
# ls #以默认方式显示当前目录文件列表
# ls –a #显示所有文件包括隐藏文件
# ls –l #显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行
# ls –lh #以容易理解的单位大小,即K、M、G为单位查看文件大小
# ls -nd username #查看目录和文件的归属uid和gid
# ls –-help #显示帮助信息
# ls |more #分屏显示,如果目录下的文件太多,用一屏显示不了,可以用这个命令
mkdir
这个命令很简单,跟dos的md命令用法几乎一样,用于建立目录。
cp
cp命令用于复制文件或目录。
cp命令可以一次复制多个文件,例如:
cp *.txt *.doc *.bak /home #将当前目录中扩展名为txt、doc和bak的文件全部复制到/home目录中。
cp -a dirname destdir #复制目录dirname到 目录destdir
- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
- d 拷贝时保留链接。
- f 删除已经存在的目标文件而不提示。
- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
- l 不作拷贝,只是链接文件。
-R 同-r
rm
rm命令用于删除文件或目录。
rm file #强制删除某一个文件
rm -fr * #强制删除当前目录下所有文件夹和文件
rm -fr dir #强制删除当前目录下叫dir的整个目录
rm -rf !(keep) #删除keep文件之外的所有文件
rm -rf !(keep1 | keep2) #删除keep1和keep2文件之外的所有文件
-d 删除可能仍有数据的目录 (只限超级用户)
-f 略过不存在的文件,不显示任何信息
-i 进行任何删除操作前必须先确认
-r 同时删除该目录下的所有目录层
-v 详细显示进行的步骤
要删除第一个字符为'-'的文件 (例如'-foo’),请使用以下其中一种方法:
rm -- -foo
rm ./-foo
mv
mv命令用于移动文件、目录或更名文件。
参 数:
-b或--backup 若需覆盖文件,则覆盖前先行备份。
-f或--force 若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录。
-i或--interactive 覆盖前先行询问用户。
-u或--update 在移动或更改文件名时,若目标文件已存在,且其文件日期比源文件新,则不覆盖目标文件。
-v或--verbose 执行时显示详细的信息。
示例:
$mv ye.txt /home //移动文件
将当前目录下的ye.txt文件移动到/home目录下
$mv ye.txt ye1.txt //文件改名
将ye.txt文件改名为ye1.txt。
$mv test1 test2 //移动目录
如果test2目录不存在的话,linux会将test1重命名为test2,但是如果test2目录已经存在的话,就会把test1目录整个移动到test2下,形成/test2/test1的目录结构。
类似于跟cp命令,mv命令也可以一次移动多个文件,在此不再赘叙。
find
find命令用于查找文件。这个命令可以按文件名、建立或修改日期、所有者(通常是建立文件的用户)、文件长度或文件类型进行搜索。
其中指定从哪个目录开始搜索。指定搜索条件。表示找到文件怎么处理。一般来说,要用-print动作,显示 整个文件路径和名称。如果没有这个动作,则find命令进行所要搜索而不显示结果,等于白费劲。
例如,要搜索系统上所有名称为ye的文件,可用如下命令:
$find / -name ye -print
这样就可以显示出系统上所有名称为ye的文件。
touch
touch file #指令改变档案的时间记录 也可用于建立一个空的文件
使用举例
touch file1.txt //建立一个file1.txt文件,如已存在则更新此文件的存取和修改时间。
cat
cat file #文本查看命令
nano
nano file #简单实用的文本编辑器
vi
vi file #功能强大的编辑文件命令 退出方式为:q 写入并退出 :wq
chown
修改文件和文件夹的用户和用户组属性
chown user1 myfile.txt #使user1用户对myfile.txt文件拥有权限
chown -R sakia:net /tmp/sco 将 /tmp/sco这个目录的所有者和组改为sakia和组net
chmod
修改文件和文件夹读写执行属性
chmod 777 hh.c #把hh.c文件修改为可写可读可执行
chmod 777 /tmp/sco #把目录 /tmp/sco修改为可写可读可执行
chmod -R 777 /tmp/sco #修改/tmp/sco下所有的文件和文件夹及其子文件夹属性为可写可读可执行
777就是拥有全权限。根据需要可以自由组合用户和组的权限。
ln
该命令在文件之间创建链接。
语法:ln [选项] 目标 [链接名]
链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(SymbolicLink)。默认情况下,ln产生硬链接。
例:$ ln - s lunch /home/xu
用户为当前目录下的文件lunch创建了一个符号链接/home/xu。
-s 建立符号链接。
man
man name #读取相关命令的帮助
startx
#运行Linux图形环境
reboot
重启命令,不必多说。
halt
等于shutdown -h命令,关机命令,不必多说。
使用示例:
halt -p 关机并关闭电源
|