来自教学笔记供自己方便查阅
Linux系统中常见目录功能如下:
/ 根目录;(所有的文件和目录都是从根开始的)
/bin 存放必要的命令;默认的标准Linux命令使用(root和普通用户直接使用)
/boot 存放内核以及启动所需的文件;(开启启动文件都在boot目录,vmlinuz、initrd、grub程序)
/dev 存放硬件设备文件;(存放和设备有关的文件,磁盘、打印机、光盘、驱动)
/etc 存放系统配置文件;(存放系统配置和系统服务方向的文件,默认Linux 中yum 安装httpd web服务器,主
配置文件就在/etc/目录) 系统服务和自定义服务,yum或者rpm安装都是系统服务,源码安装服务都是自定义服务。
/home 普通用户的宿主目录,用户数据存放在其主目录中; (普通用户家目录)
/lib|lib64 存放必要的运行库;(存放系统模块和系统变量文件)
/mnt 存放临时的映射文件系统,通常用来挂载使用;
/media 这个目录也是用来挂载使用。
/proc 存放存储进程和系统信息;(查看进程信息、内核信息,cpu状态、内存状态)
/root 超级用户的主目录;(root用户的家目录)
/sbin 存放系统管理程序;(和bin类似都是存放命令,但是/sbin/目录中存储的系统管理程序)
/tmp 存放临时文件;有的Linux系统会对这个目录进行定期清理。
/usr 存放应用程序,命令程序文件、程序库、手册和其它文档;(用户管理文件)
/var 系统默认日志存放目录。(用户存放系统变量文件、日志文件)
常用命令练习
1.cd命令主要用于目录切换,例如:cd /home切换至/home目录,cd /root表示切换至/root目录 ;cd ../切换至上一
级目录;cd ./切换至当前目录。
[root@www-jfedu-net network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@www-jfedu-net network-scripts]# cd ../../../home/www/
[root@www-jfedu-net www]# pwd
/home/www
[root@www-jfedu-net www]# cd -
/etc/sysconfig/network-scripts
[root@www-jfedu-net network-scripts]# cd /home/www/
[root@www-jfedu-net www]# pwd
/home/www
目录的相对路径和绝对路径:
绝对路径表示:一个从根开始的完整路径 cd /etc/sysconfig/network-scripts
相对路径表示:相当于当前路径进入的另一个目录 cd ../../../home/www/其中.和..可以理解:. 代表当前目录,.. 代表上一级目录。
[root@www-jfedu-net www]# cd .
[root@www-jfedu-net www]# cd ..
[root@www-jfedu-net home]#
2.
ls命令主要用于浏览目录下的文件或者文件夹,使用方法参考:ls ./ 查看当前目录所有的文件和目录,ls -a
查看所有的文件,包括隐藏文件,以.开头的文件
ls 查看当前目下文件或者目录
ls -l 以长格式查看文件权限 可以简写为ll 命令
ls -lh 以存储单位显示文件格式
ls -a 查看所有的文件,包括隐藏文件,以.开头的文件
3.
pwd命令主要用于显示或者查看当前所在的目录路径
4.
mkdir命令主要用于创建目录,用法mkdir dirname,命令后接目录的名称
mkdir -p jfedu7/a/b/c/d/e/ -p 参数 递归创建。
5.
rm 命令主要用于删除文件或者目录,用法 rm –rf test.txt (-r表示递归,-f表示强制),
[root@www-jfedu-net ~]# rm -v jfedu
rm: remove regular file ‘jfedu’? y
removed ‘jfedu’
6.
cp 命令主要用于拷贝文件,用法,cp old.txt /tmp/new.txt ,常用来备份,如果拷贝目录需要加-r参数
[root@www-jfedu-net ~]# cp 1.txt 2.txt
[root@www-jfedu-net ~]# ll 1.txt 2.txt
-rw-r--r-- 1 root root 8 Jul 25 14:38 1.txt
-rw-r--r-- 1 root root 8 Aug 9 21:55 2.txt
[root@www-jfedu-net ~]# ll jfedu7 -d
drwxr-xr-x 3 root root 4096 Aug 9 21:51 jfedu7
[root@www-jfedu-net ~]# cp -r jfedu7 jfedu9
cp -a 参数 等于 cp -pdr 参数
-p 拷贝之后保留源参数所有的权限和时间
-d 保留链接
-r cp 目录递归。
7.
mv 命令主要用于重命名或者移动文件或者目录,用法, mv old.txt new.txt
[root@www-jfedu-net jfedu1]# mv jfedu jfedu666
[root@www-jfedu-net jfedu1]# ll jfedu666
-rw-r--r-- 1 root root 0 Aug 9 22:04 jfedu666
[root@www-jfedu-net jfedu1]# ls jfedu
ls: cannot access jfedu: No such file or directory
[root@www-jfedu-net jfedu1]# ls
a jfedu666 welcome.conf[root@www-jfedu-net jfedu1]# mv jfedu666 /data/jfedu777
[root@www-jfedu-net jfedu1]# ll /data/jfedu777
-rw-r--r-- 1 root root 0 Aug 9 22:04 /data/jfedu777
8.
touch 命令主要用于创建普通文件,用法为touch test.txt,如果文件存在,则表示修改当前文件时间
touch 创建文件,可以用stat 命令查看文件属性。
[root@www-jfedu-net jfedu1]# stat jfedu
File: ‘jfedu’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 406291 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-08-09 22:07:56.437758771 +0800
Modify: 2019-08-09 22:07:56.437758771 +0800
Change: 2019-08-09 22:07:56.437758771 +0800
Birth: -
#Access time : 文件的访问时间 (cat、less)
#Modify time : 文件内容的修改时间 (vim、echo、sed)
#Change time : 文件权限的或者属性的修改时间,文件大小 (chmod、chown)
[root@www-jfedu-net jfedu1]# touch -t 1908010101 jfedu
9.
cat 命令主要用于查看文件内容,用法 cat test.txt 可以查看test.txt内容
cat test.txt 查看文件内容
-n 参数 查看文件内容行号
cat 重定向用法
cat jfedu
66666666666666666666666
cat >> jfedu << eof
> 覆盖文件文件内容
>> 追加文件内容
[root@www-jfedu-net jfedu1]# cat >> jfedu <<eof
> 777777777777777777
> eof
[root@www-jfedu-net jfedu1]# cat jfedu
6666666666666666666
777777777777777777
[root@www-jfedu-net jfedu1]# cat > jfedu << eof
> 88888888888
> eof
[root@www-jfedu-net jfedu1]# cat jfedu
88888888888
10
head 命令 和 tail 命令 分别用于查看文件的前面的内容和后面的内容
[root@www-jfedu-net ~]# cat -n /etc/passwd|head
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
[root@www-jfedu-net ~]# cat -n /etc/passwd|tail
25 nginx:x:996:993:nginx user:/var/cache/nginx:/sbin/nologin
26 mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
27 apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
28 dockerroot:x:995:992:Docker User:/var/lib/docker:/sbin/nologin
29 gitlab-www:x:994:991::/var/opt/gitlab/nginx:/bin/false
30 git:x:993:990::/var/opt/gitlab:/bin/sh
31 gitlab-redis:x:992:989::/var/opt/gitlab/redis:/bin/false
32 gitlab-psql:x:991:988::/var/opt/gitlab/postgresql:/bin/sh
33 tss:x:59:59:Account used by the trousers package to sandbox the tcsd
daemon:/dev/null:/sbin/nologin
34 www:x:1000:1000::/home/www:/sbin/nologin
#查看后20行:cat -n /etc/passwd|tail -20
#tail -f 参数 可以动态查看文件后面追加的内容。
用户权限
1.echo命令主要用于打印字符或者回显,例如输入echo ok,会显示ok, echo ok > test.txt 则会把ok字符覆盖
test.txt内容。>表示覆盖,原内容被覆盖,>>表示追加,原内容不变。
2. df命令常用于磁盘分区查询,常用命令df –h,查看磁盘分区信息
[root@zabbix_server ~]# echo "www.jfedu.com"
www.jfedu.com
[root@zabbix_server ~]# echo "www.jfedu.com" > 1.txt
[root@zabbix_server ~]# cat 1.txt
www.jfedu.com
> 表示覆盖,原内容被覆盖
>> 表示追加,原内容不变
-e :增加echo 的扩展参数,使用\n或者颜色才会生效。
\n :换行且光标移至行首;
echo -e "\033[36mPlease Select\nInstall Menu follow:\033[0m"
\ :反斜杠默认是转义
echo -e \$PWD :当前示例中将变量转换成字符原意
echo -e $PWD :当前示例中直接打印这个变量
变量打印实例:
[root@zabbix_server ~]# echo $PWD
/root
[root@zabbix_server ~]# echo "$PWD"
/root
[root@zabbix_server ~]# echo '$PWD'
$PWD
单引号:保持打印原意字符
双引号:保持打印变量的含义
不加单引号或者双引号:默认打印出变量
-H, --si 同-h,但是强制使用1000而不是1024;
-T, --print-type 显示文件系统类型;
-t, --type=类型 只显示指定文件系统为指定类型的信息;
-i, --inodes 显示inode 信息而非块使用量;3. du命令常用于查看文件在磁盘中的使用量,常用命令du -sh,查看当前目录所有文件及文件及的大小
4. VI或者VIM 是一个命令行界面下的文本编辑工具
Linux中主流的文本编辑器包括:VI、Vim、Sublime、Emacs、Light Table、Eclipse、Gedit等。
[root@zabbix_server ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 xfs 20G 1.7G 18G 9% /
devtmpfs devtmpfs 227M 0 227M 0% /dev
tmpfs tmpfs 237M 0 237M 0% /dev/shm
tmpfs tmpfs 237M 13M 224M 6% /run
tmpfs tmpfs 237M 0 237M 0% /sys/fs/cgroup
/dev/sr0 iso9660 4.3G 4.3G 0 100% /mnt
/dev/sda1 xfs 197M 103M 95M 52% /boot
tmpfs tmpfs 48M 0 48M 0% /run/user/0
Filesystem :设备名称 /dev/sda1 /dev/sda2
Type :文件系统类型
Size: 总的大小
Used:已经使用多少
Avail :剩余多少
Use% :已经使用百分比
Mounted on:挂载的目录
#查看磁盘inode值,inode 用来标识磁盘中每一个文件
[root@zabbix_server ~]# df -hi
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 9.7M 48K 9.7M 1% /
devtmpfs 57K 378 57K 1% /dev
tmpfs 60K 1 60K 1% /dev/shm
tmpfs 60K 513 59K 1% /run
tmpfs 60K 16 60K 1% /sys/fs/cgroup
/dev/sr0 0 0 0 - /mnt
/dev/sda1 100K 327 100K 1% /boot
tmpfs 60K 1 60K 1% /run/user/0
du -sh /etc/
“5dd”5表示总共5行,删除光标所在后的5行,包含光标行;
“d$” $"代表行尾,删除到行尾的内容,包含光标;
“2yy”表示复制光标及后2行,包括光标行;
“%d” %代表全部或者全局,%d表示删除文本所有的内容,也即是清空文档所有的内容。
vim 模式:
命令行模式;
文本输入模式;
末行模式。在Linux Shell终端下默认执行vim命令,按Enter键后: 점
默认进入命令行模式; 점
在命令行模式按i进入文本输入模式; 점
按ESC进入命令行模式;
按:进入末行模式。
vim编辑常用参数:
命令行模式:
yy 复制光标所在行;
nyy 复制n行;
p,P 粘贴;
u 撤消上一次;
U 撤消当前所有;
dd 删除整行,剪切整行;
ndd 删除n行,剪切n行;
gg 快速返回首行
GG 快速返回末行
shift + 6 移动到行首
shift + 4 移动到行末
d$ 删除到行末
d^ 删除到行首
dG 删除从光标所在行到未行
切换到文本输入模式命令aio,AIO
a 从光标所在字符后一个位置开始录入;
A 从光标所在行的行尾开始录入;
i 从光标所在字符前一个位置开始录入;
I 从光标所在行的行首开始录入;
o 跳至光标所在行的下一行行首开始录入;
O 跳至光标所在行的上一行行首开始录入;
末行模式参数:
:10000 快速移动到10000行
:w 保存;
:q 退出;
:s/x/y 替换1行;
:wq 保存退出;
1,5s/x/y 替换1,5行;
:wq! 强制保存退出;
:x 保存;
/word 从前往后找,正向搜索;
?word 从后往前走,反向搜索;
:s/old/new/g 将old替换为new,前提是光标一定要移到那一行;
:%s/old/new/gc 替换时手动替换
#%和不加% :% 代表全局,没有% 代表当前行。
:s/old/new 将这一行中的第一次出现的old替换为new,只替换第一个;
:1,$s/old/new/g 第一行到最后一行中的old替换为new;
:1,100 s/old/new/g 第1行到100行中的old替换为new;
:1,2,3 s/old/new/g 第一行第二行第三行中的old改为new;
:%#25/tcp#26/tcp#gc 使# 进行替换。
其中替换用到斜杠,也可以使用#,@,都可以做替换字符1.3 用户权限
创建一个用户:
Linux系统用户是根据用户ID来识别的,默认ID长度为32位,从默认ID编号从0开始,限制60000用户
Centos 6.x Linux用户分总共分为三种,分别如下: 점
root用户 (ID 0) 점
系统用户 (ID 1-499)
普通用户 (ID 500以上)
Centos 7.x Linux用户分总共分为三种,分别如下: 점
root用户 (ID 0) 점
系统用户 (ID 1-999)
普通用户 (ID 1000以上)
root用户系统中超级管理员
系统用户:管理系统上面的系统服务
普通用户:用户分配给普通服务使用。
---------------------
Linux系统中的每个文件或者文件夹,都有一个所属用户及所属组,主要为了安全,对于系统资源进行细化和限定。
Linux操作系统用户的特点如下: 점
每个用户拥有一个UserID,操作系统实际读取的是UID,而非用户名; 4
每个用户属于一个主组,属于一个或多个附属组,一个用户最多有31个附属组;一个用户如果有多个附属组,这个
用户就会拥有多个附属组的组权限。 점
每个组拥有一个GroupID,也就是GID; 점
每个进程以一个用户身份运行,该用户可对进程拥有资源控制权限,进程就是服务的对应开启程序产生。 4
每个可登陆用户拥有一个指定的Shell环境(命令环境)/bin/bash,/sbin/nologin.
[root@zabbix_server ~]# useradd echo
[root@zabbix_server ~]# id echo
uid=1000(echo) gid=1000(echo) groups=1000(echo)
[root@zabbix_server ~]# passwd echo
Changing password for user echo.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
家目录:默认创建的用户都在/home 目录下。
[root@zabbix_server ~]# ls /home/
echo
[root@zabbix_server ~]# useradd jfedu -d /opt/jfedu -u 8888 -G echo -s /sbin/nologin
[root@zabbix_server ~]# id jfedu
uid=8888(jfedu) gid=8888(jfedu) groups=8888(jfedu),1000(echo)
bash 命令环境登录信息:
.bash_profile:每个用户都可使用该文件输入专用于自己使用的Shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
.bashrc:该文件包含专用于你的bash Shell的bash信息,当登录时以及每次打开新的Shell时,该该文件被读取.
.bash_logout:当每次退出系统(退出bash Shell)时,执行该文件.
常见使用ll 命令查看到文件权限首字母可以判断文件类型
- 普通文件
d:目录文件
l:连接文件
b:块设备文件
c:字符设备文件
p:管道符文件