Linux入门基本指令

来源:互联网 发布:软件专业就业工资 编辑:程序博客网 时间:2024/05/22 03:25

Linux区分大小写,所有内容以文件的形式保存呢,包括硬件。补考扩展名区分文件。靠扩展名。

 

图形界面不稳定,多了界面程序就多了相应的服务,增加了被攻击的可能性。

字符界面占用的资源少。

 

格式化的目的就是写入文件系统,先将分区分成大小相同的数据块block,再生成一张相对于的索引表。

 

文件系统,windows  FAT16 单个文件大小为2G

 FAT32 单个文件大小为4G

Linux  etx3 etx4

 

根目录下和usr目录下都有bin和sbin目录,这四个目录都是用来保存系统命令的,其中bin是普通用户的命令,sbin是root用户的。

各个目录的作用

/boot 存放内核和启动所需的文件

/dev 存放设备文件

/etc 存放系统配置文件

/home 用户文件的主目录。(用户文件存放在其主目录)

/lib 存放必备的运行库

/mnt 存放临时映射文件系统。我们常把软驱和光驱挂载在这里面的子目录下

/sym /proc 存放存储进程和系统命令

/root 超级用户的主目录

/tmp 存放临时目录

/var 包含系统产生经常变化的文件

/usr 包含一般不需要修改的应用程序和其他文档

/lost+found 用作分区数据修复,每个独立的分区都有

 

/root/insatll.log 存放了安装在系统中的软件包及其版本信息

/root/anaconda-ks.cfg 记录了安装配置。(网络批量安装,如果有10000台电脑,那么只要配置一台就好了,其余的依靠这个文件配置)

 

[root@localhost ~]#

root指的是当前的登陆用户

Localhost指的是主机名

~指的是当前所在的目录

#指的是当前用户是管理员

$指的是普通用户

 

 

操作文件目录相关指令 各个可选项可以结合使用如:ls -laih 人性化显示隐藏文件的详情

ls: list 列出当前目录下的文件

ls -l:查看所有文件详情

ls -a:显示隐藏文件

ls -i:显示文件的inode

ls -d:查看目录属性

ls -lh:人性化显示 (文件的大小)

 

文件类型

当用ls -l的时候,会发现第一列是这样的 -rw-r--r--,这就是文件的权限,默认占10位。

第一位:-代表的是文件 d代表的是目录 l代表的是链接文件

其他9位每三位分为一组,第一组是所有者对该文件的权限,第二组是所属组对该文件的权限,第三组是其他人对该文件的权限。

 

cd ~ 进入当前的家目录  

cd - 进入上一次的目录 

cd .. 返回上一级

cd . 当前目录

 

 

建立目录

mkdir 目录名   make diretcory

建立两个新目录(目录下又有目录,而且两个都不存在)

mkdir -p /abc/bcd

 

删除目录 remove directory

rmdir 空目录 (不常用)

常用的

rm 文件 (会问你真的删除吗?)

rm -f 文件 (不会问) -f是强制的意思

rm -rf 目录  

 

复制 copy

cp 文件 目的地

cp -r 目录 目的地

cp -a 文件 目的地

-a指的是源文件与目标文件完全一样,时间都一样

 

 

剪切 move

mv 源文件(目录) 目的地

如何是在相同的目录下就是改名字 

 

创建文件

touchu 文件名   创建了一个空的文件

vim 文件名  进入了vim的编辑器

 

vim + 文件名   打开文件后把光标定位到最后一行

vim +3 文件名  打开文件后把光标定位到最后3行

vim +/xxx 文件名  打开文件后把光标定位到第一次出现xxx的哪行

vim 文件名1 文件名2  同时打开或创建多个文件

 

Visual interface (vi)

该编辑器分为三种模式

命令模式 command mode 等待用户输入命令(复制 剪切)进入vim下面的默认模式

输入模式 inster mode 等待用户输入

