Linux桌面环境介绍
Linux桌面环境是基于X windows系统开发,所谓桌面环境其实是运行在linux系统上的一套图形界面软件,我们最先接触的windows图形界面也是这样,是运行在DOS上的一套软件。而图形界面是对shell的封装而已,shell称为壳,是提供给使用者来操作操作操作系统内核的工具,比如文件移动实质还是系统内核的来实现,通过一个shell命令来调用。
Linux终端
常用快捷键
[Ctrl]+[Alt]+[F1]~[F6] 打开纯命令行界面的 “terminal”
[Ctrl]+[Alt]+[T] 打开终端,打开的是伪终端,在图形界面上的终端
[Ctrl]+[Alt]+[F7] 返回图形界面
[Tab] 补全输入
[Ctrl + C] 终止当前程序,但不会退出终端
[Ctrl + z] 程序后台运行,恢复到前台命令fg
[Ctrl + d] 退出终端,或者使用exit命令
[Ctrl + a] 将终端光标移动到行头
[Ctrl + e] 将终端光标移动到行尾
[Alt + Backspace] 向前删除一个单词
[Shift + PgUp] 将终端显示向上滚动
[Shift + PgDn] 将终端显示向下滚动
你可以使用键盘上的方向上键,恢复你之前输入过的命令
系统管理
在讲解命令行之前,有几个TIPS需要先说明:
- 可以使用TAB键,自动补齐命令,文件名等
- 存在多个匹配情况下,连续按下两次TAB键,会以列表形式给出
- shell支持通配符,类似于正则表达式中的语法规则
区段 | 说明 |
---|---|
* | 匹配任意字符 |
? | 匹配一个字符 |
[1,2,a,b] | 匹配在1,2,a,b其中出现的任一字符 |
[c1-c2] | 匹配c1-c2的任一字符 |
[^list] | 匹配list中不存在的情况 |
{string1, string2, string3} | 匹配字符串中的任意一个,中括号是匹配字符 |
{c..c2} | 匹配c1-c2的全部字符 |
e.g find file[1-9],可以找到file1,file2,…,file9
shell脚本
shell有多种版本,本文使用的是bash,在bash中命令行开始以美元字符开始,root身份以#开始
用户名@主机名+当前路径$
用户名@主机名+当前路径#
帮助获取
在命令行中获取帮助
man
man命令给出的帮助信息分为八个区段,这8个区段实际就是对命令进行了分类,如果不理解可以跳过。
Space(空格键)翻页
Enter(回车键)向下滚动一行
/<你要搜索的关键字>
q键退出
区段 | 说明 |
---|---|
1 | 一般命令 |
2 | 系统调用 |
3 | 库函数,涵盖了C标准函数库 |
4 | 特殊文件(通常是/dev中的设备)和驱动程序 |
5 | 文件格式和约定 |
6 | 游戏和屏保 |
7 | 杂项 |
8 | 系统管理命令和守护进程 |
想要获得更详细的帮助,你还可以使用info命令,不过通常使用man就足够了。
为了看懂man命令对其表示方法要解释以下,以find为例:
其中用中括号[]
扩起来表示 都是可以选可不选的,也就是说find命令后面可以什么都不跟就能运行,[-D debugopts]
这个跟其他不一样,这个参数在输入-D
后面还要跟一个参数,…三个点表示这个选项可以添加多个
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [starting-point...]
[expression]
–help
如果你知道某个命令的作用,只是想快速查看一些它的某个具体参数的作用,那么你可以使用–help参数,大部分命令都会带有这个参数
ls --help
whatis
-- whatis uname 列出一个命令的简单描述
apropos 不知道是哪个命令时
apropos search 显示与搜索相关的命令操作
目录管理
1. 目录简单操作**
cd
cd ~或者cd /home 进入 '/ home' 目录'
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd - 返回上次所在的目录
pwd
pwd 显示当前路径
ls
ls 查看目录中的文件
ls -F 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -a 显示隐藏文件
ls *[0-9]* 显示包含数字的文件名和目录名
tree
tree 显示文件和目录由根目录开始的树形结构,以当前目录为根目录(1)
sudo apt install tree 进行安装
mkdir
mkdir dir1 创建一个叫做 'dir1' 的目录'
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树
rm
rm -f file1 删除一个叫做 'file1' 的文件'
rmdir dir1 删除一个叫做 'dir1' 的目录',只能删除空文件夹
rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容,-r递归删除,-f强制删除
rm -rf dir1 dir2 删除多个文件,同时删除两个目录及它们的内容
mv
mv dir1 new_dir 重命名/移动 一个目录
rename
可以批量重命名
cp
cp file1 file2 复制一个路劲file1文件到file2
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录
ln -s file1 lnk1 创建一个指向文件或目录的软链接
ln file1 lnk1 创建一个指向文件或目录的物理链接
touch
touch hello.c 建立hello.c文件
ln
ln filepath link //为文件filepath在当前目录下创建一个名为link硬链接
ln -s filepath link //为文件filepath在当前目录下创建一个名为link软链接
2. 查看文本
cat
cat file 查看文件file,文件会被一次性全部显示
cat -n file 查看文件显示行号
nl
nl命令是更专业的行号打印命令
参数 | 含义 |
---|---|
-b a | 无论是否为空行都打印出行 |
-b t | 只列出非空行的行号(默认) |
-n ln | 在行号字段部分靠左对齐 |
-n rn | 在行号字段部分靠右对齐 |
-n rz | 在行号字段部分靠右对齐,且不足位补0 |
more
more file 查看文件,一页页显示文件,空格向下翻页,enter向下滚动一行,q退出,h显示帮助
less(more的改进版)
less file 查看文件,空格向下翻页,b向上翻页
head
head -n 2 file1 file2 显示文件file1和file2的前两行
tail
tail -n 2 file1 file2 显示文件file1和file2的后两行
file
file filename 查看文件类型
grep
grep hello filename //查找文件filename中带hello的行
或
cat filename | grep hello
grep -r hello ./ //从当前文件夹递归查找所有文件中带hello的行
3. 文件搜索
find
find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录ing
f
find / -user user1 搜索属于用户 'user1' 的文件和目录
find /home/user1 -name *.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件
find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 结尾的文件并定义其权限
find / -xdev -name \*.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备
注意*号前的反斜杠进行转义
locate 快速搜索
通过”/var/lib/mlocate/mlocate.db”数据库查找,不过这个数据库也不是实时更新的,系统会使用定时任务每天自动执行updatedb命令更新一次,所以有时候你刚添加的文件,它可能会找不到,需要手动执行一次updatedb命令(在我们的环境中必须先执行一次该命令)。
locate *.ps 寻找以 '.ps' 结尾的文件
locate /usr/share/*.jpg
whereis 查找程序文件
whereis只能搜索二进制文件(-b),man帮助文件(-m)和源代码文件(-s)。如果想要获得更全面的搜索结果可以使用locate命令。
whereis halt 显示一个二进制文件、源码或man的位置
which查找是否安装某软件
which man
权限管理
在讲权限管理先解释几点与Windows中不同的地方:
1. linux中一切皆文件,不管是文本文件还是二进制文件对系统来说都看成文件;
2. linux中可执行文件不像windows中通过后缀.exe或者.bat来标识,而是通过其文件属性来标识;
3. linux中的文件具有三种属性,RWX,可读,可写,可执行
4. linux中文件的属性又分为三个层次,owner/group/other
chmod
改变文件9个属性,change mode缩写
chmod 755 file.txt //更改file.txt属性为rwxrw-rw-
chmod u=rwx,go=rx file.txt //与上一条语句执行结果相同
chmod g+r file.txt //给组添加读属性
chmod u-x file.txt //给文件拥有者除去可执行属性
chown
改变文件所有者,就是change owner
chgrp改变文件所属用户组,就是change group的缩写
chgrp [-R] groupname filename
-R表示递归
管理软件包
apt-get
sudo apt-get 用于deb包的升级,安装,卸载
sudo apt-get update 更新软件包
sudo apt-get install packgename 安装
sudo apt-get remove softwarename 卸载
sudo apt-get remove --purge softwarename 卸载并删除配置文件
sudo apt-get autoremove softwarename 删除包及其依赖的软件包,加--purge删除更彻底
压缩工具
gzip最常用的压缩
gzip linux_book.tar 压缩文件
gzip -l linux_book.tar.gz 查看压缩效果
通过gzip压缩的文件会自动加上.gz的扩展名,上述文件就变成了gzip linux_book.tar.gz
注:.tar.gz是linux中最流行的压缩文件格式,这是先经过tar打包程序处理后,然后用gzip压缩的成果
gzip -d linux_book.tar.gz 解压缩文件
gunzip linux_book.tar.gz 与上面命令作用相同
bzip2 更高的压缩率
方法与gzip相同
tar打包工具
tar -cvf shell.tar shell/ 打包文件
c 指导tar创建归档文件
v 显示命令执行过程,嫌啰嗦可以省略
f 指定归档文件的文件名
tar -xvf shell.tar 解包文件
tar -cvwf shell.tar shell/ 每次加入单个文件或文件夹
tar -xvwf shell.tar shell/ 每次抽取单个文件或文件夹
tar -czvf shell.tar.gz shell/ 打包文件并压缩成.zip格式
tar -xzvf shell.tar.gz 解压缩文件,并解包
注:tar命令不会删除源文件,而压缩命令会删除源文件
用户管理
查看用户who命令
whoami 查看当前用户用户名
who am i 查看当前用户名和终端信息
pts/0 pts表示伪终端,后面的0表示终端号
/dev/tty6 tty表示真终端,后面的6表示终端号
参数 | jiang |
---|---|
-a | 打印能打印的全部 |
-d | 打印死掉的进程 |
-m | 同am i,mom likes |
-q | 打印当前登录用户数及用户名 |
-u | 打印当前登录用户登录信息 |
-r | 打印运行等级 |
获取root用户权限
sudo 获取root用户权限
sudo adduser peter 创建一个peter用户
su -l peter 切换到peter用户
磁盘管理
linux将文件分成两个部分,一个是inode记录属性和位置,一个block记录文件数据
df
df查看挂载点使用情况
fdisk
sudo fdisk -l 列出磁盘信息
挂载设备mount
sudo mount -t ext3 /dev/sdc /mnt/new 将设备sdc挂在到文件夹new中,文件格式为ext3
解除挂载umount
umount /dev/sdc 卸载sdc设备
umount /mnt/new 卸载挂在文件夹new下面的设备
进程管理
ps
ps x
ps aux