Linux操作系统基础

多用户、多任务、支持多线程和多CPU的操作系统

Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linus Torvalds

多用户,多任务,丰富的网络功能,可靠的系统安全,良好的可移植性,具有标准兼容性,良好的用户界面,出色的速度性能
开源

CentOS独有的yum命令支持在线升级,可以即时更新系统,不像RedHat 那样需要花钱购买支持服务!

Linux目录结构

在这里插入图片描述

  • bin (binaries)存放二进制可执行文件
  • sbin (super user binaries)存放二进制可执行文件,只有root才能访问
  • etc (etcetera)存放系统配置文件
  • usr (unix shared resources)用于存放共享的系统资源 usr/local/maven装maven
  • home 存放用户文件的根目录
  • root 超级用户目录
  • dev (devices)用于存放设备文件
  • lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
  • mnt (mount)系统管理员安装临时文件系统的安装点
  • boot 存放用于系统引导时使用的各种文件
  • tmp (temporary)用于存放各种临时文件
  • var (variable)用于存放运行时需要改变数据的文件

ls:显示文件和目录列表(list)

  • 常用参数:
    -l (long)
    -a (all) 注意隐藏文件、特殊目录.和…
    -t (time)

Linux命令的分类:

  • 内部命令:属于Shell解析器的一部分
    cd 切换目录(change directory)
    pwd 显示当前工作目录(print working directory)
    help 帮助
  • 外部命令:独立于Shell解析器之外的文件程序
    ls 显示文件和目录列表(list)
    mkdir 创建目录(make directoriy)
    cp 复制文件或目录(copy)
  • 查看帮助文档
    内部命令:help + 命令(help cd)
    外部命令:man + 命令(man ls)

操作文件或目录常用命令

  • pwd 显示当前工作目录(print working directory)

  • touch 创建空文件

  • mkdir 创建目录(make directoriy)

    • -p 父目录不存在情况下先生成父目录 (parents)
  • cp 复制文件或目录(copy)

    • -r 递归处理,将指定目录下的文件与子目录一并拷贝(recursive)
  • mv 移动文件或目录、文件或目录改名(move)

  • rm 删除文件(remove)

    • -r 同时删除该目录下的所有文件(recursive)
    • -f 强制删除文件或目录(force)
  • rmdir 删除空目录(remove directoriy)

  • cat显示文本文件内容 (catenate)

  • more、less 分页显示文本文件内容

  • head、tail查看文本中开头或结尾部分的内容

    • head -n 5 a.log 查看a.log文件的前5行
    • tail -f b.log 循环读取(fellow)

cat 命令

cat 命令用于连接文件并打印到标准输出设备上

语法格式

cat [-AbeEnstTuv] [–help] [–version] fileName

参数说明:
-n 或 --number:由 1 开始对所有输出的行数编号。

-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。

-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。

-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。

-E 或 --show-ends : 在每行结束处显示 $。

-T 或 --show-tabs: 将 TAB 字符显示为 ^I。

-A, --show-all:等价于 -vET。

-e:等价于"-vE"选项;

-t:等价于"-vT"选项;

实例:
把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:

cat -n textfile1 > textfile2

把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:

cat -b textfile1 textfile2 >> textfile3

清空 /etc/test.txt 文档内容:

cat /dev/null > /etc/test.txt

cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入:

cat /dev/fd0 > OUTFILE

相反的,如果想把 image file 写到软盘,输入:

cat IMG_FILE > /dev/fd0

注:

  1. OUTFILE 指输出的镜像文件名。
  2. IMG_FILE 指镜像文件。
  3. 若从镜像文件写回 device 时,device 容量需与相当。
  4. 通常用制作开机磁片。

常用命令

wc 统计文本的行数、字数、字符数(word count)
-m 统计文本字符数
-w 统计文本字数
-l 统计文本行数

- -c或--bytes或--chars 只显示Bytes数。
- -l或--lines 只显示行数。
- -w或--words 只显示字数。
- --help 在线帮助。
- --version 显示版本信息。

wc runoob.txt 
8  8 93 runoob.txt
行数,单词数,字符数

find 在文件系统中查找指定的文件
find /etc/ -name “aaa”
grep 在指定的文本文件中查找指定的字符串
ln 建立链接文件(link)
-s 对源文件建立符号连接,而非硬连接(symbolic)

top 显示当前系统中耗费资源最多的进程
ps 显示瞬间的进程状态
-e /-A 显示所有进程,环境变量
-f 全格式
-a 显示所有用户的所有进程(包括其它用户)
-u 按用户名和启动时间的顺序来显示进程
-x 显示无控制终端的进程
kill 杀死一个进程
kill -9 pid
df 显示文件系统磁盘空间的使用情况

du 显示指定的文件(目录)已使用的磁盘空间的总
-h文件大小以K,M,G为单位显示(human-readable)
-s只显示各档案大小的总合(summarize)
free 显示当前内存和交换空间的使用情况
netstat 显示网络状态信息
-a 显示所有连接和监听端口
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-p 显示建立相关链接的程序名
ifconfig 网卡网络配置详解
ping 测试网络的连通性

