专业编程基础技术教程

网站首页 > 基础教程 正文

linux中的常用命令(linux常用命令及用法)

ccvgpt 2025-05-09 17:18:42 基础教程 1 ℃

linux中的常用命令

linux中的命令统称shell命令

linux中的常用命令(linux常用命令及用法)

shell是一个命令行解释器,将用户命令解析为操作系统所能理解的指令,实现用户与操作系统的交互

shell终端:我们平时输入命令,执行程序的那个窗口

gec@ubuntu:/bin$

root@ubuntu:/etc#

gec@ubuntu:~$

~ --》当前用户的家目录,等价于 /home/gec

家目录:linux系统支持创建多个用户,你创建新的用户的时候,linux会帮你在/home目录下面新建一个文件夹(文件夹的名字跟用户名是一模一样的)--》这个特殊的文件夹称为家目录

gec --》当前用户的名字

root --》超级用户的名字,安卓手机刷机的时候一键root

@ --》分隔用户名和系统名

ubuntu --》操作系统的名字

/bin --》指示你当前所处的位置路径

$ --》当前用户是个普通用户

# --》当前用户是个超级用户

1)新建或者打开文件

vi跟vim的使用基本一致,vim是vi的升级版

vim 文件名

按下i,o,a进入到插入模式才可以输入

按下Esc退出插入模式,输入冒号wq保存退出

按下Esc退出插入模式,输入冒号q!强行退出,不保存

touch 文件名 //只能新建文件

gedit 文件名 //跟windows上的记事本很类似

2)删除文件或者文件夹

rm 文件名

rm 文件夹名字 -rf (r表示递归,f表示强制)

3)新建文件夹

mkdir 目录名

4)切换目录

cd 目录的路径名

cd .. 返回上一级目录

cd - 返回上一次进入(最近一次)的目录

linux中路径的写法,跟windows的区别

linux的根目录 /

bin ---> 工具目录

dev ---> 设备驱动文件

proc ---> 系统信息

sbin ---> 管理员工具 (root)

sys ---> 驱动信息

var ---> 系统日志

boot ---> 系统启动文件

etc ---> 配置文件

lib ---> 库文件

mnt ---> 挂载目录

root ---> 管理员工作目录

tmp ---> 临时目录

cdrom ---> 光驱目录

home ---> 用户主目录(每个用户在该目录中均有一个子目录)

usr ---> 用户的程序文件目录


绝对路径:不偷懒,永远都不会出错的写法,完整的路径写法(从根目录开始)

相对路径:偷懒,根据所处的位置去写路径名

5)ls命令

ls -al //列表的形式列举所有文件,包括隐藏文件

linux中所有的隐藏文件都是小数点开头

其中:

. (一个小数点) 表示当前路径

.. (俩个小数点) 表示上一级路径

利用这个特点自己新建隐藏的文件或者目录

touch .1.txt

mkdir .newdir

ls -l //列表的形式列举文件,不包括隐藏文件

-rwxrwxrwx 1 root root 67 Feb 23 19:23 hello.c

linux中有七种类型的文件:

目录: d

普通文件:-

字符设备:c //学习后面的驱动

块设备:b //学习后面的驱动

套接字:s //学习网络编程

软链接文件:l //类似于window的快捷方式

管道文件: p //学习系统编程

第一个字符: d --》目录

- --》普通文件

第二个开始的字符: 表示可读,可写,可执行的权限

分为三组:分别表示当前用户,同组用户,其它用户对于这个文件的操作权限

r --》可读 w --》可写 x --》可执行

6)在屏幕上输出数据

echo "hello"

echo 567

7)切换超级用户

用途:当你想要修改根目录下的文件夹里面的内容

自己的家目录跟共享文件夹可以不切换超级用户的权限

临时借用超级用户的权限

sudo 命令的完整写法

sudo vim hello.c //临时借用超级用户的权限创建hello.c

sudo rm hello.c //临时借用超级用户的权限删除hello.c

永久切换超级用户

sudo -s

切换回普通用户

su 普通用户的名字

8)剪切文件或者目录

mv 文件名 目标路径

比如: mv hello /mnt/hgfs/share //当前路径下的hello剪切到共享

重命名文件

mv hello.c hehe.c //给hello.c更换名字为hehe.c

区分剪切和重命名

主要看后面你写的是合法的路径名(剪切)还是文件名(重命名)

9)修改权限

不要在共享文件夹中修改权限,不准确(受到windows的影响)

chmod 777 文件的名字

chmod 777 目录的名字 -R (递归修改文件夹的权限)

7 ---》 二进制 111(分别代表读,写,执行的权限)

r w x

1 1 1

0 0 0