低行模式 lastline mode 等待输入保存 退出等指令

 

命令模式下的指令

光标左移 h 光标右移 l 光标上移 k 光标下移 j

下翻页ctrl+f  上翻页ctrl+b  下翻半页ctrl+d  上翻半页ctrl+u

删除光标所在行 dd

复制光标所在行 yy

在光标下行粘贴 p

在光标上行粘贴 P

在光标所在行的下方插入一行,并进入输入模式 o

进入输入模式 i

 

低行模式下的命令  按Esc进入 

:w 保存

:q 退出

:wq 保存并退出

:q! 不保存强制退出

:ls 列出当前打开的文件

:数字  光标快速定位到这行

/xxx 从光标开始找xxx

?Xxx 从光标开始向前找xxx

:n 下一个文件

:N 上一个文件

:prev 上一个文件

 

输出文件

cat 文件名

 

 

链接 link

硬链接 ln 源文件 目标文件

特征:拥有与源文件相同的数据块和inode,可以看做同一个文件

不能跨分区和对目录使用

改变任意一文件都会影响其他

删除任意一个文件,另一个文件不受影响

用作备份

 

软链接(soft) ln -s 源文件 目标文件  

特征 :拥有自己独立的数据块与iNode

 查找的时候首先会根据自己的inode找到相应的数据块,数据块里面记录着源文件的inode和名字,再根据源文件的inode找到数据块,获得内容。

删除了源文件就没用了,相当于快捷方式。

 

文件搜索

locate 文件名    可以模糊搜索

这样搜索效率高,因为他是按照/var/lib/mlocate中的数据库按文件名搜索

但是不能实时更新,也就是你当时创建了一个文件后,你不能马上locate出来,

但可以用updatedb强制更新这个数据库。

他的搜索规则是按照/etc/update.conf文件的规定。打开这个文件第一行有个yes,意思是下面的规则生效,规则规定了不搜索的文件系统,文件类型,路径。也就意味着有些目录是更新不出来的 比如 /tmp

 

find 范围 条件 文件名  避免大范围搜索  很慢

如 find / -name 文件名   在根目录下按文件名查找

-user        按用户查找

-nouser 按无用户文件查(垃圾文件)但是内核和外来设备光盘优盘 也会产生,proc和sys下的不要删

-iname    不区分大小写按名字查找

-mtime +10  10天前的文件 m按修改文件的内容

-ctime 10   第10天当天修改的文件 c按改变文件的属性

-atime -10  10天内修改的文件   a 按访问时间

-size +25k   大于25k的文件  小写k 大写M

-inum   按inode查找

-size +20k -a -size -50k 大于20k并且小于50k

。。。。。。。。。-o .........    或者..........


条件 -exec ls {}\; 按条件查出来的结果给ls命令用

 

不能模糊查询 但可以用通配符

find / -name “asd”*

双引号一定要有*代表任意内容 ?代表任意一个字符  

[]任意一个人中括号内的字符 

 

搜索命令的命令 查看命令所在位置和帮助文档所在的位置

whereis 命令

 -b 只查可执行文件的位置

-m  只查帮助文档

whatis  命令  看这个命令是干嘛的

which 命令 多显示了别名 没有帮助文档

man 命令 获取该命令的帮助 比上面的详细 按q退出 按/-xxx查找xxx b n翻页

help 命令 只能获取内部命令 如cd

 

cd是shell自带的命令,用上面的只能找到外部安装的。当运行一个命令时,会去环境变量里面的文件目录里面找 $PATH  

 

字符串搜索命令

grep “字符串” 文件名 

      -i 不区分大下写

-v 排除字符串

字符串可用正则表达式

 

 

压缩文件

.zip压缩 

zip 压缩文件名.zip  源文件

   -r 压缩目录

unzip 压缩文件    解压  

 

.gz压缩

gzip 源文件   源文件会消失

-c 保留源文件

-r 压缩目录里面的所有文件  但不压缩目录

