date:显示当前的时间
history:显示历史打过的命令
ctrl+p:向上调用历史命令
ctrl+n:向下调用历史命令
ctrl+b:光标向左移动
ctrl+f:光标向右移动
ctrl+a:光标迅速移动到当前行的头部
ctrl+e:光标移动到行尾
Linux系统中的光标很宽,会盖住一个字符,这个字符前面的字符表示光标前面的字符,被光标盖住的字符称为光标后面的字符。
ctrl+h:删除光标前面的字符
ctrl+d:删除光标后面的字符(被光标覆盖的字符)
ctrl+u:删除光标前面所有的字符
ctrl+l:清除屏幕(相当于clear)
Shell即命令解释器,从本质上讲,Shell是一个程序,它在用户和操作系统之间提供了一个面向行的可交互接口。用户在命令行中输入命令,运行在后台的Shell吧命令转换成指令代码发送给操作系统。
常用的Shell有Bourne Again Shell(BASH)、TCSH Shell、Z-Shell等。
以下命令均为BASH。
xal1@xal1-virtual-machine:~$
xal1@xal1-virtual-machine:~$ pwd
/home/xal1
###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命令会显示当前所在的位置,即工作目录。
root@xal1-virtual-machine:/# cd /usr/local/bin/
root@xal1-virtual-machine:/usr/local/bin# pwd
/usr/local/bin
$ cd / ##进入根目录
$ cd .. ##进入当前目录的上一级目录
$ cd bin/ ##cd path 表示进入某个目录
$ cd ../.. ##直接进入根目录
$ cd ##回到用户自己的主目录
$ cd ~ ##回到用户自己的主目录
$ cd - ##表示在临近的两个目录之间进行切换
tips:在Shell中,“/”表示根目录,“~”表示用户主目录,“…”代表当前目录的上一级目录,“.”表示当前目录。
## 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命令通常用于查看文本文件的内容,后跟文件名作为参数。
cat -n 用于在每一行前面显示行号。
cat命令会一次性将内容全部显示在屏幕上,有时候这会是一个致命的缺陷。
more命令可以一页一页的显示文件。
more命令会在最后显示一个百分比,表示已显示的内容占整个文件的比例。
按空格键下翻一页,看Enter键下翻一行,按Q键退出。
可以用-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。
例如,在文件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 [path…] [expression]
xal1@xal1-virtual-machine:/$ find usr/bin/ -name zip -print
usr/bin/zip
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是个不错的选择:
xal1@xal1-virtual-machine:/$ locate *.doc
/snap/gnome-3-34-1804/36/usr/lib/python2.7/pdb.doc
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命令可以查看当前系统中有哪些人登录,以及他们都在哪个工作台上。
xal1@xal1-virtual-machine:/$ who
xal1 :0 2020-09-02 18:09 (:0)
有时候可能会忘记自己是以什么身份登录到系统,特别当需要以特定身份启动某个程序时,这个命令会很有用。whoami回答“我是谁”的问题。
xal1@xal1-virtual-machine:/$ whoami
xal1
用于显示当前系统的版本信息。
-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命令在显示手册页的时候实际调用的时less程序。可以通过方向键或J键(表示向上)、K键(表示向下)上下翻动。空格键用于向下翻页,Q键退出。
man调用手册的完整信息。
从某个程序的手册页中抽取出一行简单的介绍性文字,帮助用户理解程序的大致用途。
xal1@xal1-virtual-machine:/$ whatis find
find (1) - search for files in a directory hierarchy
与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”的条目一并列出,总能从中找到想要的。
Linux系统没有盘符的概念,文件目录为树结构。下表列出了Linux系统主要目录及其内容:
目录 | 内容 |
---|---|
/bin | 构建最小系统所需要的命令(最常用的命令) |
/boot | 内核与启动文件 |
/dev | 各种设备文件 |
/etc | 系统软件的启动和配置文件 |
/home | 用户的主目录,有多少个用户就会显示几个用户名称 |
/lib | C编译器的库 |
/media | 可移动介质的安装点 |
/opt | 可选的应用软件包(很少使用) |
/proc | 进程的映像 |
/root | 超级用户root的主目录 |
/sbin | 和系统操作有关的命令 |
/tmp | 临时文件的存放点 |
/usr | 非系统的程序和命令,类似于windows下的program files |
/var | 系统专用的数据和配置文件 |
/lost+found | 这个目录一般是空的,当系统非法关机后,这里就会保存一些文件碎片,可用于恢复相关信息 |
白色——普通文件
蓝色——目录
草绿色——可执行文件
红色——压缩文件
青色——链接文件,相当于Windows下的快捷方式
黄色——设备文件
灰色——其他文件
以上颜色并不能一概而论,仅是通常情况下。
mkdir dirname:创建一个目录
$ cd ~
$ madir document picture ##新建两个目录
用户也可以用绝对路径来新建目录。
$ mkdir ~/picture/temp ##在主目录下新建名为temp的目录
touch filename
就可以创建一个空文件,在Linux中,创建文件时可以不带后缀。
touch命令的另一个用途是用来更新一个文件的建立日期和时间,这个功能在自动备份和整理文件的时候非常有用,这使得程序可以决定哪些文件已经被备份或整理过了。
$ mv hello study/ ##将hello文件移动到study目录下
$ mv study/ test/ ##将study目录移动到test目录下
$ mv hello hello~
在同一个文件夹下移动一个文件即是重命名。
$ 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:可以一次删除一个或多个文件。可以加一下参数:
-r:rm本身并不能删除一整个目录,加上-r命令会递归地删除目录下所有的文件和子目录。
-i:这个选项会在删除文件前给出提示,回答y表示删除这个文件,n表示跳过这个文件。对于只读选项,即便不加-i选项rm命令也会对此进行提示。
-f:可以避免上述-i的交互,对这些问题自动回答y。
软件包将安装软件的一系列细节操作打包,使得软件安装变得便捷。但是软件包也不是万能的,它存在依赖性问题。
一些高级软件管理工具如APT和yum可以自动搜索依赖关系并执行安装。
常用的软件安装包格式有两种:
Advance Package Tool
apt-get:执行和软件包安装有关的所有操作
apt-cache:主要用于查找软件包的相关信息
使用apt-get -h命令可以查看apt-get的完整用法:
apt-cache search:可以搜索软件包列表种特定的软件包。
apt-cache depends:用于列出软件包特定的依赖关系。
表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各种资源,包括资讯、软件、手册等 |