例如: chmod 666 hello.c chmod 654 hello.c

10)软链接

软链接:ln -s 原来的名字 软链接的名字

类似于windows中的快捷方式

硬链接:ln 原来的名字 硬链接的名字

软硬链接共同点:原文件修改了,软硬链接都跟着一起修改,软硬链接文件修改了,原文件跟着修改

软链接和硬链接只能在纯粹的linux环境中创建(共享文件夹中无法创建软硬链接)

区别:软链接依赖于原文件,硬链接不需要依赖原文件

硬链接的文件类型跟原来的文件一样,软链接文件类型属于链接文件

硬链接不能指向目录

11)打包和压缩文件

linux中有两种常见格式的压缩包:

.bz2结尾和gz结尾

打包文件/文件夹: tar -jcf xxx.tar.bz2 文件名1 文件名2 ........

例如: tar -jcf 66.tar.bz2 1.jpg 2.mp3 3.txt

tar -zcf xxx.tar.gz 文件名1 文件名2 ......

例如: tar -zcf 66.tar.gz 1.jpg 2.mp3 3.txt

查看压缩包里面的内容:

tar -tf 压缩包的名字

解压:

tar -jxf 66.tar.bz2 //默认解压到当前路径

tar -zxf 66.tar.gz //默认解压到当前路径

解压到指定的位置:

tar -jxf 66.tar.bz2 -C 你要指定的路径

tar -zxf 66.tar.gz -C 你要指定的路径

12)查找搜索相关的命令

find

比如: find / -name stdio.h //在根目录下找名字叫做stdio.h的文件

find / -type 文件类型

find / -type d // 搜索根目录下的所有的文件夹

grep

比如:grep "printf" stdio.h -Hn //我要在stdio.h文件中搜索关键字printf,并打印printf出现行号

-H 打印文件的名字

-n 打印关键词出现的行号

-w 全字匹配,跟关键词一模一样

printf 正确

&printf 正确,跟非英文字符混合一起也行

("printf") 正确,跟非英文字符混合一起也行

13)查看文件

cat 文件名 //查看整个文件内容

head

head 1.txt -n 2 //查看1.txt的前面2行

tail

tail 1.txt -n 2 //查看1.txt的最后2行

14)清屏

clear

15)ps top命令

查看当前系统中进程的运行状态

ps -elf

动态查看进程的状态信息

top

16)拷贝文件/目录

cp 文件名 目标路径

cp 目录名 目标路径 -rf (r递归 f强制)

17)给命令取别名

注意: 取别名不能跟系统中原本的命令冲突

alias c='clear' //表示我给clear命令换个名字,叫做c

取消别名

unalias c //取消刚才取的别名c

18)查询shell命令的路径

which shell命令的名字

which ls --》/bin/ls

which find --》/usr/bin/find

19)重启ubuntu

reboot

20)查看或者修改ubuntu的ip地址

查看ip地址 ifconfig //ens33 是ubuntu虚拟网卡的名字

修改ip地址 sudo ifconfig 虚拟网卡的名字 你要配置的ip地址

比如: sudo ifconfig ens33 192.168.2.200

注意:有些新版本的ubuntu可能需要用另外一个命令netplan来配置ip地址

21)重定向和追加重定向

重定向:重新确定方向 > 会覆盖原来的内容

ls > 1.txt //把ls的输出重定向到1.txt

echo "hello" > 2.txt

追加重定向: >> 在末尾追加,不会覆盖文件中原本的内容

22)查看文件大小

du 文件名 -b

目录的大小:它里面所有文件和文件夹大小的总和


23)目录树

tree 目录名

测试ubuntu连接外网

ping www.baidu.com

PING www.a.shifen.com (14.119.104.189) 56(84) bytes of data.

64 bytes from 14.119.104.189: icmp_seq=1 ttl=128 time=6.01 ms

64 bytes from 14.119.104.189: icmp_seq=2 ttl=128 time=4.83 ms

64 bytes from 14.119.104.189: icmp_seq=3 ttl=128 time=4.77 ms

64 bytes from 14.119.104.189: icmp_seq=4 ttl=128 time=4.86 ms

在线安装下载tree命令

sudo apt-get install tree

24)比较文件或者目录

diff 1.c 2.c -s //比较两个文件,内容一样就打印提示

diff 目录1 目录2 -r //递归比较两个目录

25)查看当前路径名

pwd

26)添加/删除用户,密码

添加用户:sudo adduser 用户名

弹出提示让你输入密码,输入个人信息(随便乱输入)

普通用户直接切换

su 普通用户的名字

修改密码:sudo passwd 用户名

弹出提示让你输入新密码

删除用户:sudo userdel -rf 用户名 //连同家目录一起删除

