linux入门、常用命令

cite: https://www.lanqiao.cn/courses/1

概述

linux各个版本发行图

Linux

linux学习路径图

在这里插入图片描述

终端 / shell

  • 终端本质上是对 Linux 上的 /dev/tty 设备。Linux 的多用户登录,就是通过不同的 /dev/tty
    设备完成的,Linux 默认提供了 6 个终端 “terminal”来让用户登录。

  • /dev/tty: 真终端。
    桌面的终端:伪终端。当你在图形用户界面使用 /dev/tty1~ 7时每打开一个终端就会产生一个伪终端

终端Terminal ——> 命令解析器shell(“提供给使用者使用界面”的软件,类似于command命令行和cmd.exe )——> Linux内核

UNIX/Linux 操作系统下的 Shell 既是用户交互的界面,也是控制系统的脚本语言。

快捷键

终端快捷键

快捷键
切换到终端Ctrl+Alt+F1~F6
切换到图形界面Ctrl+Alt+F7
退出终端 或 退出当前用户Ctrrl+d 或 输入exit
(再一次:退出系统)
撤销停止当前程序Ctrl+c
暂停当前程序(按任意键恢复)Ctrl+s
恢复历史输入命令方向上键↑0
补全shell命令Tab
将终端显示向上滚动Shift+Up
将终端显示向下滚动Shift+Down
光标 移动到行首Home 或 Ctrl+a
光标 移动到行末End 或 Ctrl+e

GNOME桌面快捷键

快捷键
打开终端Ctrl+Alt+t W
显示桌面Win+d
复制Ctrl+Shift+c
黏贴Ctrl+Shift+v

shell命令

通配符

字符含义
*匹配多个字符(包括0个)
?匹配任意一个字符
[ ]匹配一个字符
[list]匹配 list 中的任意一个字符
[c1-c2]匹配 c1-c2 中的任意一个字符 如:[0-9][a-z]
[^list]匹配 除 list 中的任意一个字符以外的字符
{ }
{string1,string2,…}匹配 string1 或 string2 (或更多)其一个字符串
{c1..c2}匹配 c1-c2 中全部字符 如{1..10}

常用命令

Linux 命令大全

命令类型说明举例
curl网页传输下载,多功能
wget-快速下载
文件管理
whereis-查找文件(二进制、源代码、帮助文件)
locate-查找文件(数据库中,不实时)
find-查找文件(硬盘中)find . -name “*.c” #当前目录下,延伸档名是 c 的文件
tar备份压缩
解压总结:
(1)tar -xvf *.tar
(2)tar -xzf *.tar.gz或*.tgz
(3)tar -xjf *.tar.bz2
(4)tar -xZf *.tar.Z
(5)unzip *.zip
(6)unrar e *.rar
(7)gzip -d *.gz
(8)bzip2 -d *.bz2
(9)uncompress *.Z
(10)xz -d *.tar.xz解压成 *.tar,继续解压

sudo apt-get update

用户-命令
# 查看用户	
whoami					# 只输出用户名
who am i

# 增加用户
# 创建一个新用户、密码、新用户组、新工作目录
sudo adduser <user>		# 工作目录:home/<user>

# 添加用户到sudo组
su - <user>
sudo ls 			 	# 查看当前用户是否在sudo组中
su -					# 切换至root或sudo组中用户
sudo usermod -G sudo <user>

# 单独设置密码
sudo passwd <user>

# 删除用户
sudo userdel -r <user>					#包括工作目录sudo deluser <user> --remove-home		#包括工作目录

# 查看所属的用户组
groups	# 当前用户
groups <user>	# 用户<user>

# 查看所有用户组
cat /etc/group | sort
cat /etc/group | grep -E "<group>"		#只看<group>组
目录及文件-命令

linux一切皆文件,目录也是文件

# 列出所有文件及目录
ls 
ls -a			# 包括隐藏文件
ls -l			# 详细信息
ls -al
ls -alh			# 详细信息,显示大小为k
ls -asSh		# 显示大小为k

# 修改文件的所有者
sudo chown <user> <file>

# 修改文件的权限
chmod 600 <file>		# 二进制权限表示:只能所有者读写,所属用户组和其他用户不能做任何操作chmod go-rwx <file>		# ugo(所有者、所属用户组、其他用户),rwx(读、写、执行),+-(追加、删去)

