目的
使用linux来说对于命令的操作是最基础的,后面编写shell脚本主要也是对于命令的操作,所以非常有必要对此命令进行了解。这篇文章将对一些常用的命令进行说明。
基础说明
在linux中我们通常在shell中使用命令来完成各种操作,现在大部分linux发行版中默认的shell程序是bash。bash有很多实用的功能:
- 使用
↑
↓
按键来选择之前执行过的命令; - 使用
tab
键可以实现自动补全,如果键入的前缀不唯一则可以双击tab
提示; - 使用
ctrl + c
结束当前操作; - 使用
ctrl + l(小写L)
清屏; - 使用
ctrl + d
登出;
常用命令
下面对命令的分类只是依据我的习惯笼统的分类的。很多命令本身并不没有这些分类属性的,根据实际情况可以用在很多地方。
常用杂项
man
查看用户文档
按q键退出文档info
查看信息文档clear
清屏
sync
将缓存中的数据同步保存到磁盘中date
打印或设置系统时间
date
打印当前时间
date +%Y%m%d
打印当前年月日
date +%Y-%m-%d
打印当前年月日并且中间用-连接
date +%H:%M:%S
打印当前时分秒并且中间用:连接
关机与重启
关机和重启相关的指令其实很多的,比如halt、poweroff、init 0、init 6等等,大多数来说无非都是相互调用而已,记住shutdown基本就够用了。
shutdown
关机
shutdown now
立即关机
shutdown hh:mm
在hh:mm时刻关机(24小时制)
shutdown +m
在m分钟后关机
shutdown -c
取消关机poweroff
立即关机reboot
立即重启
用户与权限
linux中很多操作需要权限,最常用的就是sudo这个方式来提升权限了。
sudo
临时获得root用户权限(能不能用sudo还得看你是不是有这个权限 233~)su
切换用户
su -
切换到root用户
su username
切换到某个用户passwd
修改用户密码
passwd username
ubuntu中默认的root用户是没有设置过密码的,可以使用sudo passwd root
方式设置密码
chmod
用来变更文件或目录的权限
这条指令在运行很多网上下载的脚本或程序的时候用到比较多,经常需要给下载的文件开放权限后才能执行,linux中文件权限如下:
其中u表示文件所有者,g表示用户组,o表示其他用户,另外还可以用a表示全部的三者;
每一级可以分别设置读、写、执行的权限;
权限可以用对应位置位清零、使用±=设置rwx来启用和禁用;
下面是一些示例:
chmod ugo+r file
所有用户启用对file的可读权限
chmod a-w file
所有用户禁用对file的写入权限
chmod u+x file.sh
文件所有者启用对file.sh的可执行权限
chmod o=rw- file
其它用户对file的权限设置为可读可写不可执行
chmod 700 file
文件所有者启用对file的所有权限、用户组和其他用户禁用所有权限
chmod 760 file
文件所有者启用对file的所有权限、用户组权限设置为可读可写不可执行、其他用户禁用所有权限
chmod 777 file
所有用户启用对file的所有权限
chmod -R 777 *
所有用户递归启用当前目录下所有文件和目录的所有权限
last
显示用户登录信息
目录和文件操作
目录和文件相关的操作算是linux中用的最多的操作了,毕竟linux中一切皆文件。
pwd
显示当前目录ls
列出当前目录下的文件和子目录
常用选项:
-a
列出文件和子目录,包括隐藏文件
-l
以列表形式列出详细内容
-lh
以列表形式列出详细内容,大小以K、M、G表示
-F
列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”tree
以树状格式列出目录的内容
默认情况下可能没有该命令,需要安装tree模块
常用选项:
-a
显示隐藏文件
-d
只列出目录
-L
限制显示深度
-s
列出文件和目录的大小cd
切换工作目录
cd Desktop/
切换到Desktop目录
cd /
切换到根目录
cd ~
切换到用户自己的home目录
cd ..
切换到上级目录
mkdir
创建目录
mkdir dirmane
创建名为dirmane的目录
mkdir -p dir1/dir2
在dir1下创建dir2,如果dir1不存在则同时创建dir1rmdir
移除空目录
rmdir -p dir1/dir2
移除空目录dir2,此时若dir1也成为空目录的话接着移除dir1rm
删除文件或目录 (慎用)
rm -i
删除前询问
rm -f
强制删除
rm -r
删除目录下所有文件和子目录
rm -rf /
或rm -rf /*
千万别用!!!
mv
修改文件和目录的名称 或 将文件和目录移动到其它目录下
常用选项:
-u
当源文件比目标文件新或者目标文件不存在时,才执行移动操作
-i
如果出现同名覆盖的情况先进行询问
-f
如果出现同名覆盖的情况强制覆盖
示例:
mv file1 file2
将文件file1改名为file2
mv file1 directory1
将文件file1移动到目录directory1
mv directory1 directory2
若directory2不存在则将directory1改名为directory2;若directory2存在则将directory1移动到directory2cp
复制文件或目录
常用选项:
-i
如果出现同名覆盖的情况先进行询问
-f
如果出现同名覆盖的情况强制覆盖
-r
复制目录下所有文件和子目录
示例:
cp file1 file2
将文件file1复制为file2
cp file1 directory1
将文件file1复制到目录directory1
cp -r directory1 directory2
将目录directory1和其中的内容复制到目录directory2
cat
读取文件并显示
cat file1
显示file1内容
cat -n file1
显示添加行号后的file1内容tail
显示文件最后的内容
tail file
显示file最后10行内容
tail -n 5 file
显示file最后5行内容
tail -f file
显示file最后10行内容,如果有文件更新则继续输出新内容touch
修改文件或者目录的时间属性
touch file
将file的访问/修改时间改为现在的系统时间,如果file不存在则将创建file文件
打包与压缩
tar
打包/解包
常用选项:
-c
打包文件
-x
解包文件
-t
列出包内容
-z
使用gzip方式处理
-j
使用bzip2方式处理
-J
使用xz方式处理
-v
显示执行过程
-f
指定文件名
-C
指定输出目录
示例:
tar -czf directory.tar.gz directory/
将directory目录和其中所有内容打包成directory.tar.gz文件
tar -czf file.tar.gz file1 file2
将file1和file2打包成file.tar.gz文件
tar -tzf file.tar.gz
列出file.tar.gz包中所有的内容
tar -xzf file.tar.gz
解包file.tar.gz
gizp
压缩/解压.gz格式文件
常用选项:
-k
处理后不删除源文件
-d
解压.gz文件
-r
压缩目录及其中所有内容
示例:
gzip file
将file文件压缩成file.gz文件
gzip -d file.gz
将file.gz文件解压bzip2
压缩/解压.bz2格式文件
操作和选项同gizpzip
压缩成.gz格式文件
常用选项:
-q
不显示执行过程
-r
压缩目录及其中所有内容
示例:
zip file.zip file
将file压缩成file.zip文件unzip
解压.zip格式文件
常用选项:
-q
不显示执行过程
-l
不解压显示压缩包中内容
-o
遇到重名文件不询问直接覆盖
示例:
unzip file.zip
解压file.zip文件
搜索与查找
find
查找文件
fine命令可以在指定目录中根据名称、所有者、修改时间、文件大小等方式来寻找文件
常用检查项:
-name
依据文件名查找
-type
依据类型查找,b块设备、d目录、c字符设备、p管道、l符号链接、f普通文件、s socket
-size -n
和-size +n
依据大小查找,-n表示小于等于、+n表示大于,单位可选 c字节、k千、M兆、G千兆等等
-mtime -n
和-mtime +n
依据修改天数查找,-n表示小于等于、+n表示大于
-mmin -n
和-mmin +n
依据修改分钟数查找,-n表示小于等于、+n表示大于
-perm
依据文件权限查找
-user
依据所有者查找
-group
依据所属组查找
常用动作:
-print
标准输出
-exec command {} \;
执行命令并且不提示
-ok command {} \;
先提示选择执行命令
示例:
find ~ -name "hello*"
在用户目录下查找名称以hello开头的文件
find . -size -5k
在当前目录下查找小于等于5k的文件
find . -size +5k -type f
在当前目录下查找大于5k的普通文件
find . -size +5k -exec rm {} \;
在当前目录下查找大于5k的文件并删除(慎用)
which
查找命令/程序所在的路径whereis
查找二进制文件、源代码、用户手册、命令所在的位置locate
通过文件名寻找文件
这个命令寻找文件是从数据库中寻找的,所以通常会比find这些命令要快;
数据库通常会每天自动更新,如果需要可以使用updatedb命令手动更新;
有的系统默认没有locate指令,可以安装mlocate包来获得;grep
查找符合条件的文本内容
grep经常和管道命令符 | 组合起来使用,对某个命令的结果进行筛选后再输出
系统运行与管理
top
动态的显示进程及资源使用负载情况
进入top显示后可以按q键退出,可以使用↑←↓→和home、end、pageup、pagedown等进行移动和翻页;
第一行显示当前时间、运行时长、总连接数、最近1&5&15分钟系统的平均负载;
第二行显示总任务、当前运行、休眠、停止和僵尸任务数;
第三行显示用户、内核、用户改变过优先级的进程、空闲、等待输入输出、硬件中断、软件中断、虚拟机等的CPU占比;
第四行显示总的、已使用的、空闲的等内存情况;
第五行为交换分区使用情况;
第六行分别为进程PID、用户、PR优先级、NI优先级、虚拟内存、物理内存、共享内存、进程状态、CPU占用、内存占用、进程使用CPU计时、命令名称;ps
显示当前进程
ps -u naisu
显示naisu用户的进程
ps -e
使用标准格式显示所有进程
ps ax
使用BSD格式显示所有进程pstree
以树形方式显示所有进程之间的关系
pstree -p
显以树形方式显示所有进程之间的关系并显示进程号pidof
返回正在运行程序的PIDrenice
修改正在运行的进程的nice优先级
renice 优先级 PID
优先级可选 -20~19,数值越低优先级越高kill
终止某个进程
kill PID
终止某个进程
kill -9 PID
强制终止某个进程killall
通过程序名终止该程序(终止其所有进程)uptime
显示系统运行情况,分别包括当前时间、运行时长、总连接数、最近1&5&15分钟系统的平均负载free
显示总的、已使用的、空闲的等内存情况sensors
这个命令可以可以获取到设备中各个传感器的数据,比如系统的电压温度等;
有的系统默认没有sensors指令,可以安装lm-sensors包来获得watch
定期执行命令并全屏显示
watch -n 3 free
每三秒执行一次free
watch -d -n 3 free
每三秒执行一次free,并高亮显示变动过的地方
网络信息与管理
ifconfig
查看网卡与IP信息/配置网卡
ifconfig -a
查看网卡与IP信息,包括禁用的网卡
ifconfig eth0 down
禁用网卡eth0
ifconfig eth0 up
启用网卡eth0ip
和ifconfig有些相似
ip address
查看网卡与IP信息
ip addr
查看网卡与IP信息ping
测试网络连接
ping 192.168.0.1
连续测试与192.168.0.1间的网络连接情况,使用ctrl+c退出
ping -c 4 192.168.0.1
测试与192.168.0.1间的网络连接情况4次
dhclient
dhcp客户端,用于动态获取ip
dhclient eth0
eth0发出dhcp请求
dhclient -r
释放ip地址netstat
查看网络连接、路由表、接口统计、伪装连接和多播成员身份ss
查看socket端口与连接情况
磁盘信息与管理
df
显示文件系统空间使用情况
df -h
大小以K、M、G表示
df -a
显示所有文件系统情况
df -T
显示文件系统类型du
显示目录或文件大小
du -h
显示当前目录中子目录大小,以K、M、G表示
du -ah
显示当前目录中子目录和文件大小,以K、M、G表示
du -sh
显示当前目录总大小,以K、M、G表示
du dir/
显示dir/目录fdisk
管理磁盘分区
fdisk -l
列出设备的分区表,其中的Disk表示磁盘、Device表示分区
可以使用fdisk 磁盘名称
对该磁盘进行操作mkfs / mk2fs
创建文件系统(格式化分区)
mfks -t ext4 /dev/sda5
将/dev/sda5分区格式化成ext4文件系统e2label
查看或创建更改ext文件系统标卷的标签名
e2label /dev/sda1 naisu
将/dev/sda1标卷的标签设定为naisulsblk
列出块设备
这个命令可以方便的查看已挂载和未挂载的块设备,比如磁盘、光盘、U盘这些;
有的系统默认没有lsblk指令,可以安装util-linux包来获得;
挂载与卸载
mount
挂载文件系统
mount device dir
将device设备挂载在dir目录下umount
卸载文件系统
umount /dev/devname
通过设备名卸载
umount mountpoint
通过挂载点卸载
总结
Linux命令看似很多其实常用的也就一部分,而且这部分命令会用的非常多,所以基本用一段时间就记得很牢了。更多内容可以参考:https://www.linuxcool.com/
今天的文章Linux笔记:命令基础说明与常用命令分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/68140.html