Linux学习记录 更新中

一、初步认知

  • Linux 是一套开源的,免费使用的多用户、多任务、支持多线程和多 CPU 的操作系统,是一个性能稳定的网络操作系统。
  • Linux 操作系统广泛应用于服务器端,通常服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)组合。
  • 将 Linux 内核与应用软件做个打包,就得到了 Linux 发行版。目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
  • Linux 文件系统采用树状目录结构,只有一个根目录,其下有很多规定好的子目录。在菜鸟教程中对具体的目录结构有一个大概的认知:https://www.runoob.com/linux/linux-system-contents.html
  • 即使是硬件也会被映射成文件来管理,所以说,在 Linux 世界中,一切皆文件

二、环境搭建

我选择了直接购买阿里云的轻量应用服务器,这更加符合实际开发场景,系统选择 CentOS 7.6,这个服务器可以看作一台远程的 Linux 电脑。

(一)用 Xshell 远程连接 Linux 服务器

  1. 在管理控制台上可以看到,自动开启了 80、443、22 三个端口
    防火墙
  2. 点击 远程连接 > 设置密码 来设置 root 账户的密码。
    设置密码
  3. 下载Xshell:https://www.netsarang.com/zh/free-for-home-school/
    下载Xshell
  4. 填写姓名和有效邮箱,勾选两者,点击下载,在邮箱中接收下载链接。
  5. Xshell 连接服务器,需要填写的关键信息有主机:服务器的公网 IP,账户:root 和密码。连接成功后:
    Xshell连接成功

(二)用 Xftp 实现远程文件传输

与 Xshell 同理,连接服务器,需要填写的关键信息有主机:服务器的公网 IP,账户:root 和密码。
连接成功后:
Xftp连接成功

三、vi 和 vim 编辑器

Linux 系统内置 vi 文本编辑器,vim 具有编程能力,可以看作 vi 的增强版本,被广泛使用。
常用的三种模式:

  • 正常模式
    默认模式,可以使用【上下左右】按键来移动光标、复制、粘贴、删除字符和行。
  • 插入模式
    按下 i、I、o、O、a、A、r、R 中任意一个字符会进入该模式。
  • 命令行模式
    可完成读取、存盘、替换、离开 vim、显示行号等操作。

(一)模式切换

模式切换

打开 Xshell 登录服务器,输入vim hello.java,意为用 vim 编写 hello.java 程序,
vim实践1
vim实践2

(二)vim 快捷键

快捷键操作包括拷贝、删除、查找、行号、定位、撤销

命令解释
yy拷贝当前行
5yy拷贝当前向下5行
p粘贴
dd删除当前行
5dd删除当前向下5行
:/关键字按关键字进行查找(冒号是为了进入命令模式)
:set nu设置行号
:set nonu取消行号
G定位最末行
gg定位最首行
43G定位43行
u撤销改动

实践

  1. yy 拷贝当前行,5yy 拷贝当前行向下5行,p 粘贴 【正常模式】
    快捷键-拷贝-1
    快捷键-拷贝-2
    快捷键-拷贝-3
    快捷键-拷贝-4
  2. dd 删除当前行,5dd 删除当前行向下的5行 【正常模式】
    快捷键-删除-2
    快捷键-删除-2
  3. :/关键字查找某个单词,输入n查找下一个,重复 /关键字 可换关键字查找 【命令模式】
    查找
  4. :set nu 设置行号,:set nonu 取消行号 【命令模式】
    命令行输入vim /etc/profile回车:
    行号
  5. G 定位最末行,gg 定位最首行,43G 定位43行 【一般模式】
    定位末行
    定位首行
    定位指定行
  6. u 撤销 【一般模式】
    撤销

四、用户管理

(一)关机、重启、登录、注销

命令解释
shutdown -h now立刻关机,-h 意为 halt,即关机
shutdown -h 11分钟后关机,默认参数
shutdown -r now立刻重启,-r意为 reboot,即重启
reboot立刻重启
sync把内存的数据同步到磁盘
logout注销用户,该指令在图形运行级别无效
  • shutdown / reboot / halt 等命令在关机前均已进行了 sync,但本着小心驶得万年船,应在关机重启前执行一遍 sync。
  • root 是系统管理员,权限最大,为避免误操作应尽量少用 root 账户。
  • Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账户,然后以这个账户的身份进入系统。所以常规的登录操作是,利用普通账户登录,然后再切换成系统管理员。

(二)用户添加、删除、切换、查询

命令解释
hostnamectl set-hostname 主机名修改主机名,重启生效
useradd 用户名添加用户,用户目录默认在 /home/用户名
useradd -d 指定目录 用户名添加用户且指定用户目录
passwd 用户名修改指定账户的密码
su - 用户名切换用户,可与 logout/exit 配合切换账号
userdel 用户名删除用户,保留家目录(建议保留)
userdel -r 用户名删除用户和用户家目录
id 用户名查询用户信息
who am i / whoami查看当前登录用户

指令实践(用户的新增、切换、查询)。

  1. 新增普通用户
    添加用户
  2. 切换用户,从高权限用户切换到低权限用户,不需要输入密码,反之需要。
    用户切换
  3. 查询用户信息
    查询

(三)用户组

用户组类似于角色,将有共性(权限)的多个用户归为一个用户组,便于系统进行统一管理。

