Linux基础学习记录
Linux基础学习
LInux学习
1. Linux快捷键
date:显示当前的时间
history:显示历史打过的命令
ctrl+p:向上调用历史命令
ctrl+n:向下调用历史命令
ctrl+b:光标向左移动
ctrl+f:光标向右移动
ctrl+a:光标迅速移动到当前行的头部
ctrl+e:光标移动到行尾
Linux系统中的光标很宽,会盖住一个字符,这个字符前面的字符表示光标前面的字符,被光标盖住的字符称为光标后面的字符。
ctrl+h:删除光标前面的字符
ctrl+d:删除光标后面的字符(被光标覆盖的字符)
ctrl+u:删除光标前面所有的字符
ctrl+l:清除屏幕(相当于clear)
2. Shell基本命令
Shell即命令解释器,从本质上讲,Shell是一个程序,它在用户和操作系统之间提供了一个面向行的可交互接口。用户在命令行中输入命令,运行在后台的Shell吧命令转换成指令代码发送给操作系统。
常用的Shell有Bourne Again Shell(BASH)、TCSH Shell、Z-Shell等。
以下命令均为BASH。
xal1@xal1-virtual-machine:~$
- xal1:表示用户名
- @:表示在
- xal1-virtual-machine:表示在设置虚拟机的时候设置的主机名
- ~:表示用户主目录。用户主目录是/home下的一个子目录,而不是home目录。
xal1@xal1-virtual-machine:~$ pwd
/home/xal1
- $:表示命令提示符,也表示当前用户为普通用户。如果提示符为#,则表示当前用户为root用户。
###Tab键:命令补全
1.按一次Tab键:在输入文件名的时候,只需要输入开头几个字符,然后按下Tab键,Shell就会自动把文件名自动补全。
2.按两次Tab键:如果以已键入字符开头的文件不止一个,那么可以连续按两次Tab,Shell会以列表形式给出所有以键入字符开头的文件。
”*“,”?“,”[]“:通配符
“*”:用于匹配文件名中任意长度长度的字符串。
## *.py 即可以列出当前目录下所有的py文件
root@xal1-virtual-machine:/bin# ls *.py
mesa-overlay-control.py
”?“:类似于”*“通配符,但是它只匹配一个字符。
## test? 用于匹配文件名以test开头而后跟一个字符的文件
xal1@xal1-virtual-machine:~/study$ ls test?
test1 test2 test3 testA testB testC
”[]“:用于匹配所有出现在方括号内的字符。
也可使用短线”-“来指定一个范围,所有包含在上下界之间的字符都会被匹配,数字和字母都可以。
xal1@xal1-virtual-machine:~/study$ ls test[1A]
test1 testA
xal1@xal1-virtual-machine:~/study$ ls test[1-3]
test1 test2 test3
xal1@xal1-virtual-machine:~/study$ ls test[A-C]
testA testB testC
pwd:显示当前目录
pwd命令会显示当前所在的位置,即工作目录。
root@xal1-virtual-machine:/# cd /usr/local/bin/
root@xal1-virtual-machine:/usr/local/bin# pwd
/usr/local/bin
cd:改变目录
$ cd / ##进入根目录
$ cd .. ##进入当前目录的上一级目录
$ cd bin/ ##cd path 表示进入某个目录
$ cd ../.. ##直接进入根目录
$ cd ##回到用户自己的主目录
$ cd ~ ##回到用户自己的主目录
$ cd - ##表示在临近的两个目录之间进行切换
tips:在Shell中,“/”表示根目录,“~”表示用户主目录,“…”代表当前目录的上一级目录,“.”表示当前目录。
ls:列出目录内容
## ls 用于当前目录下的所有文件和子目录
xal1@xal1-virtual-machine:/usr/bin$ cd ~
xal1@xal1-virtual-machine:~$ ls
公共的 模板 视频 图片 文档 下载 音乐 桌面 study
## ls / 查看根目录
## 默认情况下,在命令行中,目录显示为蓝色;普通文件显示为白色;可执行文件显示为草绿色;淡蓝色则表示这个文件是一个链接文件。
## ls -F 会在每个目录后加上/,在可执行文件后加*,在链接文件后加@
xal1@xal1-virtual-machine:/usr/bin$ ls -F
'['* mformat@
aa-enabled* migrate-pubring-from-classic-gpg*
aa-exec* mimeopen*
aconnect* mimetype*
acpi_listen* min12xxw*
add-apt-repository* minfo@
## ls -a 用于显示所有的文件
xal1@xal1-virtual-machine:~$ ls -a
. .. 公共的 模板 视频 图片 文档 下载 音乐 桌面 .bash_history .bash_logout .bashrc .cache .config .gnupg .local .mozilla .profile study .sudo_as_admin_successful .thunderbird
## 可以看到很多头部带“.”的文件,在Linux上,这些文件被称作隐含文件,在默认情况下不会显示,除非指定 -a。
## ls -ld 用于查看一个目录的属性
## ls -l 用于查看当前目录下所有文件的属性
xal1@xal1-virtual-machine:/$ cd /etc/fonts/
xal1@xal1-virtual-machine:/etc/fonts$ ls -l
总用量 12
drwxr-xr-x 2 root root 4096 8月 1 00:32 conf.avail
drwxr-xr-x 2 root root 4096 9月 1 15:10 conf.d
-rw-r--r-- 1 root root 2808 4月 6 18:09 fonts.conf
##总共有九个不同的信息栏,从左到右依次是:
##文件的权限标志
##文件的硬链接个数
##文件所有者的用户名
##该用户所在的用户组组名
##文件的大小
##最后一次被修改时的日期(月)
##最后一次被修改时的日期(日)
##最后一次被修改时的时间
##文件名
##在ls命令后面跟上路径名可以查看改子目录中的内容
xal1@xal1-virtual-machine:/$ ls /etc/init.d/
acpid grub-common pulseaudio-enable-autospawn
alsa-utils hwclock.sh rsync
anacron irqbalance rsyslog
apparmor kerneloops saned
apport keyboard-setup.sh speech-dispatcher
avahi-daemon kmod spice-vdagent
bluetooth network-manager udev
console-setup.sh open-vm-tools ufw
cron openvpn unattended-upgrades
cups plymouth uuidd
cups-browsed plymouth-log whoopsie
dbus pppd-dns x11-common
gdm3 procps
cat和more:查看文本文件
cat
cat命令通常用于查看文本文件的内容,后跟文件名作为参数。
cat -n 用于在每一行前面显示行号。
cat命令会一次性将内容全部显示在屏幕上,有时候这会是一个致命的缺陷。
more
more命令可以一页一页的显示文件。
more命令会在最后显示一个百分比,表示已显示的内容占整个文件的比例。
按空格键下翻一页,看Enter键下翻一行,按Q键退出。
head和tail:阅读文件的开头和结尾
可以用-n 来指定显示的行数。
xal1@xal1-virtual-machine:~/study$ head -n 2 day weather
==> day <==
Monday
Tuesday
==> weather <==
rainy
sunny
xal1@xal1-virtual-machine:~/study$ tail -n 2 day weather
==> day <==
Saturday
Sunday
==> weather <==
cloudy
windy
grep:查找文件内容
为了在文件中快速的查找信息,可以使用grep。
例如,在文件day中查找包含un的信息:
xal1@xal1-virtual-machine:~/study$ grep un day
Sunday
grep有两个参数,第一个参数为被搜索的关键词,第二个参数为所搜索的文件。
grep也可以指定多个文件来搜索。
xal1@xal1-virtual-machine:~/study$ grep un day weather
day:Sunday
weather:sunny
find:查找文件
语法:find [path…] [expression]
xal1@xal1-virtual-machine:/$ find usr/bin/ -name zip -print
usr/bin/zip
- usr/bin/:一个文件路径,find会深入这个路径的每一个子目录去查找,如果指定的路径是“/”,那么就表示查找整个文件系统
- -name:指定文件名称,这里是zip
- -print:表示将结果输出到标准输出(这里指屏幕)
- find命令会打印出文件的绝对路径
find命令还可以指定文件的类型。在Linux中,包括目录和设备都以文件的形式表现,可以使用-type 来定位特殊的文件类型。
xal1@xal1-virtual-machine:/$ find etc/ -name init.d -type d -print
etc/init.d
find: ‘etc/polkit-1/localauthority’: 权限不够
find: ‘etc/cups/ssl’: 权限不够
find: ‘etc/ssl/private’: 权限不够
-type可选用参数如下表所示:
参数 | 含义 |
---|---|
b | 块设备文件 |
c | 字符设备文件 |
d | 目录文件 |
f | 普通文件 |
p | 命令管道 |
l | 符号链接 |
还可以通过指定时间来指导find命令查找文件。
-atime n 用来查找最后一次使用在n天前的文件。
-mtime n 用来查找最后一次修改在n天前的文件。
用+n来表示大于n,-n用来表示小于n。
locate:更快速地定位文件
当你不记得文件名时locate是个不错的选择:
xal1@xal1-virtual-machine:/$ locate *.doc
/snap/gnome-3-34-1804/36/usr/lib/python2.7/pdb.doc
whereis:查找特定的程序
whereis命令用于查找程序文件,并提供这个文件的二进制可执行文件、源代码文件和使用手册页存放的位置。
xal1@xal1-virtual-machine:/$ whereis find
find: /usr/bin/find /usr/share/man/man1/find.1.gz /usr/share/info/find.info-2.gz /usr/share/info/find.info-1.gz /usr/share/info/find.info.gz
可用-b选项让whereis只查找这个程序的二进制文件:
xal1@xal1-virtual-machine:/$ whereis -b find
find: /usr/bin/find
如果whereis无法找到一个文件,那么将返回一个空字符串。
用户版本信息查看
who
who命令可以查看当前系统中有哪些人登录,以及他们都在哪个工作台上。
xal1@xal1-virtual-machine:/$ who
xal1 :0 2020-09-02 18:09 (:0)
whoami
有时候可能会忘记自己是以什么身份登录到系统,特别当需要以特定身份启动某个程序时,这个命令会很有用。whoami回答“我是谁”的问题。
xal1@xal1-virtual-machine:/$ whoami
xal1
uname
用于显示当前系统的版本信息。
-a 选项会给出当前操作系统的所有有用信息。
-r选项会给出当前操作系统的内核版本信息。
xal1@xal1-virtual-machine:/$ uname -a
Linux xal1-virtual-machine 5.4.0-45-generic #49-Ubuntu SMP Wed Aug 26 13:38:52 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
xal1@xal1-virtual-machine:/$ uname -r
5.4.0-45-generic
man:寻求帮助
man命令可以很方便的获取某个命令的帮助信息。
man命令在显示手册页的时候实际调用的时less程序。可以通过方向键或J键(表示向上)、K键(表示向下)上下翻动。空格键用于向下翻页,Q键退出。
man调用手册的完整信息。
whatis和apropos
whatis
从某个程序的手册页中抽取出一行简单的介绍性文字,帮助用户理解程序的大致用途。
xal1@xal1-virtual-machine:/$ whatis find
find (1) - search for files in a directory hierarchy
apropos
与whatis相反,apropos这个命令可以通过使用手册来反查到某个命令。如果一个用户想搜索一个文件,而又想不起来使用哪个命令时,可以求助apropos。
xal1@xal1-virtual-machine:/$ apropos search
apropos (1) - search the manual page names and descriptions
apt-patterns (7) - Syntax and semantics of apt search patterns
badblocks (8) - search a device for bad blocks
bzegrep (1) - search possibly bzip2 compressed files for a regular e...
bzfgrep (1) - search possibly bzip2 compressed files for a regular e...
bzgrep (1) - search possibly bzip2 compressed files for a regular e...
find (1) - search for files in a directory hierarchy
lzegrep (1) - search compressed files for a regular expression
lzfgrep (1) - search compressed files for a regular expression
lzgrep (1) - search compressed files for a regular expression
manpath (1) - determine search path for manual pages
tracker-search (1) - Search for content by type or across all types
xzegrep (1) - search compressed files for a regular expression
xzfgrep (1) - search compressed files for a regular expression
xzgrep (1) - search compressed files for a regular expression
zegrep (1) - search possibly compressed files for a regular expression
zfgrep (1) - search possibly compressed files for a regular expression
zgrep (1) - search possibly compressed files for a regular expression
zipgrep (1) - search files in a ZIP archive for lines matching a pat...
apropos可以将包含“search”的条目一并列出,总能从中找到想要的。
3. 文件目录管理
Linux文件系统的架构
Linux系统没有盘符的概念,文件目录为树结构。下表列出了Linux系统主要目录及其内容:
目录 | 内容 |
---|---|
/bin | 构建最小系统所需要的命令(最常用的命令) |
/boot | 内核与启动文件 |
/dev | 各种设备文件 |
/etc | 系统软件的启动和配置文件 |
/home | 用户的主目录,有多少个用户就会显示几个用户名称 |
/lib | C编译器的库 |
/media | 可移动介质的安装点 |
/opt | 可选的应用软件包(很少使用) |
/proc | 进程的映像 |
/root | 超级用户root的主目录 |
/sbin | 和系统操作有关的命令 |
/tmp | 临时文件的存放点 |
/usr | 非系统的程序和命令,类似于windows下的program files |
/var | 系统专用的数据和配置文件 |
/lost+found | 这个目录一般是空的,当系统非法关机后,这里就会保存一些文件碎片,可用于恢复相关信息 |
文件或目录颜色的一般情况
白色——普通文件
蓝色——目录
草绿色——可执行文件
红色——压缩文件
青色——链接文件,相当于Windows下的快捷方式
黄色——设备文件
- block 块
- char 字符
- fifo 管道
灰色——其他文件
以上颜色并不能一概而论,仅是通常情况下。
mkdir:建立目录
mkdir dirname:创建一个目录
$ cd ~
$ madir document picture ##新建两个目录
用户也可以用绝对路径来新建目录。
$ mkdir ~/picture/temp ##在主目录下新建名为temp的目录
- 如果主目录下存在picture目录,则该命令是合法的。
- 如果不存在,则需要在mkdir参数加上-p选项,则可以完整的创建一个子目录结构。
touch:建立一个空文件
touch filename
就可以创建一个空文件,在Linux中,创建文件时可以不带后缀。
touch命令的另一个用途是用来更新一个文件的建立日期和时间,这个功能在自动备份和整理文件的时候非常有用,这使得程序可以决定哪些文件已经被备份或整理过了。
mv:移动和重命名
$ mv hello study/ ##将hello文件移动到study目录下
$ mv study/ test/ ##将study目录移动到test目录下
- mv在移动文件时不会有任何提示,在遇到相同文件名的文件则会直接覆盖!
- -i:为了解决上述问题,给出了-i选项,该选项会使mv命令在遇到同文件名的文件时给出提示,y表示覆盖,n表示跳过。
- -b:解决上述问题的另一个选项是-b,在移动文件前,会在目标目录的同名文件的文件名后面加~,从而避免被覆盖。
$ mv hello hello~
在同一个文件夹下移动一个文件即是重命名。
cp:复制文件和目录
$ cp day ~/test/ ##将day文件复制到test目录下
和mv命令一样,cp在复制的过程中不会有提示直接覆盖同名文件。使用-i和-b可以解决这一问题。
cp在执行命令的时候会自动跳过目录。如:
xal1@xal1-virtual-machine:~$ cp test/ study/
cp: 未指定 -r;略过目录'test/'
使用-r 选项可以将子目录连同其中的文件一起复制到另一个目录下:
xal1@xal1-virtual-machine:~$ cp test/ study/ -r
xal1@xal1-virtual-machine:~$ cd study/
xal1@xal1-virtual-machine:~/study$ tree
.
├── day
├── test
│ ├── day
│ └── hello
├── test1
├── test2
├── test3
├── testA
├── testB
├── testC
└── weather
rmdir和rm:删除目录和文件
rmdir:只能删除空目录
rm:可以一次删除一个或多个文件。可以加一下参数:
-r:rm本身并不能删除一整个目录,加上-r命令会递归地删除目录下所有的文件和子目录。
-i:这个选项会在删除文件前给出提示,回答y表示删除这个文件,n表示跳过这个文件。对于只读选项,即便不加-i选项rm命令也会对此进行提示。
-f:可以避免上述-i的交互,对这些问题自动回答y。
4. 软件包管理
简述
软件包将安装软件的一系列细节操作打包,使得软件安装变得便捷。但是软件包也不是万能的,它存在依赖性问题。
一些高级软件管理工具如APT和yum可以自动搜索依赖关系并执行安装。
常用的软件安装包格式有两种:
- RPM是Red Hat软件包管理器,被大多数Linux发行版使用
- .deb是Debian和Ubuntu上使用的格式
dpkg:管理.deb软件包
- -i:–install,安装,会在安装软件包之前把系统上原有的旧版本删除
- -l:查看安装包的相关信息
- -S:–search,查看所安装的软件向系统复制了哪些文件
- -r:–remove,卸载已安装的软件包
rpm:管理RPM软件包
- -i:安装
- -v:用于显示rpm当前正在执行的工作
- -h:通过打印一系列的#来提醒用户当前的安装进度
- -v和-h通常和其他选项合并使用,合并时也可省略“-”,如:直接输入“-rvh”
- -U:用户升级软件包
- -q:查询当前系统中已经安装的软件包,需要提供软件包的名字,该命令会给出其版本信息
- -qa:加上-a选项则可以列出当前系统上已经安装的所有软件包的信息
- -e:卸载软件包,需要指定需要卸载的软件包的名字。若目标软件包被多个软件包依赖,则RPM会谨慎的拒绝这个要求,加上–nodeps会继续执行,但卸载后可能会出现无法预料的结果
- –test:加上–test选项,它要求RPM模拟删除软件包的全过程,但是不会真的删除软件包。
- -vv:加上-vv,则要求RPM输出完整的调试信息
APT:高级软件包工具
Advance Package Tool
apt-get:执行和软件包安装有关的所有操作
apt-cache:主要用于查找软件包的相关信息
下载和安装软件包
使用apt-get -h命令可以查看apt-get的完整用法:
查询软件包
apt-cache search:可以搜索软件包列表种特定的软件包。
- 如果不确定软件包的名字,输入名字的一部分,则该命令会按字母顺序列出一切包含该字符的软件包。
apt-cache depends:用于列出软件包特定的依赖关系。
5. Internet上的LInux资源
表1. 常用的国外LInux资源
国外网站 | 说明 |
---|---|
lwn.net | 来自Linux和开放源代码界的新闻 |
http://freecode.com/ | 最齐全的Linux/UNIX软件库 |
www.justlinux.com | 信息齐全的Linux学习网站 |
www.kernel.org | Linux内核的官方网站 |
www.linux.com | 提供全方位的Linux信息 |
www.linuxhq.com | 提供内核信息和补丁的汇总 |
www.linuxtoday.com | 非常完整的Linux新闻站点 |
表2. 常用的国内Linux资源
国内网站 | 说明 |
---|---|
www.chinaunix.net | 国内最大的Linux/UNIX技术社区网站 |
www.linuxeden.com | Linux伊甸园,最大的中文开源资讯门户网站 |
www.linuxfans.org | 中国Linux公社,拥有自己的Linux发行版本Magic Linux |
www.linuxsir.org | 提供Linux各种资源,包括资讯、软件、手册等 |
更多推荐
所有评论(0)