# 查看目录结构(树形)
tree <dir>				# 要apt-get安装,<dir>:包括绝对路径和相对路径

# 查看当前目录
pwd

# 转到用户的工作目录(/home/<user>或/root)
cd ~

# 相对路径
cd .				# 到当前目录
cd ..				# 到上一级目录
cd ../../			# 到上一级目录的上一级目录

# 新建文件
touch <file>			# 空白文件,若已存在,则不覆盖(不新建)
touch file{1..5}.txt	# 创建5个文件.txt

# 新建目录
mkdir <dir>			# 一个空目录
mkdir -p <dir>		# 多级空目录

# 删除
rm -f <file>			# 删除文件:-f: 忽略权限
rm -rf <dir>			# 删除目录:-r: 递归删除, -f: 忽略权限

# 查看属性
file <file>			# 查看文件类型(根据内容,而不是后缀)

# 查看文件内容
# cat和tac
cat <file>
cat -n <file>		# 输出打印添加行号
tac <file> 			# 倒看
# more和less
more <file>			# enter键向下翻一行,space键向下翻一屏,q键退出
# head和tail
head <file>			# 默认看前10行
head -n 3 <file>	# 看前3行
tail <file>			# 默认看后10行

# 编辑文件
vim <file>			# file不存在,则新建

# 复制
cp <file> <dir>						# 复制文件
cp -r <dir_source> <dir_dest>		# 复制目录dir_source

# 移动 /重命名
mv <file_dir> <file_dir_dest>		# 若file_dir_dest存在,则将前者移动到后者下。若file_dir_dest不存在,则将前者重命名为后者

# 批量重命名
rename 's/\.txt/\.c/' *.txt			# 要apt-get安装,搭配正则。先匹配第二个参数(所有.txt文件),重命名为第一个参数(.c文件)

# 查找文件
# find
find <path> -name <file_name>
# which
which <程序名>							# 确定否安装了某个指定的程序,只从 PATH 环境变量指定的路径中去搜索命令并且返回第一个搜索到的结果
# eg:which nginx
# whereis
whereis <file>						# 只能找二进制文件、源代码文件
# locate
sudo updatedb						# 要apt-get安装locate,更新 /var/lib/mlocate/mlocate.db 数据库
loacte	<file>						# 匹配<file>查找
# eg:locate /usr/share/\*.jpg		# 转义\ 
loacte	-c <file>					# 只统计数目
loacte	-i <file>					# 忽略大小写

解压压缩文件-命令

打包与压缩:Linux中的很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你就得先借助另外的工具将这一大堆文件先打包成一个文件,然后再就原来的压缩程序进行压缩。

文件后缀说明
*.rarrar 程序压缩的文件
*.zipzip 程序打包压缩的文件
*.7z7zip 程序压缩的文件
*.bz2bzip2 程序压缩的文件
*.gzgzip 程序(GNU zip)压缩的文件
*.xzxz 程序压缩的文件
*.tartar 程序打包,未压缩的文件
*.tar.7ztar 打包,7z 程序压缩的文件
*tar.bz2tar 打包,bzip2 程序压缩的文件
*.tar.gztar 打包,gzip 程序压缩的文件
*.tar.xztar 打包,xz 程序压缩的文件
# zip
zip -r -q -o <file>.zip <file_or_dir>			# -r:递归打包子目录。-q:安静模式,即不向屏幕输出信息。-o:输出文件,需在其后紧跟打包输出文件名。
du -h <file>.zip								# 查看打包后文件的大小
file <file>.zip									# 查看文件类型
zip -r -e -o <file>.zip <file_or_dir>			# 加密打包
zip -r -l -o <file>.zip <file_or_dir>			# 在 windows下解压文件换行正常

# unzip
unzip <file>.zip
unzip -q <file>.zip -d <dir>					# 安静解压,<dir>不存在则自动创建
unzip -l <file>.zip								# 只查看,不解压
unzip -O GBK <file>.zip							# 中文文件,windows为GBK编码(Linux为UTF-8编码)