gzip -d 压缩文件   解压

gunzip 压缩文件   解压

 

 

 

.bz2压缩

bzip2 源文件  不保留源文件

-k   保留

-d   解压

bunzip2   解压文件   

不能压缩目录

 

解决上面两个不能压缩目录的问题,将目录弄成tar包再压缩

tar -cvf 打包文件名 源文件 只是打包成了tar包 

-c 打包

-v 显示过程

-f 指定打包后的文件

 -xvf  解压

 

压缩成tar.gz

tar -zcvf 压缩文件名 源文件

-zxvf 解压

 

压缩成tar.z2

   tar -jcvf 压缩文件名 源文件

-jxvf 解压

 

关机与重启

shutdown now  马上关机

-h  时间   到时间了就关机

-r  时间 就重启

-c 取消前一个关机命令

 

 当输入这个命令后,系统就会执行,因此你不能继续输入命令,但只要加一个&j就可以了 如  shutdown -h 12:12 &

 

其他关机命令 都不常用  不安全

halt poweroff init 0

reboot        init 6 重启命令

 

init 6 这个6指的是 系统运行级别

0 关机

1 单用户(如windows的启动安全模式  忘记密码可以用)

2 不完全多用户 不含nfs服务

3 完全多用户 就是当前操作的字符界面

4 未分配

5 图形界面

6重启

 

runlevel 查看当前运行的级别 显示 N--now 即从上一个级别到这个级别

/etc/inittab 里面的最后一行定义了系统的默认运行级别

 

退出登录命令 logout

当管理远程服务器的时候,如果登录人数有限制的话,你不退出,就会占了别人的登录 

查看还有谁在登录 who

查看当前登录和过去登录的用户信息 last  读取的是/var/log/wtmp里面的数据,不能直接打开,是乱码

查看所有用户最后一次登录时间 lastlog 读取的是/var/log/lastlog里面的数据,

 

 

挂载

可以简单的理解为分配盘符,而盘符只是windows的说法,linux的说法是挂载点。

 

查看系统中已经挂载好的设备  mount 

根据/etc/fstab的内容开机自动挂载

 

挂载命令的格式

mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点

 

挂载光盘

1 建立挂载点(建立放光盘的目录)mkdir /mnt/cdrom

2 挂载光盘 mount -t iso9660 /dev/sr0 /mnt/derom 

3 卸载 umount 设备文件名或者挂载点

 

挂载u盘

1 查看U盘设备文件名

2 挂载 mount -t vfat /dev/sdb1 /mnt/usb

 

有些u盘可能是NAFS的文件系统,Linux不支持

 

 

Shell就是我们操作的字符界面,它把你输入的命令翻译给内核听,再将内核的信息翻译给你看。

还是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序。

查看当前所运行的shell echo $SHELL Linux 中典型的默认 shell 是 /bin/bash

ctrl + l 清屏

ctrl + a 到开头

ctrl + e 到行尾

ctrl + u 删一行

ctrl + c 强制终止某些命令

 

 

脚本执行方式

名字.sh

必须以 #!/bin/bash 开头

程序可以直接调用Linux的命令

echo "" 输出一行 如果有空格就要加双引号

echo -e “” 可以识别转义字符