备份压缩命令

gzip 压缩(解压)文件或目录,压缩文件后缀为gz
bzip2 压缩(解压)文件或目录,压缩文件后缀为bz2
tar 文件、目录打(解)包

gzip

命令格式:gzip [选项] 压缩(解压缩)的文件名
-d将压缩文件解压(decompress)
-l显示压缩文件的大小,未压缩文件的大小,压缩比(list)
-v显示文件名和压缩比(verbose)
-num用指定的数字num调整压缩的速度,-1或–fast表示最快压缩方法(低压缩比),-9或–best表示最慢压缩方法(高压缩比)。系统缺省值为6

tar命令

-c 建立一个压缩文件的参数指令(create)
-x 解开一个压缩文件的参数指令(extract)
-z 是否需要用 gzip 压缩
-j 是否需要用 bzip2 压缩
-v 压缩的过程中显示文件(verbose)
-f 使用档名,在 f 之后要立即接档名(file)

tar –czvf wang.tar.gz -C /home

关机,重启

shutdown系统关机
-r 关机后立即重启
-h 关机后不重新启动
halt 关机后关闭电源
reboot 重新启动

善于查看man page(manual)等帮助文档
利用好Tab键
掌握好一些快捷键
ctrl + c(停止当前进程)
history(查看命令历史)
ctrl + l(清屏,与clear命令作用相同)

VIM文本编辑器

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

用户和组账户管理

linux操作系统是一个多用户操作系统,它允许多用户同时登录到系统上并使用资源。系统会根据账户来区分每个用户的文件,进程,任务和工作环境,使得每个用户工作都不受干扰。

保存用户信息的文件:/etc/passwd
保存密码的文件:/etc/shadow
保存用户组的文件:/etc/group
保存用户组密码的文件:/etc/gshadow
用户配置文件:/etc/default/useradd

/etc/passwd格式

使用命令:man 5 passwd
account:password:UID:GID:GECOS:directory:shell

在这里插入图片描述

超级用户:(root,UID=0)
普通用户:(UID在500到60000)
伪用户:(UID在1到499)
系统和服务相关的:bin、daemon、shutdown等
进程相关的:mail、news、games等
为用户不能登陆系统,而且没有宿主目录

操作用户命令

  • 添加用户命令:useradd
    -u 指定组ID(uid)
    -g 指定所属的组名(gid)
    -G 指定多个组,用逗号“,”分开(Groups)
    -c 用户描述(comment)
    -e 失效时间(expire date)
  • 例子:
    useradd -u 888 -g users -G sys,root -c “hr zhang” zhangsan
    passwd zhangsan

修改用户命令:usermod(user modify)
-l 修改用户名 (login)usermod -l a b(b改为a)
-g 添加组 usermod -g sys tom
-G添加多个组 usermod -G sys,root tom
–L 锁定用户账号密码(Lock)
–U 解锁用户账号(Unlock)
删除用户命令:userdel(user delete)
-r 删除账号时同时删除目录(remove)

添加组:groupadd
-g 指定gid
修改组:groupmod
-n 更改组名(new group)
删除组:groupdel
groups 显示用户所属组

权限管理

三种基本权限
r 读权限(read)
w 写权限(write)
x 执行权限 (execute)

在这里插入图片描述

第1位:文件类型(d 目录,- 普通文件,l 链接文件)
第2-4位:所属用户权限,用u(user)表示
第5-7位:所属组权限,用g(group)表示
第8-10位:其他用户权限,用o(other)表示
第2-10位:表示所有的权限,用a(all)表示

完整信息:一个文件,所属用户具有读写执行权限;所属组的用户
有读写权限,没有执行权限;其他用户只有读权限

chmod修改文件权限命令(change mode)
参数:-R 下面的文件和子目录做相同权限操作(Recursive递归的)
例如:chmod u+x a.txt
用数字来表示权限(r=4,w=2,x=1,-=0)
例如:chmod 750 b.txt
rwx用二进制表示是111,十进制4+2+1=7
r-x用二进制表示是101,十进制4+0+1=5

Linux 网络配置

DEVICE="eth0"
BOOTPROTO=“static"
HWADDR="00:0C:29:62:4C:2B"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="1acc3359-b1fd-4ac8-b044-58b5fe5a16ce“
IPADDR="192.168.24.20"
NETMASK="255.255.255.0"
GATEWAY="192.168.24.1"
DNS1="8.8.8.8"
DNS2="8.8.4.4"

chown

chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。 。

一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限可以自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。

chown [-cfhvR] [–help] [–version] user[:group] file…

user : 新的文件拥有者的使用者 ID
group : 新的文件拥有者的使用者组(group)
-c : 显示更改的部分的信息
-f : 忽略错误信息
-h :修复符号链接
-v : 显示详细的处理信息
-R : 处理指定目录以及其子目录下的所有文件
–help : 显示辅助说明
–version : 显示版本

将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :

chown runoob:runoobgroup file1.txt

将目前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:

chown -R runoob:runoobgroup *

配置文件

与用户相关的系统配置文件主要有/etc/passwd 和/etc/shadow,其中/etc/shadow是用户资讯的加密文件,比如用户的密码口令的加密保存等;

/etc/passwd 和/etc/shadow 文件是互补的;

/etc/passwd 是系统识别用户的一个文件,系统所有的用户都在这里有登录记载;当我们以beinan 这个账号登录时,系统首先会查阅 /etc/passwd
文件,看是否有beinan 这个账号,然后确定beinan的UID,通过UID 来确认用户和身份,如果存在则读取/etc/shadow影子文件中所对应的beinan的密码;如果密码核实无误则登录系统,读取用户的配置文件;

具有某种共同特征的用户集合起来就是用户组(Group)。用户组(Group)配置文件主要有 /etc/group和/etc/gshadow,其中/etc/gshadow是/etc/group的加密信息文件;

6.名令设置别名(重启后无效)

alias ll=“ls -l”
取消
unalias ll

7.如果想让别名重启后仍然有效需要修改
vi ~/.bashrc

find

15.将所有的java语言程式拷贝至finished子目录中:
cp *.java finished

16.将目前目录及其子目录下所有扩展名是java的文件列出来。
find -name “*.java”

17.删除当前目录下扩展名是java的文件
rm -f *.java

系统命令

1.查看主机名
hostname

2.修改主机名(重启后无效)
hostname hadoop

3.修改主机名(重启后永久生效)
vi /ect/sysconfig/network

4.修改IP(重启后无效)
ifconfig eth0 192.168.12.22

修改IP(重启后永久生效)
vi /etc/sysconfig/network-scripts/ifcfg-eth
0

界面命令:
nmtui

6.查看系统信息
uname -a
uname -r

7.查看ID命令
id -u
id -g

8.日期
date
date +%Y-%m-%d
date +%T
date +%Y-%m-%d" "%T
9.日历
cal 2012

10.查看文件信息
file filename

11.挂载硬盘
mount
umount
加载windows共享
mount -t cifs //192.168.1.100/tools /mnt

12.查看文件大小
du -h
du -ah

13.查看分区
df -h

14.ssh
ssh hadoop@192.168.1.1

15.关机
shutdown -h now /init 0
shutdown -r now /reboot

粘滞位(t)

设置粘着位,一个文件可读写的用户并一定想让他有删除此文件的权限,如果文件设置了t权限则只用属主和root有删除文件的权限,通过chmod +t filename 来设置t权限。
同样的,当没有x权限的时候,为大写T
设置粘滞位的文件,只能由以下账户删除
超级管理员
该目录的所有者
该文件的所有者
粘滞位的设置方法
:# chmod u+t

1.查看文件夹属性
ls -ld test

2.文件夹的rwx
–x:可以cd进去
r-x:可以cd进去并ls
-wx:可以cd进去并touch,rm自己的文件,并且可以vi其他用户的文件
-wt:可以cd进去并touch,rm自己的文件

ls -ld /tmp
drwxrwxrwt的权限值是1777(sticky)

sticky bit: 该位可以理解为防删除位. 一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件.

Vim:

i
a/A
o/O
r + ?替换

0:文件当前行的开头
$:文件当前行的末尾
G:文件的最后一行开头
1 + G到第一行
9 + G到第九行 = :9

dd:删除一行
3dd:删除3行
yy:复制一行
3yy:复制3行
p:粘贴
u:undo
ctrl + r:redo

"a剪切板a
"b剪切板b

"ap粘贴剪切板a的内容

每次进入vi就有行号
vi ~/.vimrc
set nu

:w a.txt另存为
:w >> a.txt内容追加到a.txt

:e!恢复到最初状态

:1, s / h a d o o p / r o o t / g 将 第 一 行 到 追 后 一 行 的 h a d o o p 替 换 为 r o o t : 1 , s/hadoop/root/g 将第一行到追后一行的hadoop替换为root :1, s/hadoop/root/ghadooproot:1,s/hadoop/root/c 将第一行到追后一行的hadoop替换为root(有提示)

1.查找可执行的命令:

which ls

2.查找可执行的命令和帮助的位置:
whereis ls

3.查找文件(需要更新库:updatedb)
locate hadoop.txt

4.从某个文件夹开始查找
find / -name “hadooop*”
find / -name “hadooop*” -ls

5.查找并删除
find / -name “hadooop*” -ok rm {} ;
find / -name “hadooop*” -exec rm {} ;

6.查找用户为hadoop的文件
find /usr -user hadoop -ls

7.查找用户为hadoop并且(-a)拥有组为root的文件
find /usr -user hadoop -a -group root -ls

8.查找用户为hadoop或者(-o)拥有组为root并且是文件夹类型的文件
find /usr -user hadoop -o -group root -a -type d

9.查找权限为777的文件
find / -perm -777 -type d -ls

10.显示命令历史
history

11.grep
grep hadoop /etc/password

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值