一、日常操作命令
**查看当前所在的工作目录:pwd
**查看当前系统的时间:date
**查看谁当前登陆了服务器:who
**查看登陆历史:last
**进入到用户根目录:cd(cd ~)
**返回到原来的目录:cd -
**当前目录:.
**补全命令:tab键
**返回上一级目录:cd ..
**清屏:ctrl+l
**停止当前进程:ctrl+c
**查看命令历史:ctrl+r
**保存并退出:shift+zz(相当于:wq,PS:在进入vi编辑状态中)
**显示行号::set nu(PS:在进入vi编辑状态中)
**取消行号::set nonu(PS:在进入vi编辑状态中)
**网卡网络配置详解:ifconfig
**测试网络的连通性:ping
**在网上下载资料:wget https://www.baidu.com
二、文件系统操作命令
**切换目录:cd /home
**查看根目录下的子节点(文件夹和文件)信息:ls /
**显示隐藏文件:ls -al (-a是显示隐藏文件 -l是以更详细的列表形式显示)
**创建文件夹:mkdir a(相对路径) mkdir /a(绝对路径) mkdir -p a/b/c(建立嵌套文件夹)
**删除文件夹:rmdir(删除空目录) rm -r a(可以把整个文件夹a及其中的所有子节点全部删除)
rm -rf a(强制删除a)
**修改文件夹名称:mv a b
**创建文件:touch 1.txt(创建一个空文件)
echo "i miss you" > 1.txt(将引号里的内容写入到文件1.txt中,覆盖效果)
echo "i love you" >> 1.txt(追加效果)
**查看文件:cat 1.txt
**复制文件:cp 1.txt /home(把文件1.txt复制到home文件夹)
cp 1.txt /home/2.txt(把文件1.txt改名为2.txt后复制到home文件夹中)
**移动文件:mv 1.txt 2.txt 3.txt /home(移动三个文件夹到home目录中)
mv *.txt /home(移动所有txt文件到home目录中)
**重命名文件:mv 1.txt 2.txt(把 1.txt 改为 2.txt)
mv /home/1.txt /home/2.txt(绝对路径下把 1.txt 改为 2.txt)
**重命名目录:mv a/ b/(目录 a 改为 b)
**查看文件内容:cat install.log(一次性将文件内容全部输出到控制台上)
more install.log(可以翻页查看,空格下翻页,b上翻页,q退出)
less install.log(↑上翻一行,↓下翻一行,/keyword搜索关键字)
tail -10 install.log(查看文件尾部十行的内容)
tail -f install.log(跟踪文件唯一的inode号,即使文件改名依然跟踪原来inode表示的文件)
tail -F install.log(按照文件名来跟踪)
head -10 install.log(查看文件头部的十行)
**使用文本编辑器:vi /home/1.txt(在home中创建或编辑1.txt文件)
(PS:先按i进入编辑模式,按Esc退回一般模式,按:wq+回车退出保存,:wq!表示强制保存)
**高级命令行文本处理器工具cut、sort、wc、sed 的基本用法:
对于路径PATH,/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/apps/jdk1.7.0_45/bin:/root/bin
echo $PATH | cut -d ':' -f 5(| 表示管道把PATH作为文本流输入到cut,-d表示分隔符以单引号中的冒号作为分隔)
(-f 5 表示取第5个元素,-f 3,5 表示取第3和第5个元素,-f 3-5 表示取3到5的元素)
(-f 3- 表示取3到最后一个的元素,-f 3-5,7表示取3到5和第7个元素)
------------------------------------------------------------------------------------------------------------------------------------------
对于文件passwd
cat /etc/passwd | sort -t ':' -k 3 -u(-t表示以冒号为分隔符,-k 3 表示以第3个元素的id字典作为排序标准,-u表示去重)
(-k 3n 表示以第3各元素的id数字作为排序标准,3nr表示倒叙排列)
cat test.txt | sort | uniq -c(对排序后的test文件进行去重,uniq只能对排序过的文件进行去重,-c表示频数)
------------------------------------------------------------------------------------------------------------------------------------------
wc -l test.txt (统计文件的行数)
wc -w test.txt (统计单词的个数,以空格为标准)
wc -m test.txt(统计文件的字符数)
wc -c test.txt (统计文件的字节数)
------------------------------------------------------------------------------------------------------------------------------------------
sed '2d' test.txt(删除test文件的第2行)
sed '2,$d' test.txt(删除文件的第2到最后一行)
sed '/hello/' test.txt(删除文件中包含hello的行)
sed 's/hello/world/g' test.txt(把文件中所有的hello都替换成world,s表示替换,g表示全局)
sed -n 's/^hello/my/p' test.txt(把文件中每一行第一个hello替换成my并打印所替换的行,-n表示发生替换的行,p表示打印)
sed 's/^hello/&you/' test.txt(在文件中的hello后追加you)
更多的sed命令不做详细记录,使用sed速查手册
------------------------------------------------------------------------------------------------------------------------------------------
last -n 5 | awk '{print $1}'(表示获取最近五次登录的用户,输出他们的第一个元素,默认空格为分隔符)
cat /etc/passwd | awk -F ':' '{print $1}'(表示文件以冒号为分隔符获取并打印每行的第一个元素)
awk命令比cut命令的功能更加强大,更多的命令可以使用awk速查手册
------------------------------------------------------------------------------------------------------------------------------------------
**编辑器中的快捷键:
a(在光标后一位开始插入)
A(在该行的最后插入)
I(在该行的最前面插入)
gg(直接跳到文件的首行)
G(直接跳到文件的末行)
dd(删除行,如果 5dd 则一次性删除光标后的5行)
yy(复制当前行,3yy 则复制当前行附近的3行)
p(粘贴)
v(进入字符选择模式,选择完成后,按y复制,按p粘贴)
ctrl+v(进入块选择模式,选择完成后,按y复制,按p粘贴)
shift+v(进入行选择模式,选择完成后,按y复制,按p粘贴)
三、文件及权限的操作命令
**解读权限符含义:drwxr-xr-x(首字母为标识节点类型,d:文件夹 -:文件 l:链接)
第一组rwx:表示这个文件的拥有者对它的权限:可读可写可执行
第二组r-x: 表示这个文件的所属组对它的权限:可读,不可写,可执行
第三组r-x: 表示这个文件的其他用户(相对于上面两类用户)对它的权限:可读,不可写,可执行
**修改文件权限:chmod g-rw ha.dat(表示将ha.dat 对所属组的rw权限取消)
chmod o-rw ha.dat(表示将ha.dat 对其他人的rw权限取消)
chmod u+x ha.dat(表示将ha.dat 对所属用户的权限增加x)
chmod 777 ha.dat(使用数字形式修改权限)
chmod -R 770 a(对于文件夹a中所有的文件进行权限修改)
chown angela:angela a(修改文件所属组,只有root可修改)
**压缩文件:gzip 1.txt(只能对文件进行压缩,无法对目录或包进行压缩)
**解压文件:gzip -d 1.txt.gz(对压缩包1.txt.gz进行解压)
**打包:tar -cvf a.tar a(把目录a打包成tar包a.tar)
**解包:tar -xvf a.tar(对tar包a.tar进行解包)
PS:对于目录无法直接压缩,可以先打包,再进行压缩。
**一次性完成打包和压缩的操作:tar -zcvf a.tar.gz a(对目录a进行打包和压缩的操作)
**一次性完成解压和解包的操作:tar -zxvf a.tar.gz(对压缩包a.tar.gz进行解压和解包的操作)
tar -zxvf a.tar.gz -C home(把a.tar.gz包解压到home目录中)
**安装软件:rpm -ivh 软件名
**强制卸载软件:rpm -e 软件名 --nodeps
**查看系统中安装rpm包:rpm -qa | grep mysql(查看所有mysql包)
四、基本的用户管理命令
**添加用户:useradd angela(要修改密码才能登陆)
**修改密码:passwd angela(按提示输入密码即可)
**为用户配置权限:用root编辑 vi /etc/sudoers,在文件的如下位置,为hadoop添加一行即可
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
(PS:配置后hadoop用户就可以用sudo来执行系统级别的指令了,比如添加用户)
五、系统管理操作命令
**查看主机名:hostname
**修改主机名:hostname CentOS(重启后无效)
vi /etc/sysconfig/network(重启后永久生效)
**修改IP:ifconfig eth0 192.168.12.22(重启后无效)
vi /etc/sysconfig/network-scripts/ifcfg-eth0(重启后永久生效)
**增加IP地址:ip addr add 192.168.35.3 dev eth0(ifconfig看不出来,ip addr才看的出来)
**修改IP地址和主机名的映射关系:vi /etc/hosts
**修改网卡的IP地址:vi /etc/sysconfig/network-scripts/ifcfg-eth0
**重启网络:service network restart
**挂载外部存储设备到文件系统中:mkdir /mnt/cdrom(创建一个目录,用来挂载)
mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom(-t表示挂载的文件类型,光盘ro,硬盘rw)
(将设备/dev/cdrom挂载到挂载点/mnt/cdrom中)
**解挂载:umount /mnt/cdrom
**统计文件或文件夹的大小:du -sh /mnt/cdrom/Packages(查看Packages的大小)
**查看磁盘的空间:df -h
**关机:halt
**重启:reboot
**配置主机之间的ssh免密登陆:假如A要登陆B,在A上操作输入命令ssh-keygen生成密钥对,输入ssh-copy-id B
将A的公钥拷贝并追加到授权列表文件authorized_keys中。
PS:如果是minimal模式下输入 yum -y install openssh-clients
即可解决-bash: ssh: command not found的问题。
PS:ssh mini2 mkdir /root/concent;在其他机器上创建目录
**后台服务管理:service network status(查看指定服务的状态)
service network stop(停止指定服务)
service network start(启动指定服务)
service network restart(重启指定服务)
service --status -all (查看系统中所有的后台服务)
**设置后台服务的自启配置:chkconfig(查看所有服务的自启配置)
chkconfig iptables off(关掉指定服务的自动启动)
chkconfig iptables on(开启指定服务的自动启动)
**查看系统启动级别的管理:vi /etc/inittab(系统默认级别是3)
六、杂记
**防火墙iptables操作:service iptables status(查看防火墙状态)
service iptables start(开启防火墙)
service iptables stop(关闭防火墙)
chkconfig iptables --list(查看是否开机启动)
chkconfig iptables on(设置开机启动)
chkconfig iptables off(设置开机不启动)
**minimal最小化安装:eth0默认没有自启用,修改ifcfg-eth0配置文件中的onboot=yes
**解决克隆后eth0不见的问题:直接修改ifcfg-eth0配置文件,删掉其中的UUID和HWADDR,配置静态地址。
然后rm -rf /etc/udev/rules.d/70-persistent-net.rules或者修改这个文件,
将其中的eth1的物理地址复制给eth0然后删掉eth1的配置,最后reboot。
**修改静态地址后发现无法ping外网:需要设置网关,route add default gw 192.168.35.2,添加nameserver,
vi /etc/resolv.conf,nameserver 192.168.33.1
(PS:无法永久解决,重启网络后消失)
**修改静态地址后发现无法ping外网:使用vi /etc/sysconfig/network-scripts/ifcfg-eth0为eth0网卡添加DNS信息,
DNS1=192.168.35.2,DNS2=192.168.35.254,
配置后无需再配置/etc/resolv.conf文件,永久生效。
(PS:网络服务重启以后会根据/etc/sysconfig/network-scripts/ifcfg-eth0
来重载配置,如果ifcfg-eth0没有配置DNS,那么resolv.conf会被冲掉,
重新变成空值。)
**动态监控文件大小:watch -d ls -ls(与 ll 命令相似)
**上传文件到服务器:在Secure_CRT下使用SFTP工具。(或者 yum -y install lrzsz + rz 安装传输命令)
第一步:使用 alt+p 调出SFTP界面,
第二步:使用 put+文件目录 命令上传。(如果不使用cd指定目录,则上传到当前用户的主目录)
PS:如果先输入命令cd /home,再输入命令 put+文件目录 ,则文件被上传到服务器的home目录中。
PS:如果需要指定下载到本地目录时,输入lcd d:/ 命令,再输入 get+文件目录,则文件被下到本地磁盘d中。
**制作yum源:
------------------------------------------方法一单台配置--------------------------------------------------
第一步:mkdir /mnt/cdrom;mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom(挂载)
第二步:cd /etc/yum.repos.d
第三步:rename .repo .repo.bak *
第四步:cp CentOS-Media.repo.bak CentOS-mini.repo
第五步:vi CentOS-mini.repo
把 baseurl=file:///media/CentOS/
file:///media/cdrom/
file:///media/cdrecorder/
改为 baseurl=file:///mnt/cdrom/
把 gpgcheck=1 改为 gpgcheck=0
把 enabled=0 改为 enabled=1
第六步:输入vi /etc/fstab,添加 /dev/cdrom /mnt/cdrom iso9660 defaults 0 0
PS:这样做的目的是为了开机自动默认加载yum源,避免每次重启后手动mount
第七步:yum repolist(查看yum源)
------------------------------------------方法二多台网络版配置--------------------------------------------------
概述:在局域网内部配置一台节点(server-base)的本地文件系统yum仓库,然后将其发布到web服务器中,
其他节点就可以通过http://server-base/pagekege/path/
制作流程:先挑选一台机器mini,挂载一个系统光盘到本地目录/mnt/cdrom,然后启动一个httpd服务器,
将/mnt/cdrom 软连接到httpd服务器的/var/www/html目录中(cd /var/www/html; ln -s /mnt/cdrom ./centos)
然后通过网页访问测试一下:http://mini/centos 会看到光盘的目录内容。
至此:网络版yum私有仓库已经建立完毕,剩下就是去各台yum的客户端配置这个 http 地址到repo配置文件中。
第一步:mkdir /mnt/cdrom;mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom;
第二步:输入 cd /var/www/html,打开 httpd 的页面目录(可以在其中写HTML文件并通过浏览器访问)
第三步:ln -s /mnt/cdrom ./centos,创建从当前目录下的软链接centos到/mnt/cdrom
(通过浏览器访问 mini/centos 查看光盘的目录内容)
第四步:cd /etc/yum.repos.d;rename .repo .repo.bak *;cp CentOS-Media.repo.bak CentOS-mini.repo;
第五步:vi CentOS-mini.repo(修改内部配置gpgcheck为0,enabled为1,name为CentOS-mini,
把 baseurl=........改为 baseurl=http://mini/centos)
PS:修改Windows内部的hosts文件是Windows下的浏览器可以识别mini。
第六步:在其他服务器上cd /etc/yum.repos.d;vi CentOS-Media.repo;
修改配置如baseurl为http://mini/centos、name....、gpgcheck...、enabled...
第七步:yum repolist(查看yum源)
PS:总的思路就是将yum源投射到httpd服务器上,其他服务器可以通过局域网挂载。