Linux 常见的基础命令(持续更新)

一、linux 系统的目录结构
 
通过观察,发现可以通过学习linux ,来思考 Mac 电脑
 
 
下面这个是我的mac 电脑,很多目录是相同的。
 
 

内核引导

当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。

运行init

init 进程是系统所有进程的起点,你可以把它比拟成系统所有进程的老祖宗,没有这个进程,系统中任何进程都不会启动。
init 程序首先是需要读取配置文件 /etc/inittab。

运行级别

许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。
init进程的一大任务,就是去运行这些开机启动的程序。
但是,不同的场合需要启动不同的程序,比如用作服务器时,需要启动Apache,用作桌面就不需要。
Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。也就是说,启动时根据"运行级别",确定要运行哪些程序。

 

Linux 远程登录(ssh)  

安全外壳协议,SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议
 
Linux系统中是通过ssh服务实现的远程登录功能,默认ssh服务端口号为 22。
 
Linux 文件基本属性
      Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。
     为了保护系统的安版本全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
 
命令显示一个文件的属性以及文件所属的用户和组
ls –l
 
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。
     当为[ d ]则是目录
当为[ - ]则是文件;
若是[ l ]则表示为链接文档(link file);
若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
    若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
 
 
 
Linux文件与目录管理
         我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /。其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。
 
绝对路径:
路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。
 
相对路径:
路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法啦!
 
Linux 文件内容查看
    cat  由第一行开始显示文件内容
tac  从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
nl   显示的时候,顺道输出行号!
more 一页一页的显示文件内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行
     tail 只看尾巴几行
 
cat 命令
 
-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字节 $ 显示出来;
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
 
 
 
查看当前所在的工作目录
pwd
 
查看当前系统的时间
date
 
查看有谁在线(哪些人登陆到了服务器)
who  查看当前在线
 
查看最近的登陆历史记录
last
 
 
查看根目录下的子节点(文件夹和文件)信息
ls     
ls -al  -a是显示隐藏文件   -l是以更详细的列表形式显示
LL (一般小写)
 
 
切换目录
cd  /home
 
创建文件夹
mkdir aaa     这是相对路径的写法
 
mkdir -p aaa/bbb/ccc
mkdir  /data    这是绝对路径的写法
 
删除文件夹
rmdir   可以删除空目录
 
rm -r aaa   可以把aaa整个文件夹及其中的所有子节点全部删除
rm -rf aaa   强制删除aaa
 
修改文件夹名称
mv aaa angelababy
 
创建文件
touch  somefile.1   创建一个空文件
 
echo "i miss you,my baby" > somefile.2  利用重定向“>”的功能,将一条指令的输出结果写入到一个文件中,会覆盖原文件内容
echo "huangxiaoming ,gun dan" >> somefile.2     将一条指令的输出结果追加到一个文件中,不会覆盖原文件内容
 
用vi文本编辑器来编辑生成文件
******最基本用法
vi  somefile.4
1、首先会进入“一般模式”,此模式只接受各种快捷键,不能编辑文件内容
2、按i键,就会从一般模式进入编辑模式,此模式下,敲入的都是文件内容
3、编辑完成之后,按Esc键退出编辑模式,回到一般模式;
4、再按:,进入“底行命令模式”,输入wq命令,回车即可
 
******一些常用快捷键
一些有用的快捷键(在一般模式下使用):
a  在光标后一位开始插入
A   在该行的最后插入
I   在该行的最前面插入
gg   直接跳到文件的首行
G    直接跳到文件的末行
dd   删除行,如果  5dd   ,则一次性删除光标后的5行
yy  复制当前行,  复制多行,则  3yy,则复制当前行附近的3行
p   粘贴
v  进入字符选择模式,选择完成后,按y复制,按p粘贴
ctrl+v  进入块选择模式,选择完成后,按y复制,按p粘贴
shift+v  进入行选择模式,选择完成后,按y复制,按p粘贴
 
查找并替换(在底行命令模式中输入)
%s/sad/88888888888888     效果:查找文件中所有sad,替换为88888888888888
/you       效果:查找文件中出现的you,并定位到第一个找到的地方,按n可以定位到下一个匹配位置(按N定位到上一个)
 
 
3、文件权限的操作
 
****linux文件权限的描述格式解读
drwxr-xr-x      (也可以用二进制表示  111 101 101  -->  755)
 
d:标识节点类型(d:文件夹   -:文件  l:链接)
r:可读   w:可写    x:可执行
第一组rwx:  表示这个文件的拥有者对它的权限:可读可写可执行
第二组r-x:  表示这个文件的所属组对它的权限:可读,不可写,可执行
第三组r-x:  表示这个文件的其他用户(相对于上面两类用户)对它的权限:可读,不可写,可执行
 
 
修改文件权限
chmod g-rw haha.dat    表示将haha.dat对所属组的rw权限取消
chmod o-rw haha.dat     表示将haha.dat对其他人的rw权限取消
chmod u+x haha.dat      表示将haha.dat对所属用户的权限增加x
 
也可以用数字的方式来修改权限
chmod 664 haha.dat   
就会修改成   rw-rw-r--
 
如果要将一个文件夹的所有内容权限统一修改,则可以-R参数
chmod -R 770 aaa/
chown angela:angela aaa/    <只有root能执行>
 
目录没有执行权限的时候普通用户不能进入
文件只有读写权限的时候普通用户是可以删除的(删除文件不是修改它,是操作父及目录),只要父级目录有执行和修改的权限
 
 
添加用户
useradd  angela
添加后同时 ,修改密码才能登陆
passwd angela  按提示输入密码即可
 
 
为用户配置sudo权限
用root编辑 vi /etc/sudoers
在文件的如下位置,为hadoop添加一行即可
root    ALL=(ALL)       ALL     
hadoop  ALL=(ALL)       ALL
 
然后,hadoop用户就可以用sudo来执行系统级别的指令
[hadoop@shizhan ~]$ sudo useradd huangxiaoming
 
 
 
查看主机名
hostname
 
修改主机名(重启后无效)
hostname hadoop
 
修改主机名(重启后永久生效)
vi /ect/sysconfig/network
 
修改IP(重启后无效)
ifconfig eth0 192.168.12.22
 
修改IP(重启后永久生效)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
 
挂载外部存储设备到文件系统中
mount  
创建一个目录,用来挂载
mkdir   /mnt/cdrom      
mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom/     将设备/dev/cdrom挂载到 挂载点 :  /mnt/cdrom中
 
umount
umount /mnt/cdrom
 
 
统计文件或文件夹的大小
du -sh  /mnt/cdrom/Packages
 
查看磁盘的空间
df -h   
 
关机
halt
 
重启
reboot
 
 
******配置主机之间的免密ssh登陆
假如 A  要登陆  B
在A上操作:
%%首先生成密钥对
ssh-keygen   (提示时,直接回车即可)
%%再将A自己的公钥拷贝并追加到B的授权列表文件authorized_keys中
ssh-copy-id   B
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2021-12-26 23:24  养柱  阅读(399)  评论(0)    收藏  举报