文章目录
- 目的
- 基础说明
- 常用命令
-
- 常用杂项
- 关机与重启
- 用户与权限
- 操作目录和文件
- 打包与压缩
- 搜索与查找
- 系统运行与管理
- 网络信息与管理
- 磁盘信息与管理
- 挂载与卸载
- 总结
目的
使用linux命令的操作是最基本的,后面写shell脚本主要是为了操作命令,所以有必要理解命令。本文将解释一些常见的命令。
基础说明
在linux我们通常在shell现在大部分操作都是用命令来完成的。linux发行版中默认的shell程序是bash。bash有许多实用功能:
常用命令
以下命令的分类仅基于我的习惯。许多命令本身并不具有这些分类属性,可以根据实际情况在许多地方使用。
常用杂项
- 按q键退出文档
-
date
打印当前时间date %Y%m%d
打印当前年月日date %Y-%m-%d
打印当前年月日,中间连接date %H:%M:%S
打印当前时间和中间:连接
关机与重启
其实关机重启的指令很多,比如halt、poweroff、init 0、init 6等等,大多数人只是互相调用,记住shutdown基本就够了。
-
shutdown now
立即关机shutdown hh:mm
在hh:mm时刻关机(24小时制)shutdown m
m分钟后关机shutdown -c
取消关机
用户与权限
linux许多操作需要权限,最常用的是sudo这个方式来提升权限了。
-
su -
切换到root用户su username
切换到用户 -
passwd username
ubuntu中默认的root用户没有设置密码,可以使用sudo passwd root
设置密码的方法
- 该指令在运行许多在线下载的脚本或程序时使用较多,通常需要打开下载的文件才能执行,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 *
所有用户递归启用当前目录下所有文件和目录的所有权限
操作目录和文件
目录和文件相关的操作是linux最常用的操作,毕竟,linux一切都是文件。
- 常用选项:
-a
列出文件和子目录,包括隐藏文件-l
详细内容式列出详细内容-lh
以列表形式列出详细内容,大小以K、M、G表示-F
列出的文件名称后加一个符号;例如,可执行文件添加 “*”, 目录则加 “/” - 默认情况下可能没有该命令,需要安装tree模块 常用选项:
-a
显示隐藏文件-d
只列出目录-L
限制显示深度-s
列出文件和目录的大小 -
cd Desktop/
切换到Desktop目录cd /
切换到根目录cd ~
切换到用户自己的home目录cd ..
切换到上级目录
-
mkdir dirmane
创建名为dirmane的目录mkdir -p dir1/di2
在dir1下创建dir2,如果dir1不存在则同时创建dir1 -
rmdir -p dir1/dir2
移除空目录dir2,此时若dir1也成为空目录的话接着移除dir1 -
rm -i
删除前询问rm -f
强制删除rm -r
删除目录下所有文件和子目录rm -rf /
或rm -rf /*
千万别用!!!
- 常用选项:
-u
当源文件比目标文件新或者目标文件不存在时,才执行移动操作-i
如果出现同名覆盖的情况先进行询问-f
如果出现同名覆盖的情况强制覆盖 示例:mv file1 file2
将文件file1改名为file2mv file1 directory1
将文件file1移动到目录directory1mv directory1 directory2
若directory2不存在则将directory1改名为directory2;若directory2存在则将directory1移动到directory2 - 常用选项:
-i
如果出现同名覆盖的情况先进行询问-f
如果出现同名覆盖的情况强制覆盖-r
复制目录下所有文件和子目录 示例:cp file1 file2
将文件file1复制为file2cp file1 directory1
将文件file1复制到目录directory1cp -r directory1 directory2
将目录directory1和其中的内容复制到目录directory2
-
cat file1
显示file1内容cat -n file1
显示添加行号后的file1内容 -
tail file
显示file最后10行内容tail -n 5 file
显示file最后5行内容tail -f file
显示file最后10行内容,如果有文件更新则继续输出新内容 -
touch file
将file的访问/修改时间改为现在的系统时间,如果file不存在则将创建file文件
打包与压缩
- 常用选项:
-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
- 常用选项:
-k
处理后不删除源文件-d
解压.gz文件-r
压缩目录及其中所有内容 示例:gzip file
将file文件压缩成file.gz文件gzip -d file.gz
将file.gz文件解压 - 操作和选项同gizp
- 常用选项:
-q
不显示执行过程-r
压缩目录及其中所有内容 示例:zip file.zip file
将file压缩成file.zip文件 - 常用选项:
-q
不显示执行过程-l
不解压显示压缩包中内容-o
遇到重名文件不询问直接覆盖 示例:unzip file.zip
解压file.zip文件
搜索与查找
- 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的文件并删除(慎用)
- 这个命令寻找文件是从数据库中寻找的,所以通常会比find这些命令要快; 数据库通常会每天自动更新,如果需要可以使用updatedb命令手动更新; 有的系统默认没有locate指令,可以安装mlocate包来获得;
- grep经常和管道命令符 | 组合起来使用,对某个命令的结果进行筛选后再输出
系统运行与管理
- 进入top显示后可以按q键退出,可以使用↑←↓→和home、end、pageup、pagedown等进行移动和翻页; 第一行显示当前时间、运行时长、总连接数、最近1&5&15分钟系统的平均负载; 第二行显示总任务、当前运行、休眠、停止和僵尸任务数; 第三行显示用户、内核、用户改变过优先级的进程、空闲、等待输入输出、硬件中断、软件中断、虚拟机等的CPU占比; 第四行显示总的、已使用的、空闲的等内存情况; 第五行为交换分区使用情况; 第六行分别为进程PID、用户、PR优先级、NI优先级、虚拟内存、物理内存、共享内存、进程状态、CPU占用、内存占用、进程使用CPU计时、命令名称;
-
ps -u naisu
显示naisu用户的进程ps -e
使用标准格式显示所有进程ps ax
使用BSD格式显示所有进程 -
pstree -p
显以树形方式显示所有进程之间的关系并显示进程号 -
renice 优先级 PID
优先级可选 -20~19,数值越低优先级越高 -
kill PID
终止某个进程kill -9 PID
强制终止某个进程 - 显示系统运行情况,分别包括当前时间、运行时长、总连接数、最近1&5&15分钟系统的平均负载
- 显示总的、已使用的、空闲的等内存情况
- 这个命令可以可以获取到设备中各个传感器的数据,比如系统的电压温度等; 有的系统默认没有sensors指令,可以安装lm-sensors包来获得
- 定期执行命令并全屏显示
watch -n 3 free
每三秒执行一次freewatch -d -n 3 free
每三秒执行一次free,并高亮显示变动过的地方
网络信息与管理
-
ifconfig -a
查看网卡与IP信息,包括禁用的网卡ifconfig eth0 down
禁用网卡eth0ifconfig eth0 up
启用网卡eth0 -
ip address
查看网卡与IP信息ip addr
查看网卡与IP信息 -
ping 192.168.0.1
连续测试与192.168.0.1间的网络连接情况,使用ctrl+c退出ping -c 4 192.168.0.1
测试与192.168.0.1间的网络连接情况4次
-
dhclient eth0
eth0发出dhcp请求dhclient -r
释放ip地址
磁盘信息与管理
-
df -h
大小以K、M、G表示df -a
显示所有文件系统情况df -T
显示文件系统类型 -
du -h
显示当前目录中子目录大小,以K、M、G表示du -ah
显示当前目录中子目录和文件大小,以K、M、G表示du -sh
显示当前目录总大小,以K、M、G表示du dir/
显示dir/目录 -
fdisk -l
列出设备的分区表,其中的Disk表示磁盘、Device表示分区 可以使用fdisk 磁盘名称
对该磁盘进行操作 -
mfks -t ext4 /dev/sda5
将/dev/sda5分区格式化成ext4文件系统 - 标签名
e2label /dev/sda1 naisu
将/dev/sda1标卷的标签设定为naisu - 这个命令可以方便的查看已挂载和未挂载的块设备,比如磁盘、光盘、U盘这些; 有的系统默认没有lsblk指令,可以安装util-linux包来获得;
挂载与卸载
-
mount device dir
将device设备挂载在dir目录下 -
umount /dev/devname
通过设备名卸载umount mountpoint
通过挂载点卸载
总结
Linux命令看似很多其实常用的也就一部分,而且这部分命令会用的非常多,所以基本用一段时间就记得很牢了。更多内容可以参考:https://www.linuxcool.com/