echo -e “\e[1;31m asdasdasd \e[0m”

固定的格式 1为开启颜色 31m为红色 红后面的是固定的

 

 

执行 可以赋予执行权限 chmod 755 文件 再执行

也可以直接 bash 文件名  

 

变量赋值 a=123

echo $a 输出123

echo ‘$a’ 输出$a

echo “$a” 输出123

   a=`ls` 反引号 1旁边的那个 先运行ls命令 再将结果给a

         a=$(ls).......

 

查看别名 alias

设置别名 alias 别名 = ‘命令’ 这样不是永久的 关机就没了

设置永久的 在文件/root/.bashrc 把刚刚的写进来

看是谁登陆 写自己的家目录

要重启后才能生效,或者source .bashrc 重新调用文件一次

删除别名 unalias 别名  不是永久  永久的删文件里面的

 

查看历史命令

在文件(家目录)~/.bash_history

history  查看历史

-c 清空历史

-w 将当前这条history写入文件,不然的话你查看文件会看不到最后一条

文件默认保存1000条历史命令,在文件/etc/profile中更改HISIZE=...

 

输出重定向

保存正确的输出:

命令 > 文件 会覆盖内容

命令 >> 文件 不会

保存错误的命令输出(就是那种不小心打错命令了)

命令 2>文件 会覆盖 注意没有空格

命令 2>>文件 不会......

 

命令 >> 文件 2>&1 或者 命令 &>文件 将正确的与错误的都写入一个文件

命令 >> 文件1 2>>文件2  将正确的写入1 错误的写入2

 

多命令顺序执行

命令1;命令2;命令3;。。。。 每个依次执行

命令1 && 命令2 只有1正确执行,才能执行2

命令1 || 命令2 只有1不正确执行,才能执行2

 

管道符

命令1 | 命令2  1的输出作为2的操作对象

如 ls /etc | more 分页显示查询内容

注意  more本来是用来操作文件内容的,但是在管道符中可以操作文件

但只能下翻页   用less可以上下翻

 

查看磁盘分区使用状况

df -l 默认项  显示本地磁盘

-a 显示所有文件系统

-h 以1024进制显示

-H 以1000进制显示

-t 显示指定类型的文件系统的分区

-T 显示分区类型

-x 不显示指定类型的文件系统的分区

 

 

主分区与扩展分区的总数不能超过4个

扩展分区最多只能有1个

扩展分区不能直接存储数据,要建立逻辑分区才可以

 

当磁盘空间满了后就要在原硬盘的基础上添加新的硬盘,但是必须对硬盘进行分区,格式化,挂载后才能使用。

用户:使用操作系统的人

用户组:具有相同系统权限的人

 

1.创建性感的妹子组:groupadd sexy(组名)

 2.修改用户组的名称:groupmod -n market(新组名) sexy(原组名)

 3.修改组编号:groupmod -g 668 market

 4.创建组名为boss的用户组,组编号为888:groupadd -g 888 boss

 5.删除用户组:groupdel market

 6.用户组里添加用户:useradd -g sexy(组名) sdf(用户名)

 7.创建用户时,指定用户的个人文件夹:useradd -d /home/xxx imooc

 8.给用户添加备注:usermod -c dgdzmx(备注信息) sdf(用户名)

 9.修改用户名:usermod -l cls(新用户名) sdf(原用户名)

 10.给cls指定新文件夹:usermod -d /home/cls cls

 11.修改用户所属用户组:usermod -g sexy(现在用户组) imooc(用户名)

 12.暂时禁止普通用户登录服务器:touch /etc/nologin

 

passwd -l 用户名 -->锁定帐户

 passwd -u 用户名 -->解锁用户

 passwd -d 用户名 -->删除帐户密码,可以无密码登录

 

 为用户添加附属组:gpasswd -a 用户名 附属组名

 将用户切换至附属组:newgrp 附属组(必须本身的用户切换)

 将用户从附属用户组中删除:gpasswd -d 用户名 用户组名

 创建用户并指定其主、附属组:useradd -g group1(主组名) -G group2(附属组名) group3...

 gpasswd 组名 -->给用户组设置组密码(执行命令后会有输入密码的提示)

 

/etc/group 存了用户组的信息

组名:密码占位符:编号:用户列表

/etc/gshadow 用户组密码信息

组名:密码:管理者:用户列表

/etc/passwd 当前所有用户信息

用户名:密码占位符:编号: 组编号:用户信息:用户主目录:shell类型

/etc/shadow 所有用户密码

用户名:密码

 

 

su 用户名   切换至该用户

0 0
原创粉丝点击