命令解释
groupadd 组名新增组
groupdel 组名删除组
useradd - g 用户组 用户名新增用户时指定组,默认的组是与用户同名的组
usermod - g 用户组 用户名修改用户的组

指令实践
用户组

(四)用户相关文件

  • /etc/passwd 文件:用户配置文件
    passwd文件
  • /etc/shadow 文件:口令配置文件
  • /etc/group 文件:组的配置文件
    group文件

五、文件管理

(一)运行级别

runlevel / 运行级别说明
0关机
1单用户(可用于找回密码)
2多用户状态、没有网络服务
3多用户状态、有网络服务 【常用】
4系统未使用、保留给用户
5图形界面 【常用】
6系统重启

CentOS 7 后,multi-user.target 等价于 runlevel 3,graphical.target 等价于 runlevel 5。

运行级别相关指令解释
init [runlevel]指定运行级别
systemctl get-default查看当前运行级别
systemctl set-default [runlevel]设置默认运行级别

(二)帮助指令

帮助指令解释
man [命令或配置文件]获得帮助信息,按空格显示下一页,按 q 退出
help [shell 内置命令]获得 shell 内置命令的帮助信息

指令实践
man指令
help指令

(三)文件目录

文件目录相关指令解释
ls [-al]显示当前目录的内容信息,a 是 all 的缩写,显示所有文件,包括隐藏文件,l 显示详细信息
pwd显示当前工作目录的绝对路径
cd [路径]切换到指定目录
mkdir [-p] 目录创建目录,p 用来创建多级目录
rmdir 空目录删除空目录
rm [-rf] 目录删除非空目录,-r 意为 recursive,递归,-f 强制删除不提示
touch 文件创建空文件
cp [-r] source target拷贝文件到指定目录,-r 递归复制整个目录,\cp 强制覆盖不提示
mv old new移动文件与目录或重命名
cat [-n] file查看文件内容,-n 显示行号,带上管道命令 more 浏览更加方便

指令实践
ls指令
pwd/cd/mkdir/rmdir

mv hello.java /home //把hello.java移动到/home目录下
mv hello.java h.java //文件重命名
mv h.java /home/hello.java //移动h.java到/home目录下且重命名为hello.java
文件目录相关指令解释
more file基于VI编辑器的文本过滤器,全屏按页显示文本文件内容,more 指令中内置了若干快捷键
less file分屏查看文件内容,比 more 更强大,支持各种显示终端,根据显示需要加载内容,对于显示大型文件有较高的效率
echo content输出内容到控制台,如环境变量 $HOSTNAME, $PATH,输出字符串要加双引号
head [-n 5] file显示文件的开头部分,默认前10行,[-n 5] 显示前5行
tail [-n 5] file显示文件的尾部内容,默认后10行,[-n 5] 显示后5行
tail -f file实时追踪该文档的所有更新,ctrl+c 退出实时追踪
ln -s [file/dir] name创建软链接/符号链接,类似 windows 里的快捷方式,主要存放了链接其他文件的路径
rm link删除软链接时后面不要加斜杠
history [10]查看已经执行过的所有 [最近10条] 历史命令
!5执行历史编号为5的指令( history 列出的历史命令均有编号)
more 指令内置快捷键解释
space 空格键向下翻一页
enter向下翻一行
q立刻离开 more
ctrl+F向下滚动一屏
ctrl+B向上滚动一屏
=输出当前行的行号
:f输出文件名和当前行的行号
less 指令内置快捷键解释
space 空格键向下翻一页
pagedown向下翻动一页
pageup向上翻动一页
/字串向下搜寻“字串”,n 向下查找,N 向上查找
?字串向上搜寻“字串”,n 向上查找,N 向下查找;两者掌握一个即可
q离开 less 这个程序
> 输出重定向覆盖、 >> 追加解释
ls -l [/home] > file将当前[指定]目录列表内容覆盖写入 file,file 没有会自动创建
ls -al [/home] >> file将当前[指定]目录列表内容追加到 file 的末尾
cat file1 > file2将 file1 的内容覆盖写到 file2
echo content >> file将 content 追加到 file 末尾
cal >> file将当前日历信息追加到 file 中

(四)日期时间指令

日期时间指令解释
date [“+%Y-%m-%d %H:%M:%S”]显示当前日期[年月日时分秒],注意要有+号
date -s 字符串时间设置系统当前时间
cal [2020]显示本月[指定年份]日历

(五)搜索查找指令

其它

乱码问题

一篇中文文章从本地(Windows 系统)传到 Linux 云服务器中打开,发现是乱码,检查后发现是因为 Windows 中默认文件格式编码为 GB2312,Linux 编码一般是 UTF-8。
输出Linux字符集:
echo $LANG // 结果为 en_US.UTF-8
使用 iconv 命令对文件进行转码,-f 指原始文本编码,-t 指输出编码:
iconv -f GB2312 -t UTF-8 oldfile > newfile //提示 iconv: illegal input sequence at position 193247
GB2312 是国标里最小也是最早的中文编码标准,源文件格式并不一定是 GB2312,所以报错。GB18030 是最新国家标准,向下兼容 GB2312 和 GBK,可以作为源文件格式进行转换
iconv -f GB18030 -t UTF-8 oldfile > newfile //无提示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值