整理了一些Linux常用的基本命令
一、日常操作命令
1、查看网络连接
ping
2、查看当前所在的工作目录 (print working directory) X
pwd
3、查看当前系统的时间
date
4、查看有谁在线(哪些人登陆到了服务器)
who 查看当前在线
whoami 查看当前登录的用户名
last 查看最近的登陆历史记录
二、文件系统操作
1、ls与ll的区别:
ls 不换行显示当前文件夹下的文件夹或文件的名字
ll 换行显示当前文件夹下的文件夹或文件的名字,以及这些文件夹或者文件的详细信息
ls / 查看根目录下的子节点(文件夹和文件)信息 (list)
ls -al -a是显示隐藏文件 -l是以更详细的列表形式显示 (list all)
ll 换行显示文件
ll -h 换行显示文件并显示其大小(带单位)
2、切换目录 (change directory)
cd /home 切换到当前用户的家目录 绝对路径
cd ~
如果是root用户,cd ~ 相当于 cd /root
如果是普通用户,cd ~ 相当于cd /home/当前用户名
3、创建文件夹 (make directoriy)
mkdir aaa 这是相对路径的写法,在当前目录下创建目录aaa
mkdir -p aaa/bbb/ccc 在当前目录创建目录aaa,并在aaa下创建bbb,在bbb下创建ccc
mkdir /data 这是绝对路径的写法,/代表根,意思就是在根目录下创建了data目录
4、创建文件(创建一个空文件)
文件不能用命令进入,文件夹可以
touch 文件名.后缀
eg:text.1
5、echo往文件中添加内容
echo "i miss you,my baby" > text.1 覆盖:利用重定向“>”的功能,将一条指令的输出结果写入到一个文件中
echo "huangxiaoming ,gun dan" >> text.1 追加:...
6、cat查看文件中的内容
cat text.1
7、删除文件夹 (不能删除空目录)
rmdir
注1:一般不用这个命令,因为它只能删除空目录,使用不太方便
eg:
rmdir aaa
rmdir:删除“aaa”失败 目录非空
rmdir aaa/bbb/ccc/
ls aaa/bbb 看不到ccc目录了,说明ccc目录已经被删除了
8、rm 删除文件(remove),而不是文件夹
-r 断递删除
-f 强制删除文件或目录 (force)
eg:
rm -r aaa 可以把aaa整个文件夹及其中的所有子节点
rm -rf aaa 强制删除aaa文件夹下所有文件
注1:rm aaa报错
rm :无法删除 "aaa" :是一个目录
9、mv 修改文件夹或者文件名称;移动文件或目录;
1)mv 源文件/源目录 目标文件/目标目录 把文件夹aaa的名称修改成bbb
2)mv 源文件 目标目录 把源文件移动到目标目录下
3)mv 源文件 目标目录/文件名 把源文件移动到目标目录下,并修改文件名
eg:
mv text.1 bbb 把文件bbb.1文件移动到目录bbb下
mv text.2 bbb/text.2.bak 把文件text.1移动到目录bbb下,并修改名字为text.2.bak
10、用vi文本编辑器来编辑生成文件
最基本用法
vi text.3 vim text.3
1.首先会进入"一般模式",此模式只接受各种快捷键,不能编辑文件内容
2.按i键,就会从一般模式进入编辑模式,此模式下,敲入的都是文件内容
3.编辑完成之后,按Esc键退出编辑模式,回到一般模式;
4.再按冒号,进入"底行命令模式",输入wq命令,回车即可
总结:按 i 进入编辑模式后,且编辑完毕后,
1)按 esc,在按:wq,即可保存退出;
2)按 esc,在按:wq!,即强制保存保存并退出;
3)按 esc,在按:q!,即可不保存强制退出;
一些常用快捷键(在一般模式下使用):
i 在光标前一位开始插入
I 在该行的最前面插入
a 在光标后一位开始插入
A 在该行的最后插入 重点
gg 直接跳到文件的首行
G 直接跳到文件的末行 重点
dd 删除行,如果 5dd ,则一次性删除光标后的5行
yy 复制当前行, 复制多行,则 3yy,则复制当前行附近的3行
p 粘贴(右键)
v 进入字符选择模式,选择完成后,按y复制,按p粘贴
ctrl+v 进入块选择模式,选择完成后,按y复制,按p粘贴
shift+v 进入行选择模式,选择完成后,按y复制,按p粘贴
****查找并替换(底行命令模式):
%s/sad/88888 效果:查找文件中所有sad,替换为88888888888888
/you 效果:查找文件中出现的you,并定位到第一个找到的地方,按n可以定位到下一个匹配位置(按N定位到上一个)
三、文件权限的操作
1、linux文件权限的描述格式解读
eg:以drwxrw-r--为例
d,-rw,r--,r-- (也可以用二进制表示 111 101 101 --> 还可以用十进制表示 755)
d:标识节点类型(d:文件夹 -:文件 l:链接)
r:可读,即能显示内容
w:可写,即可修改内容
x:可执行,即可当做程序运行
第1位:文件类型(d:文件夹 -:文件 l:链接)
第2-4位rwx: 表示这个文件的拥有者对它的权限:可读可写可执行 文件拥有者:当初创建这个文件的用户
第5-7位rw-: 表示这个文件的所属组对它的权限:可读,可写,不可执行 用g(group)表示
第8-10位r--: 表示这个文件的其他用户对它的权限:可读,不可写,不可执行 用o(other)表示
第2-10位: 表示所有的权限,用a(all)表示
2、修改文件权限 (change mode)
简单案例: chmod u+x hello.sh 表示将hello.sh对所属用户的权限增加x (u:user)
chmod g-rw hello.sh 表示将hello.sh对所属组的rw权限取消 (g:group) chmod
o-rw hello.sh 表示将hello.sh对其他人的rw权限取消 (o:other)
也可以用数字的方式来修改权限:
chmod 664 hello.sh 就会修改成rw-rw-r--
chmod 777(111 111 111) hello.sh 就会修改成rwxrwxrwx
chmod -R 770 aaa 递归修改aaa文件夹中的所有文件的权限为770 rw-rw----
chown -R dyh:dyh aaa 递归更改aaa文件夹的所有者为用户dyh(只有root能执行)
111 = 4+2+1=7
6=110
4=100
eg:创建一个脚本,并给它可执行权限
touch hello.sh
vi hello.sh
内容如下:
#!/bin/bash
echo "hello!!!"
运行脚本: ./hello.sh
报错:没有执行权限
chmod 777 hello.sh
输出"hello!!!"
注1:目录没有执行权限的时候普通用户不能进入
注2:文件只有读写权限的时候普通用户是可以删除的(删除文件不是修改它,是操作父及目录),只要父级目录有执行和修改的权限
四、基本的用户管理
1、添加用户命令:useradd
-u 指定组ID(uid)
-g 指定所属的组名(gid)
-G 指定多个组,用逗号“,”分开(Groups)
-c 用户描述(comment)
-e 失效时间(expire date)
-d 指定主目录
eg:简单创建一个用户
useradd dyh
eg:建立一个新用户账户dyh,并设置UID为544,主目录为/usr/dyh,属于users组:
useradd -u 544 -d /usr/dyh -g users -m usr
2、修改密码
passwd 用户名
eg:修改dyh用户的密码为1234
passwd dyh
按提示输入密码(密码长度8位以上)
3、删除用户命令:userdel(user delete)
-r 删除账号时同时删除目录(remove)
userdel 用户名
4、切换用户
su
eg:切换到dyh用户
su dyh
5、给普通用户临时root权限
sudo
eg:给dyh用户临时root权限(执行完这条指令后从root身份回到普通用户dyh的身份)
sudo useradd dyh
6、添加组:groupadd
-g 指定gid
-n 更改组名(new group)
7、删除组:groupdel
groupdel 组名
8、为用户配置sudo权限
root用户编辑/etc/sudoers文件
vi /etc/sudoers
在文件的如下位置,为hadoop添加一行即可
root ALL=(ALL) ALL
dyh ALL=(ALL) ALL
然后,hadoop用户就可以用sudo来执行系统级别的指令
[hadoop@shizhan ~]$ sudo useradd huangxiaoming
五、系统管理操作
1、查看ip地址
ip addr
2、查看网络配置
ifconfig
3、查看主机名
hostname
4、修改主机名(重启后无效)
hostname hadoop
5、修改主机名(重启后永久生效)
vi /etc/sysconfig/network
6、重启网络服务
service network restart
systemctl 服务名 restart /start stop
7、修改IP(重启后无效)
ifconfig eth0 192.168.12.22
8、修改IP(重启后永久生效)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
9、配置hosts文件,识别主机名
vi /etc/hosts
eg:编辑host文件 一个ip对应解析一个主机名
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.194.128 shizhan
192.168.194.129 shizhan01
10、关机
halt
11、重启
reboot
12、挂载外部存储设备到文件系统中
mkdir /mnt/cdrom 创建一个目录,用来挂载
mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom/ 将设备/dev/cdrom挂载到 挂载点 : /mnt/cdrom中
umount
umount /mnt/cdrom
13、统计文件或文件夹的大小
-h:带上单位
du -sh /mnt/cdrom/Packages
df -h 查看磁盘的空间
14、配置主机之间的免密ssh登陆
假如:A主机要登陆B主机
1)在A上操作:生成密钥对
ssh-keygen (提示时,直接回车即可)
2)再将A自己的公钥拷贝并追加到B的授权列表文件authorized_keys中
ssh-copy-id B
eg:ssh-copy-id 192.168.33.111 用主机名也可以,只要你的host文件中配置了,让它能认识这个主机名就可以啦