您的位置:首页 > 运维架构 > Linux

Linux 基础学习 基本概念及操作、常见命令

2016-12-22 21:06 761 查看

Linux 桌面环境介绍

Unix/Linux本身是没有界面的,所看到的Unix/Linux发行版的图形界面只是运行在Linux系统上的一套软件,类似win95前只是运行在Dos上的一个软件。

而 Linux 上的这套软件以前是 XFree86,现在则是 xorg(X.Org),而这套软件又是通过 X 窗口系统(X Window System,也常被称为 X11 或 X)实现的,X 本身只是工具包及架构协议,而 xorg 便是 X 架构规范的一个实现体,也就是说它是实现了 X 协议规范的一个提供图形界面服务的服务器 。

如果只有服务器也是不能实现一个完整的桌面环境的,当然还需要一个客户端,我们称为 X Client,像如下几个大家熟知也最流行的实现了客户端功能的桌面环境 KDE,GNOME,XFCE,LXDE 。

实验楼目前使用的 XFCE 桌面环境。

Linux终端

在图形系统下,Linux系统提供了终端模拟器的程序(Terminal),常见的有:

- gnome-terminal

- kconsole

- xterm

- rxvt

- kvt

- nxterm

- eterm

实验楼环境使用:xfce 桌面环境自带的 xfce-terminal 。

终端本质上是对应着 Linux 上的 /dev/tty 设备,Linux 的多用户登陆就是通过不同的 /dev/tty 设备完成的,Linux 默认提供了 6 个纯命令行界面的 “terminal”(准确的说这里应该是 6 个 virtual consoles)来让用户登录。在物理机系统上你可以通过使用[Ctrl]+[Alt]+[F1]~[F6]进行切换,不过在实验楼的在线实验环境中可能无法切换,因为特殊功能按键会被你的主机系统劫持。当你切换到其中一个终端后想要切换回图形界面,你可以按下[Ctrl]+[Alt]+[F7]来完成。

Shell

Shell 是指“提供给使用者使用界面”的软件(命令解析器),类似于 DOS 下的 command(命令行)和后来的 cmd.exe 。普通意义上的 Shell 就是可以接受用户输入命令的程序。

UNIX/Linux 下的图形用户界面 GNOME 和 KDE,有时也被叫做“虚拟 shell”或“图形 shell”。

在 UNIX/Linux 中比较流行的常见的 Shell 有 bash、zsh、ksh、csh 等等,Ubuntu 终端默认使用的是 bash,默认的桌面环境是 GNOME 或者 Unity(基于 GNOME),但我们的环境中使用的分别是 zsh 和 xfce。

文件与目录管理

pwd 显示当前目录

cd 改变目录

ls 显示文件列表

mkdir 创建文件夹

cp 文件复制

mv 移动或重命名

rm 删除文件或目录

locate 在整个找出指定的文件,该命令直接与updatedb关联。该命令依赖地索引,直接新建的文件是搜索不到的,除非使用updatedb

updatedb 更新文件数据库。

man 显示指定命令的使用帮助

用户和组

用户管理

超级用户 root

用户账户 在Linux 文件系统中的配置目录中保存丰系统用户的列表:/etc/passwd,密码保存在/etc/shadow中。

增加用户

useradd username 默认设置,一个home目录,没有有效期,默认组,登陆的BashShell 。

非登陆类的账号,如nginx , 可以使用:

useradd --shell /sbin/nologin nginx


或定位该用户的home目录的位置,如:

useradd --shell /sbin/nologin --home-dir /usr/local/nginx nginx


usermod 对账户重命名、修改密码,移动home位置

userdel username 删除账号 加-r 同时删除home目录

组管理

目的:让一个组的成员对某一文件或目录有共同的访问权限,每一个进入该组的用户都继承该组的权限。一个用户账户至少属于一个组——主要组(primary group)

用户组的列表保存 /etc/group中。

- groupadd groupname 新建用户组

- groupmod 修改用户组

- groupdel 删除用户组

- 组添加成员

usermod --append --groups groupname username