27)安装man手册

sudo apt-get install manpages-posix manpages-dev manpages (manual手册安装)

28)查看环境变量

env

输出环境变量

echo $环境变量的名字

比如:echo $PATH

设置环境变量

export 环境变量的名字=新的路径名:$环境变量的名字

比如;export PATH=/mnt/hgfs/share:$PATH

29)按屏显示文本文件

more 文件名

按Enter键为一行一行显示,按空格键为一屏一屏显示

按q退出显示

另外一个按屏显示文件的命令

less 文件名

可以用上下键翻阅

vim的使用

=========================================================

1.vim的模式

两种模式:插入模式 --》三个字母i,o,a按下任意一个进入到插入模式

命令模式 --》在插入模式下,按下Esc退出插入模式,自动进入到命令模式

:wq 保存退出

:q! 强行退出

以下所有的操作都要在命令模式下进行

2.基本操作

复制: yy 复制光标所在一行

nyy 复制n行 6yy 复制6行

粘贴: p

剪切: dd 剪切一行

ndd 剪切n行

删除:

x 删除光标所在位置的一个字符

3x 删除从光标开始的3个字符

X 删除光标前面的一个字符

跳转: GG 直接跳到最后一行

gg 直接跳到第一行

ngg 跳到第n行 88gg跳到第88行

撤销: u 还原 ctrl+r

设置行号:输入冒号set nu 取消行号:输入冒号set nonu

自动缩进:输入冒号set ai 设置完毕,你需要先按tab缩进,后面写的代码敲回车才会跟着上一行对齐缩进

写代码可以自动补齐 ctrl+p

替换字符:

:%s/旧的字符串/新的字符串 //默认只替换每一行第一个旧字符串

:%s/旧的字符串/新的字符串/g //替换所有的旧字符串

:m,ns/旧字符串/新字符串 //替换m到n行的旧字符串

比如 :2,10s/hello/world/g 把2到10行替换

搜索关键词:

输入 /关键词 然后回车 输入n不断地从前往后查找

?关键词 然后回车 输入n不断地从后往前查找

ubuntu网络配置

=========================================================

1.概念

桥接: ubuntu会单独由路由器分配ip,不和window共享ip

NAT: ubuntu跟主机共享ip

仅主机:

注意:某些同学ubuntu一直都无法配置联网或者ping通局域网,有可能的原因是虚拟网卡被删掉了,重新安装最新版本的wmware workstation

2.具体配置方法

总体有两种配置方法:

如果你使用文件配置ip,那就删除图形用户界面的配置,同样的道理,如果你使用图形用户界面配置ip,就删除文件配置中的语句

第一种: 使用图形用户界面配置

步骤: (1)确保你的windows是能上网,如果是动态ip,linux网络配置成NAT模式

如果是静态ip,linux网络配置成桥接模式

比如:彭老师windows的ip如下,配置静态ip的时候,ip地址前面三个部分跟window一样,子网掩码,默认网关,DNS全部照抄


第二种: 使用配置文件去配置

步骤: (1)确保你的windows是能上网,如果是动态ip,linux网络配置成NAT模式

如果是静态ip,linux网络配置成桥接模式

(2) 打开/etc/network/interfaces文件

在这个文件的后面加入如下几句话

(静态)

auto ens33

iface ens33 inet static //设置静态ip

address 192.168.1.5 //设置ip地址

gateway 192.168.1.1 //设置网关

netmask 255.255.255.0 //子网掩码

dns-nameservers 192.168.120.1 //dns服务器

打开/etc/resolv.conf文件

namesever 你自己的DNS服务器地址

在这个文件的后面加入如下几句话(动态)

auto ens33

iface ens33 inet dhcp //设置动态ip

(3)重启网络

sudo /etc/init.d/networking force-reload

sudo /etc/init.d/networking restart

注意:有些新版本的ubuntu,不认识刚才的重启命令,改成如下

sudo service networking force-reload

sudo service networking restart

APT软件包管理器

=========================================================

在线下载软件,更新下载源,卸载软件

在线下载:sudo apt-get install 软件程序的名字

自动下载的软件,会被放在/var/cache/apt/archives ,ubuntu中的安装包格式是.deb

更新软件源:sudo apt-get update

如果更新不成功,可以选择不同的ubuntu软件服务器(点击ubuntu设置里面有更换软件服务器地址)

修改你的源服务器

ubuntu设置下载服务器地址.jpg有标注

卸载软件:sudo apt-get remove 软件程序的名字

问题一: 卸载软件出现

Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)

解决方法:用超级用户删除 /var/lib/dpkg/lock这个锁

手动安装软件:sudo dpkg -i xxxxx.deb

最近发表
标签列表