# tar。
tar -cf <file>.tar <dir>						# -f:创建的tar包名。-c:目录。
tar -f <file>.tar -c ~							# 打包工作目录	
# .gz
tar -czf <file>.tar.gz <dir>

# 
tar -xf <file>.tar -C <dir>						# <dir>已存在。
tar -tf <file>.tar								# 只查看,不解包
# .gz
tar -xzf <file>.tar.gz
tar命令的参数(加在-cf中间、-xf中间)
.tar.gz-z
*.tar.xz-J
*tar.bz2-j
安装桌面-命令

一开始进入的是tty界面,需要安装桌面。

apt-get install ubuntu-desktop

重启

reboot

此时,只能以客人方式进入,需添加root登录方式。
CTRL + ALT + F1,出现命令行,输入root用户,然后输入密码。
输入命令:startx,此时,进入无任务栏,桌面也没有任何图标。
右键 - 从终端打开:

su root
gedit /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf

在文件中追加:

user-session=ubuntu
greeter-show-manual-login=true
all-guest=false
autologin-user=root

再重启。
此时会出现:读取/root/.profile时发现错误。
打开终端:

gedit /rot/.profile

将 mesg n,修改为:tty -s && mesg n。

shell脚本编程

declare tmp
tmp=123			#赋值:等号两边不能有空格
echo $tmp		#输出变量的值

用户管理

su 与 sudo

命令功能当前环境
切换用户
su <use>切换用户
pw: 目标用户密码
原用户
su - <user>切换用户
pw: 目标用户密码
目标用户
执行命令
sudo <cmd>以root权限执行,且原用户在sudo组中
pw: 原用户密码
原用户
  • su和sudo都可获得root权限
  • su: 切换用户
  • sudo:受限制的su,执行完命令后,自动退回原用户,多用户环境下 。不在sudo组中的用户不能用“sudo”命令。

cite: https://blog.csdn.net/happiness_llz/article/details/82022293

用户、用户组

一个用户可以属于多个用户组
sudo组:sudoers 文件(/etc/sudoers)
不在sudo组中的用户不能用“sudo”命令


目录及文件

linux目录结构图

FHS 标准在这里插入图片描述
在这里插入图片描述

文件权限

详细信息(命令ls -l)

在这里插入图片描述
在这里插入图片描述
目录文件同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件

文件的权限表示

二进制表示
一个文件:三组权限(拥有者,所属用户组,其他用户),每组权限(r、w、x)
每组权限表示图如下:
在这里插入图片描述
例如:
某文件权限为:-rw-rw-r–,对应二进制表示为:110-110-100,对应十进制为:664

文件编辑

vim

Vim 具有 6 种基本模式和 5 种派生模式

  • 普通模式(打开文件的默认模式)。按Esc键进入。移动光标、删除内容等等。
  • 插入模式。按 a 键 或 i 键进入。编辑文本内容。
  • 命令行模式。输入成为会被解释并执行的命令。按 : 键进入。
  • 可视模式
  • 选择模式
  • Ex 模式

按键区分大小写

普通模式
光标移动
左移h键
下移j键
上移k键
右移l键
进入插入模式
i键光标处插入
a键光标后插入
o键在光标行后插入一个新行(换行插入)
I键在行首插入
A键在行末插入
O键在当前行前插入一个新行
删除文本内容
x键或Delete键删除光标所在的字符
X删除游标所在前一个字符
dd键删除整行
3dd键删除3行
d$或D键删除至行尾
dG删除到文档结尾处
dw删除一个单词(不适用中文)
d1G删至文档首部
插入模式平时写文档一样的
光标移动←、→、↑、↓键
删除字符BackSpace键、Delete键
命令模式
保存“:w”+Enter键
不保存退出“:q!”+Enter键
保存并退出vim“:wq!”+Enter键

环境变量

当前shell的环境变量

环境变量3种

  • 当前用户自定义变量。 当前 Shell 进程私有用户自定义变量,只在当前 Shell 中有效。
  • shell内建环境变量。 Shell 本身内建的变量。
  • 导出的环境变量。 从自定义变量导出的环境变量。
打印环境变量信息的命令
set显示当前 Shell 所有变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量。
env显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。
export显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量。

在这里插入图片描述

永久环境变量(配置文件)

