Linux常用命令总结
文章目录
一、Linux简介
-
Linux是一套免费使用和自由传播的类Unix操作系统,其内核(kernel)由林纳斯·托瓦兹(Linus Torvalds)编写,于1991年第一次公开。
林纳斯·托瓦兹:
-
Linux主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。
-
目前市面上较知名的发行版有:Debian, Ubuntu, OpenSUSE, Fedora, CentOS, Arch Linux, RedHat等。
-
终端命令的基本格式为:
command [-options] [parameter]
command :命令名,相应功能的英文单词或英文缩写
[-options] :选项,可用来对命令进行控制,可省略
parameter :参数,可以是0、1或者多个
二、Linux实用技巧
-
自动补全
在终端输入命令时,首先输入文件、目录或者命令的前几个字母,然后按下Tab键,如果该命令是存在且唯一的,那么就会自动补全。如果还存在其他的以这几个字母开头的文件、目录或者命令,再次按下Tab键则会显示所有可能的情况。此外,在操作文件或目录时,在已输入的路径下按Tab键则会显示该路径下所有的文件或文件夹。
-
显示曾用命令
在终端输入命令时,使用键盘的上(up)或下(down)键可以在曾经使用过的命令间来回切换,也可以查看家目录下的.bash_history文件查找曾用命令
less ~/.bash_history
。 -
which
命令可查看执行命令的所在位置which vim # 查看vim命令所在位置 /bin/vim # 终端输出结果
-
结束当前执行的命令
Ctrl + c
-
清屏
clear
三、文件和文件夹相关命令
1. 查看文件夹内容
ls
是英文单词list的缩写,可以查看目录下的内容,是使用非常频繁的命令
ls -al /dir # 以列表形式显示/dir目录下所有内容,包括隐藏文件
ls -hl /dir # 以列表形式显示/dir目录下的内容,以人性化方式显示文件大小
ll /dir # 以列表形式显示/dir目录下的内容
注:ll
命令是ls -l
命令的别名,功能相同。
-a
: 显示所有,包括隐藏文件(文件名以.
开头的文件或文件夹)
-l
: 以列表的方式显示详细信息
-h
: 以人性化方式显示文件大小
2. 查看文件内容
more
启动时加载整个文件,一页一页的显示文件内容,空格键(Space)下一页,b键上一页(back),回车键(Enter)下一行,q键退出
more file # 查看文件file内容
less
(常用命令)
启动时不加载整个文件,一页一页的显示文件内容,空格键(Space)下一页,回车键(Enter)下一行,PageDown键下一页,PageUp键上一页,q键退出
less file # 查看文件file内容
head
和tail
head查看文件开头部分内容,tail查看文件末尾部分内容,默认显示10行内容
head -n 5 file # 显示file文件前5行内容
tail -n 20 file # 显示file文件最后20行内容
cat
cat是英文单词concatenate的缩写,会一次显示所有内容,可以查看文件内容、创建文件、合并文件、追加文件内容等
cat file # 查看file文件内容
cat -n file # 查看file文件内容,并显示行号
cat file1 file2 # 查看file1和file2文件内容
cat file1 > file2 # 将file1文件内容写入并覆盖file2文件,如果file2文件不存在则创建该文件
cat file1 file2 >> file3 # 将file1和file2文件内容追加到file3文件后面,不覆盖原内容
3. 切换目录
cd
是英文单词change directory的缩写,可以切换当前工作目录
pwd # 显示当前工作目录
cd /dir # 切换到/dir目录
cd # 切换到当前用户的家目录
cd ~ # 切换到当前用户的家目录
cd / # 切换到根目录
cd . # 保持在当前目录
cd .. # 切换到上一级目录
cd - #切换到上一次工作的目录
注:绝对路径是从根目录/
或者家目录~
开始的具体位置,最前面是用/
或者~
;而相对路径是相对当前目录所在的目录位置,最前面不是用/
或者~
。
4. 新建、移动、复制和删除
tree
tree以树状图显示文件目录结构
tree # 显示当前目录的文件目录结构
tree -d # 只显示当前目录的目录结构,不显示文件
tree -d /dir # 显示/dir目录的目录结构,不显示文件
mkdir
mkdir是英文单词make directory的缩写,可以新建一个文件夹
mkdir dir # 在当前目录下创建一个名为dir的文件夹
mkdir -p /dir1/dir2 # 在/dir1目录下创建一个名为dir2的子文件夹,如果/dir目录原本不存在,则创建一个
touch
touch可以新建文件或者修改文件的时间属性
touch file # 如果file文件不存在,则新建一个名为file的空白文件;如果存在,则修改其时间属性为当前系统时间
mv
mv是英文单词move的缩写,可以移动或重命名文件和文件夹
mv file1 file2 # 将file1文件重命名为file2
mv dir1 dir2 # 将dir1文件夹名重命名为dir2
mv dir ../ # 将dir文件夹移动至上一级目录
mv /dir1/file1 /dir2/file2 # 将file1文件从/dir1目录移动到/dir2目录,并重命名为file2
cp
cp是英文单词copy的缩写,可以复制文件和文件夹
cp file1 file2 # 复制file1文件并重命名为file2
cp -r /dir1 /dir2 # 将/dir1目录递归复制到/dir2目录下
cp -r /dir1 /dir2/nwedir1 # 将/dir1目录递归复制到/dir2目录下,并重命名为newdir1
cp /dir1/file1 /dir2/file2 # 将file1文件从/dir1目录复制到/dir2目录,并重命名为file2
注:-r
选项为递归,只对文件夹有效
rm
rm是英文单词remove的缩写,可以删除文件和文件夹
rm file # 删除file文件
rm -r dir # 递归删除dir文件夹
rm -rf /dir/* # 强制删除/dir目录下所有内容
四、用户和权限相关命令
1. 管理用户和用户组
详情请见:Linux系统下用户和用户组的管理
管理用户
useradd -m -g groupname newuser # 添加新用户,-m自动创建用户家目录
passwd newuser # 给newuser用户设置密码
userdel username # 删除username用户
id username # 查看username用户的UID和GID等信息
who # 查看系统当前所有登录用户
w # 查看系统当前所有登录用户信息
whoami # 查看当前终端登录用户的用户名
last # 显示用户最近登录信息
注:创建用户时如果忘记添加-m
选项指定新用户的家目录,推荐删除用户后重新创建;创建用户时如果未使用-g
选项,则会创建一个和用户名同名的组。用户信息保存在/etc/passwd
文件夹中。
管理用户组
groupadd newgroup # 新建一个newgroup工作组
usermod -G gruopname username # username用户离开原来的用户组,进入groupname用户组
usermod -a gruopname username # username用户不离开原来的用户组,直接进入groupname用户组
groupdel groupname # 删除名为groupname的用户组
注:用户组信息保存在/etc/group
文件夹中。
切换用户
su - # 默认切换到root用户,拥有执行权限以及其环境变量
su - otheruser # 将登陆用户切换到otheruser用户,拥有执行权限以及其环境变量
注:去掉-
选项则不会获得切换后用户的环境变量。
2. 管理权限
用户分类:所有者(u),同组用户(g),其他用户(o),所有用户(a)
文件权限:读(r),写(w),执行(x),没有权限(-),对应数字:r=4,w=2,x=1,-=0
文件和目录信息展示:
drwxrwxr-x 1 user user 512 May 2 13:09 dir # 第一个d代表文件夹
-rw-rw-r-- 1 user user 0 May 2 13:09 file.txt # 第一个-代表文件
注:例如dir文件夹,rwxrwxr-x
分为三组。第一组rwx
表示所有者权限,可读可写可执行;第二组rwx
表示同组用户权限,可读可写可执行;第三组r-x
表示其他用户权限,可读不可写可执行。
chown
修改拥有者,chgrp
修改组,chmod
修改权限
chown username file # 将file文件拥有者修改为username用户
chgrp groupname /dir # 递归修改/dir目录所属组为groupname
chmod -R 755 /dir # 递归修改/dir目录权限为755
chmod g+w,o+r file # 给同组用户添加写权限,给其他用户添加读权限
chmod -R a-rw /dir # 递归删除所有用户对/dir目录的读写权限
chmod u=r file # 只保留所有者对file文件的读取权限
注:-R
选项递归修改目录。
五、远程管理相关命令
1. 关机和重启
如果要关机或重启,必须保证当前系统中没有其他用户登录,who
命令可以查看是否有其他用户登录,ps -aux
命令可以查看后台是否有进程运行。
shutdown -h +5 # 5分钟后关机
shutdown -h now # 立刻关机
shutdown -h 12:00 # 12:00关机
shutdown -r now # 立刻重启
shutdown -r +5 # 5分钟后重启
shutdown -c # 取消之前的关机或重启计划
reboot # 立刻重启
halt # 立刻关机
shutdown -h +5 "System will be shutdown after 5 minutes" # 5分钟后关机,并发出警告
shutdown -r +3 "System will be reboot after 3 minutes" # 3分钟后重启,并发出警告
shutdown -k +5 "Waring:System will be shutdown" # 给所有登录用户发出警告,不会关机
注:延时关机或重启可以在命令后面加一个&
,把关机或重启任务放在后台。
2. 网卡和IP地址
网卡是一个负责网络通讯的硬件设备,IP地址是设置在网卡上的地址信息,每台电脑的IP地址不能相同,否则不能正常通讯。
ifconfig
ifconfig是英文单词network interfaces configuring的缩写,是用于查看或配置网卡的命令
ifconfig # 查看或配置计算机当前的网卡信息
ifconfig | grep inet # 查看网卡信息中的IP地址
注:127.0.0.1被称为本地回环或环回地址,一般用来测试本机网卡是否正常。
ping
ping可以检测当前计算机与目标计算机间的网络是否通畅
ping ip或域名 # 检测与目标地址是否连接正常
ping baidu.com # 检测与百度服务器是否连接正常
ping 127.0.0.1 # 检测本地网卡是否正常
3. 远程登录和文件传输
ssh
SSH客户端是一种使用Secure Shell(SSH)协议连接到远程计算机的软件程序,是linux系统中非常常用的工具
ssh -p port user@remote # user是用户名,remote是ip或域名,不指定-p默认为22端口号
ssh -p 22 root@138.123.2.15 # 实例,输入密码后即可成功登录root账户
注:如果SSH服务器端口不是22,需要使用-p选项,指定正确的端口号;使用exit
或者Ctrl+d
可退出当前用户的登录。
scp
scp是英语单词secure copy的缩写,可以远程拷贝文件,它的地址格式与ssh类似,但指定端口是大写的-P
scp -P port file user@remote:/data/file # 将当前路径下的file文件复制到远程/data目录中
scp -r user@remote:/home/user/dir newdir # 复制远程user用户家目录下的dir文件夹到当前路径的newdir文件夹中,如果不存在newdir文件夹则重命名为newdir
注:如果:
后面不是绝对路径,则以用户家目录作为参考路径。
-r
目标文件必须是一个文件夹,递归复制该文件夹内所有内容
-P
如果SSH服务器端口不是22,需要使用该选项指定端口
六、系统信息相关命令
1. 时间和日期
date
系统时间
date # 显示系统时间:Sat May 2 13:54:33 CST 2020
date +"%Y‐%m‐%d %H:%M:%S" # 指定格式显示系统时间:2020‐05‐02 13:55:18
cal
cal是英文单词calendar的缩写,可以显示系统日期
cal # 显示系统日历
cal -y # 显示当前年的日历
cal 5 2020 # 显示2020年5月的日历
2. 内存、磁盘和目录空间信息
详情请见:Linux系统下查看内存、磁盘、文件以及文件夹大小的常用命令
free
free命令用于显示系统内存的使用情况,包括了物理内存、交换内存(swap)和内核缓冲区内存
free -h # 显示内存使用情况
注:-h
选项会以人性化方式显示空间大小。
df
df是英文单词disk free的缩写,可以显示Linux系统上文件系统的磁盘使用情况
df -h # 显示磁盘使用情况
du
du是英文单词disk usage的缩写,可以显示目录下的文件夹大小
du -sh # 查看当前文件夹的总大小
du -sh /dir # 查看/dir文件夹的总大小
du -sh * # 查看当目录下各个文件及文件夹占用空间总大小
du -h /dir # 查看/dir文件夹所占空间详细情况
3. 进程信息
top
top可以显示实时进程信息,包括CPU、内存等资源占用情况,类似于Windows的任务管理器
top # 实时显示各进程资源占用信息
注:q键退出。
ps
ps是英文单词process status的缩写,可以查看进程的详细情况
ps aux # 查看进程的详细情况,ps -aux命令也可以,但略有不同
ps -ef # 查看进程的详细情况
注:a
选项显示终端上的所有进程,包括其他用户的进程;u
选项显示进程的详细状态;x
选项显示没有控制终端的进程。
kill
kill结束当前正在执行的一个进程
kill -9 2020 # 结束PID号为2020的进程,-9选项表示强行终止
注:使用kill命令时,应该只终止由当前用户开启的进程,而不要终止root身份开启的进程,否则可能导致系统崩溃。
4. 系统版本及内核信息
uname -a # 查看内核信息
uname -r # 查看内核信息
cat /proc/version # 查看gcc版本
cat /proc/cpuinfo # 查看CPU信息
cat /etc/redhat-release # 查看linux系统版本信息(CentOS)
cat /etc/issue # 查看linux系统版本信息