约定俗成:java
bin (binaries)存放二进制可执行文件node
sbin (super user binaries)存放二进制可执行文件,只有root才能访问正则表达式
etc (etcetera)存放系统配置文件shell
usr (unix shared resources)用于存放共享的系统资源vim
home 存放用户文件的根目录windows
root 超级用户目录tomcat
dev (devices)用于存放设备文件bash
lib (library)存放跟文件系统中的程序运行所须要的共享库及内核模块服务器
mnt (mount)系统管理员安装临时文件系统的安装点网络
boot 存放用于系统引导时使用的各类文件
tmp (temporary)用于存放各类临时文件
var (variable)用于存放运行时须要改变数据的文件
红色命令为本人比较经常使用的命令(会常常更新)
相对路径和绝对路径说明:
如今在/home/dijia478/下
./a/b.txt和a/b.txt都表示相对路径,当前目录下的a文件夹下的b.txt文件
/home/dijia478/a/b.txt表示绝对路径,根目录下的home文件夹下的dijia478文件夹下的a文件夹下的b.txt文件
cd ./a 切换到当前目录的a文件夹
cd ../ 切换到上一层目录
cd / 切换到系统根目录
cd ~ 切换到用户主目录
cd - 切换到上一个所在目录
pwd 显示当前所在目录的绝对路径
ls /path/显示该目录全部文件或文件夹名
ls -a 显示全部文件或文件夹名(包含隐藏的)
ls -l 按列表显示全部文件或文件夹,缩写成ll
ll -h 友好的显示文件大小(显示成K,MB,GB)
mkdir app 建立app文件夹
mkdir –p app2/test 级联建立aap2以及test文件夹
rmdir app 删除app目文件夹(须要是空文件夹)
rm a.txt 删除a.txt文件,删除须要用户确认,y/n
rm -f a.txt 不询问,直接删除a.txt文件
rm -r a 递归删除a文件夹(不管是否有内容)
rm -rf a 不询问递归删除a文件夹(慎用)
rm -rf * 删除当前目录下全部内容(最好别用)
rm -rf /* no 做 no die(Linux系统就玩完了)
cp a.txt b.txt 将a.txt复制为b.txt文件
cp -r dir/ ../ 将dir文件夹及子目录和文件复制到上一层目录中
mv a.txt ../ 将a.txt文件移动到上一层目录中
mv a.txt b.txt 将a.txt文件重命名为b.txt
touch a.txt 建立一个空的a.txt文件
echo "good good study" > a.txt 把">"左边的输出内容放到右边的文件里去,若是存在就覆盖,若是不存在就建立
vim a.txt 用文本编辑器编辑一个文件,若是不存在就建立
tar -cvf file.tar dirpath filepath 将dir文件夹和file文件在当前目录下打包成file.tar
tar –xvf file.tar 解包到当前目录
gzip file.tar 压缩文件或文件夹
gzip –d file.tar.gz 解压文件或文件夹
tar -czvf file.tar.gz dirpath filepath 将dir文件夹和file文件在当前目录下打包并压缩成file.tar.gz
tar -xzvf file.tar.gz 解压并解包到当前目录下
tar -xzvf file.tar.gz -C /home/dijia478/ 解压并解包到/home/dijia478/目录下
经常使用参数:
-c:建立一个新tar文件
-v:显示运行过程的信息
-f:指定文件名
-z:调用gzip压缩命令进行压缩
-t:查看压缩文件的内容
-x:解开tar文件
zip test.txt.zip test.txt 也是打包并压缩
unzip test.txt.zip 解包并解包
.rpm结尾的包,用rpm -ivh 命令安装
cat a.txt 一次性显示整个文件内容
more a.txt 能够分页看(翻页:空格,往回翻:b ,退出: q或者 Ctrl+C)
less a.txt 不只能够分页,还能够方便地搜索,回翻等操做(翻页:空格,往回翻:↑,往下翻:↓,退出:q或者 Ctrl+C)
tail -10 a.txt 查看文件的尾部的10行
tail -f user.log 实时刷新显示文件的尾部,这条命令对于观察调试程序的运行很是重要
head -20 a.txt 查看文件的头部20行
注:ctrl+c 结束查看
grep ‘haha’ ./* 打印当前目录下全部文件中含有'haha'的地方(支持正则表达式)
grep -c ‘haha’ ./* 显示匹配到的行数
grep -r ‘haha’ ./* 对子目录也进行遍历搜索
grep -l ‘haha’ ./* 只显示命中的文件名
grep -n ‘haha’ ./* 显示命中的行号
grep -ld skip ‘haha’ ./* 显示命中的文件名,不要搜索子目录
参数含义:
-r 递归搜索子目录
-l 只列出有匹配行的文件名
-n 列出匹配行的行号
-d skip 不搜索子文件夹
经常使用grep跟其余命令组合使用来查找咱们关心的信息(管道)
示例:
service --status-all | grep 'httpd' 在当前系统全部服务中查找'httpd'
netstat -nltp | grep '22' 查找监听'22'端口的服务程序
ps –ef | grep java 查找系统中当前运行的java进程
find ./ -name '*.txt' 查找以.txt结尾的文件(会遍历当前目录)
find ./ -name ‘install*’ 查找以install开头的文件或文件夹
find ./ -type f 查找普通文件
find ./ -type l 查找链接文件(快捷方式)
> 重定向输出,覆盖原有内容;
>> 重定向输出,又追加功能;
cat /etc/passwd > a.txt 将密码文件输出定向到a.txt中
cat /etc/passwd >> a.txt 输出而且追加
ifconfig > ifconfig.txt 保存ip信息到文件中
wc -l a.txt 统计文本行数
wc -w a.txt 统计文本单词数
wc -m a.txt 统计文本字符数
wc -c a.txt 统计文本字节数
vim编辑器
vim filepath 打开文件
按Esc键 切换到命令行模式
切换到插入模式:
i 在当前位置生前插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行以后插入一行
O 在当前行以前插入一行
dd 删除整行
7 dd 向上删除7行
U 回退(相似于windows 中 ctrl + z)
R 替换
:(冒号) 切换到底行模式
:q 退出
:wq 保存并退出(shift + zz也能够保存)
:q! 不保存退出
echo $JAVA_HOME 输出变量JAVA_HOME的值
rpm -qa | grep tomcat 查看当前系统是否安装tomcat
rpm -e tomcat 卸载tomcat
rpm 的其余附加命令
--force 强制操做 如强制安装删除等;
--requires 显示该包的依赖关系;
--nodeps 忽略依赖关系并继续操做;
whoami 查询当前登录的用户名
which ls 查询ls命令的$PATH路径
mkdir test && cd test
只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才会被执行。
只要有一个命令返回假(命令返回值 $? == 1),后面的命令就不会被执行。
基本示例:
useradd user001
passwd 123456 须要设置密码
参数手册:
-u 指定组ID(uid)
-g 指定所属的组名(gid)
-G 指定多个组,用逗号“,”分开(Groups)
-c 用户描述(comment)
-d 指定用户目录
-e 失效时间(expire date)
userdel user002 这样删除的时候,用户的主目录会被保留
userdel -r user002 删除用户的同时删除用户的主目录
指令:usermod
参数:
-l 修改用户名 (login)usermod -l a b(b改成a)
-g 修改组 usermod -g sys tom
-d 修改用户的宿主目录
-G 添加多个组 usermod -G sys,root tom
-L 锁定用户帐号密码(Lock)
-U 解锁用户帐号(Unlock)
示例:
usermod -l user002 user001 将user001的登录名改成user002
usermod -g root user002 将user002的组改成root组
usermod -G hello1,hello2 user002 给user002添加两个组hello1,hello2
usermod -d /home/dijia478 user002 将user002的主目录改为/home/dijia478
(要事先建立dijia478目录,而且拷入环境变量文件)
用户组相关属性:
每一个用户至少属于一个用户组
(建立新用户时若是不指定所属组,则会自动建立并归属到一个跟用户名同名的组)
每一个用户组能够包含多个用户
同一个用户组的用户享有该组共有的权限
用户组管理操做命令:
groupadd java 建立用户组
groupdel hello2 删除用户组
groupmod –n newname oldname 修改用户组名称
groups user002 查看用所属的组
用户配置信息存放位置:
保存用户信息的文件:/etc/passwd
保存密码的文件:/etc/shadow
passwd文件示例:
user002:x:500:500:user002:/home/user002:/bin/bash
passwd文件各字段含义:
account:password:UID:GID:GECOS:directory:shell
shadow文件示例:
user002:$1$vRug41$UUxYzdP0i6s6wtUPieGDQ/:18617:0:99999:7:::
shadow文件各字段含义:
用户名 |
登录系统的用户名 |
密码 |
加密密码 |
最后一次修改时间 |
用户最后一次修改密码距如今的天数,从1970-1-1起 |
最小时间间隔 |
两次修改密码之间的最小天数 |
最大时间间隔 |
密码有效天数 |
警告时间 |
从系统警告到密码失效的天数 |
帐号闲置时间 |
帐号闲置时间 |
失效时间 |
密码失效的天数 |
标志 |
标志 |
用户组配置信息存放位置:
保存用户组的文件:/etc/group
保存用户组密码的文件:/etc/gshadow(设置组管理员时才有用)
id user002 查看一个用户的UID和GID
su user001 切换到user001用户
su - user001 切换到user001用户,而且将环境也切换到user001用户的环境(推荐使用)
exis 退出当前shell(会退出当前登陆用户)
检查网络连通性:
ping 要测试的ip
查看ip地址
ifconfig 查看全部网络设备的地址信息
ifconfig eth0 查看指定的eth0以太网卡的地址信息
修改ip地址
ifconfig eth0 192.168.2.150 netmask 255.255.255.0
经过setup修改网络配置
在root权限下执行setup指令能够打开一个带菜单的伪图形界面来修改网络配置
经过配置文件修改ip地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改该配置文件便可改ip地址
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none HWADDR=00:0c:29:f1:b2:e8 #网卡物理地址 IPV6INIT=yes NM_CONTROLLED=yes ONBOOT=yes TYPE=Ethernet UUID="b3cd1ac3-aecf-4845-9812-9337135c072b" IPADDR=192.168.2.199 # IP地址 NETMASK=255.255.255.0 #子网掩码 DNS2=8.8.8.8 #域名服务器2 GATEWAY=192.168.2.1 #网关 DNS1=192.168.2.1 #域名服务器1 USERCTL=no |
查看主机名
在shell提示符的@后有显示
或者用hostname指令打印出主机名
修改主机名
vi /etc/sysconfig/network 修改其中的hostname配置项:
HOSTNAME=newname
修改完成以后要重启服务器才能生效
要想当即生效,能够执行指令 hostname newname,而后注销重登录
主机名-IP映射,服务器本地映射
服务器网络寻址时默认是如今本地的hosts文件中查找IP映射,经过修改hosts来映射局域网内部的主机名很是方便
实现方法,将局域网内的每一台主机的“hostnamip”写入每一台主机的hosts文件中:
vi /etc/hosts
192.168.2.150 user001-server-01
192.168.2.151 user001-server-02
192.168.2.152 user001-server-03
列出系统全部应用服务状态:
service --status-all
查看指定服务运行状态:
service servicename status
启动服务:
service servicename start
中止服务:
service servicename stop
列出全部服务的随机自起配置:
chkconfig --list
关闭服务的随机自起:
chkconfig servicename off
开启服务的随机自起:
chkconfig servicename on
经常使用示例:
重启网络服务:service network restart
中止httpd:service httpd stop
启动httpd:service httpd start
关闭防火墙服务:service iptables stop
关闭防火墙自动启动:chkconfig iptables off
指令:netstat
netstat经常使用示例:
netstat -natp
netstat -nltp
netstat -naup
netstat -an | grep 3306 查询3306端口占用状况
经常使用参数解释:
-a 显示全部链接和监听端口
-l 只显示监听进程
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的所有转化成数字。
-p 显示创建相关连接的程序名
lsof命令其实要比netstat强大
经常使用参数:
-i 显示全部链接
-i 6 仅获取IPv6流量
-iTCP 仅显示TCP链接
-i:8080 显示与8080端口相关的网络信息
-i@192.168.128.128 显示指定到192.168.128.128的链接
-i@192.168.128.128:22 显示基于主机与端口的链接
-i -sTCP:LISTEN 找出正等候链接的端口
-i -sTCP:ESTABLISHED 找出已创建的链接
-u 用户名 显示指定用户打开了什么
-u ^用户名 显示除指定用户之外的其它全部用户所作的事情
-p 10075 查看指定进程ID已打开的内容
其余用法:
kill -9 `lsof -t -u 用户名` 杀死指定用户所作的一切事情
lsof /var/log/messages/ 显示与指定目录或文件交互的全部一切
lsof -u dijia478 -i @1.1.1.1 显示dijia478链接到1.1.1.1所作的一切
df -h 查看磁盘空间状态信息
du -sh * 查看指定目录下全部子目录和文件的汇总大小
free 查看内存使用情况
top 查看实时刷新的系统进程信息
ps -ef 查看系统中当前瞬间的进程信息快照
ps -ef | grep myshell 搜索myshell进程的信息
kill -9 pid 杀掉进程(-9 表示强制杀死)
root用户由于具备不受限制的权限,使用不慎可能对系统形成不可估量的损害,于是,生产实际中,轻易不要使用su去切换到root的身份
若是普通用户须要使用一些系统级管理命令,可使用sudo来执行,好比 sudo vi /etc/profile
给普通用户赋予sudo权限,配置方法以下:
例如,要给hadoop用户赋予sudo任何指令(或某条指定的命令)的权利,则编辑sudoers文件 vi /etc/sudoers
在其中加入须要赋予权限的用户(红色标识)
……
root ALL=(ALL) ALL #让hadoop用户能够用root身份执行全部指令 hadoop ALL=(ALL) ALL #让user002用户能够用root身份执行全部指令 Itcast ALL=(root) /usr/sbin/useradd, /usr/bin/passwd
…… |
检查是否生效:
[root@user001-server-01 user002]# sudo -lU user002
User user002 is not allowed to run sudo on user001-server-01.
vi /etc/inittab
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
~
用level 3 就启动全功能状态的命令行界面,5是图形界面。不要设置其余的,容易做死。
在命令行模式下,用startx能够手动启动图形界面(在服务器上操做)
Linux三种文件类型:
普通文件: 包括文本文件、数据文件、可执行的二进制程序文件等。
目录文件: Linux系统把目录当作是一种特殊的文件,利用它构成文件系统的树型结构。
设备文件: Linux系统把每个设备都当作是一个文件
文件类型标识:
普通文件(-)
目录(d)
符号连接(l)
* 进入etc能够查看,至关于快捷方式
字符设备文件(c)
块设备文件(s)
套接字(s)
命名管道(p)
u 表示“用户(user)”,即文件或目录的全部者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的全部用户。
o 表示“其余(others)用户”。
a 表示“全部(all)用户”。它是系统默认值。
操做符号能够是:
+ 添加某个权限。
- 取消某个权限。
= 赋予给定权限并取消其余全部权限(若是有的话)。
设置mode所表示的权限可用下述字母的任意组合:
r 可读。
w 可写。
x 可执行。
文件权限管理:
chmod u+rwx a.txt 为a.txt添加所属用户的rwx权限
chmod 755 a.txt 为a.txt设置所属用户rwx权限,所属组rx权限,其余用户rx权限(r-4,w-2,x-1)
chmod u=rwx,g=rx,o=rx a.txt (u表明所属用户 g表明所属组的成员用户 o表明其余用户)
chown user001:hello1 a.txt 将a.txt的全部者改为user001用户,所属组改为hello1组(须要root权限)
chown -R user001:hello1 dir 将dir文件夹的全部者改为user001用户,所属组改为hello1组(须要root权限)
date "+%Y%m%d" 按格式显示当前系统时间
date -s "2020-01-01 10:10:10" 设置系统时间
clear 清屏幕(只是滚到上面看不到了)uname 显示系统信息。uname -a 显示本机详细信息。依次为:内核名称(类别),主机名,内核版本号,内核版本,内核编译日期,硬件名,处理器类型,硬件平台类型,操做系统名称