Linux 变量可分为两类:

  • 永久的:需要修改配置文件,变量永久生效
  • 临时的:使用 export 命令行声明即可,变量在关闭 shell 时失效。
用户环境变量
所有用户 (系统)根目录/:
/etc/enviroment、
/etc/profile(环境变量)、
/etc/bashrc(shell变量,用bash命令时加载)、
/etc/bash_profile
当前 用户用户的工作目录:
~/.profile(环境变量) 、
~/.bashrc(shell变量,用bash命令时加载) 、
~/.bash_profile
  • linux环境变量加载顺序: /etc/environment ——> /etc/profile ——> /etc/bashrc ——> ~/.profile ——> ~/.bashrc
  • 当我们在 Shell 中执行一个命令时,系统就会按照 PATH 中设定的路径按照顺序依次到目录中去查找,如果存在同名的命令,则执行先找到的那个。
# 添加一个路径
echo "PATH=$PATH:<path>" >> .bashrc		# <path>绝对路径,>>重定向,不覆盖
echo $PATH								#输出

# 删除环境变量的一个路径
mypath=$PATH
echo $mypath
mypath=${mypath%<path>}					# 删除<path>

# 删除变量
unset mypath							# 删除mypath

# 更新
source <dir>							# <dir>为配置文件

cite:https://www.cnblogs.com/qiuhong10/p/7815943.html

软件下载、安装、卸载

linux所有版本的安装软件命令详解

deb、rpm、AppImage、tar、apt-get、yum、run、bin) https://www.cnblogs.com/linuxAndMcu/p/10717565.html

系统命令包管理工具
debian系统 (ubuntu)deb包dpkgapt-get
Fedroa系统 (centos)rpm包rpmyum
所有tar.gz / tar.bz2源代码包

centos

方法一:yum安装、查询、卸载

yum命令:

#帮助
yum -h
#安装过程提示选择全部为"yes"
yum -y
#不显示安装的过程
yum -q

#安装命令
yum install   	#全部安装
yum install <package_name> 		#安装指定的软件

#更新
yum update 		#全部更新
yum update <package_name>		#更新指定程序包
yum check-update 		#检查可更新的程序

#查找
yum provides 文件名			#查询某文件所在的软件包
yum search 关键字

#显示
yum list 		#显示所有已安装和可以安装的程序包
yum list <package_name>		 #显示指定程序包的安装情况
yum info <package_name>		  #显示程序包信息

#卸载
yum remove <package_name>		 #删除程序包

#清除缓存
yum clean

注:卸载

yum remove firefox

whereis firefox		#卸干净
#firefox: /usr/lib64/firefox
cd /usr/lib64/
rm -rf firefox

方法二:rpm包安装、查询、卸载

(1)安装
举例:安装chrome
用sudo

  • wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
  • rpm -ivh google-chrome-stable_current_x86_64.rpm

注:
若报错,被指需要依赖包

/usr/bin/lsb_release 被 google-chrome-stable-74.0.3729.169-1.x86_64 需要
libXss.so.1()(64bit) 被 google-chrome-stable-74.0.3729.169-1.x86_64 需要
libappindicator3.so.1()(64bit) 被 google-chrome-stable-74.0.3729.169-1.x86_64 需要
liberation-fonts 被 google-chrome-stable-74.0.3729.169-1.x86_64 需要

则安装这些包

sudo yum -y install liberation-fonts
sudo yum -y install libXss*
sudo yum -y install libappindicator*

对于错误:

/usr/bin/lsb_release 被 google-chrome-stable-74.0.3729.169-1.x86_64 需要

则先查找对应的安装包,再安装

sudo yum provides */lsb_release  #找到安装包:redhat-lsb-core-4.1-27.el7.centos.1.x86_64
sudo yum install redhat-lsb-core-4.1-27.el7.centos.1.x86_64

(2)查询

rpm -qa | grep mysql

(3)卸载

rpm -e mysql  #普通删除模式
rpm -e --nodeps mysql  #强力删除模式

方法三:tar.gz源代码包安装、卸载

(1)安装

tar -xzvf xxx.tar.gz   #解压
cd xxx
./configure		#配置文件
make		#编译
make install 	#安装生成的二进制文件

(2)卸载

cd xxx	#源代码包
make uninstall
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值