查找 搜索

find 查找命令

find /home/test -name test.sh -print 在目录下查找文件并打印路径
命令选项:
-name 按照文件名查找
-perm 按照文件权限来查找文件
-prune 不在当前指定的目录查找。如果同时使用了-depth,那-prune会被忽略
-user 按文件属主来查找文件
-group 按所属组来查找文件
-mtime -n +n 按照文件更改时间来查找文件
-nogroup 查找无有效所属组的文件,即在该所属组在/etc/groups中不存在
-nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在
-newer file1 !file2 查找更改时间比file1新但比file2老的文件
-type 查找某一类型的文件
-size n[c]查找文件工度为n块的文件,带有c时表示文件长度以字节计算
-depth 在查找文件地,首先查找当前目录中的文件,然后在其子目录中查找。
-fstype 查找位于某一类型雇佣系统中的文件
-mount 在查找文件地不跨越文件系统mount点
-cpio 对匹配的文件使用cpio命令,将这些文件备份到磁带设备中

find ~ -name "*.txt" -print 在$HOME目录下查找后缀txt的文件
find . -name "[A-Z]*" -print 查找当前目录及子目录里大写开头的文件
find /etc -name "host*" -print 在/etc里找host开头的文件
find . -name "[a-z][a-z][0-9][0-9].txt" -print 查找两个小写字母开头,后跟两个数字的文件
find . -perm 755 -print 当前目录下找权限为755的文件
find /apps -name "/apps/bin" -prune -o -print 忽略/apps/bin目录
find . -type f -exec ls -l {} \; 用ls -l 列出所找到的文件
find . -name "*.LOG" -mtime +5 -ok rm {} \;删除5天前的日志
find /home/hap/src/* -name "*.o" -exec rm {} \;

使用xargs
find / -type f -print | xargs grep "device" 用grep命令在所有的普通文件中搜索device单词


sed

sed 是一个非交互性文本流编辑器,可以从文件和字符串中抽取所需信息。

sed -n '2p' sed.txt 打印第2行
sed -n '1,3p' sed.txt 打印1~3行
sed -n '1,3p' sed.txt >sed.tmp  1~3行输出到sed.tmp文件里
sed -n '1,$p' sed.txt  显示全文
sed -n '1p' sed.txt   打印首行
sed -n '$p' sed.txt  打印最后一行
sed '2p' sed.txt  输出全部文本,然后输出第2行
sed -n '/should/'p sed.txt 查找should的行
sed -n '/should/=' sed.txt  输出匹配的行号
sed -n '/\./'p sed.txt 特殊字符查询,需要\进行转义
sed '1,3d' sed.txt  删除1~3行
sed '/should/d' sed.txt 删除包含should的行
sed 's/PS/ps/' sed.txt  替换每行第一个单词
sed 's/PS/ps/g' sed.txt  全文替换
sed '1,3 s/should/SHOULD/g' sed.txt 指定行替换
sed '1 s/should/SHOULD/g' sed.txt 指定行范围替换
控制字符输入方式:
^M
1.Ctrl+v
2.M
3.释放Ctrl


awk

有点复杂,这里先不记录了。

系统服务

许多运行在后台的应用程序,不是通过命令加上一个&字符,而是通过一个复杂的脚本来管理。脚本最普遍是放在/etc/init.d内。

一些Linux发行版本,提供了service脚本,通过它来控制服务。

进程管理

查找pid

ps aux | grep sshd


top 列出当前在系统下运行的所有进程,并列出进程的pid

默认以CPU使用率排序。 这个显示每秒刷新一次,Ctrl+C中断或Q退出。

杀进程

kill pid

kill -9 pid 强制杀进程

killall httpd 以进程名为参数杀多个进程

本文参考:电子工业出版社《深入浅出Linux工具与编程》

实验楼实验

banner

sudo apt-get update
sudo apt-get install sysvbanner
banner hello




sudo apt-get install toilet
toilet Hello World




其它有趣的命令

sl
figlet Hello
asciiview 以字符显示图形 apt-get install aview
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: