Linux常用命令

Linux常用命令

日常操作命令

查看当前所在的工作目录的全路径pwd

12[root@localhost ~]# pwd

/root

查看当前系统的时间date

12345678[root@localhost ~]# date +%Y-%m-%d2016-07-26date +%Y-%m-%d  --date="-1 day" #加减也可以 month | year2016-07-25[root@localhost ~]# date -s "2016-07-28 16:12:00" ## 修改时间Thu Jul 28 16:12:00 PDT 2016

查看有谁在线(哪些人登陆到了服务器)

123456789101112who  查看当前在线[root@localhost ~]# whohadoop   tty1         2016-07-26 00:01 (:0)hadoop   pts/0        2016-07-26 00:49 (:0.0)root     pts/1        2016-07-26 00:50 (192.168.233.1)last 查看最近的登陆历史记录[root@localhost ~]# lastroot     pts/1        192.168.233.1    Tue Jul 26 00:50   still logged in   hadoop   pts/0        :0.0             Tue Jul 26 00:49   still logged in   hadoop   tty1         :0               Tue Jul 26 00:01   still logged in   reboot   system boot  2.6.32-573.el6.x Tue Jul 26 07:58 - 16:23 (2+08:24)

关机/重启

123456789关机(必须用root用户)shutdown -h now  ## 立刻关机shutdown -h +10  ##  10分钟以后关机shutdown -h 12:00:00  ##12点整的时候关机halt   #  等于立刻关机重启shutdown -r nowreboot   # 等于立刻重启

清屏

1clear    ## 或者用快捷键  ctrl + l

退出当前进程

1ctrl+c   ##有些程序也可以用q键退出

挂起当前进程

123ctrl+z   ## 进程会挂起到后台bg jobid  ## 让进程在后台继续执行fg jobid   ## 让进程回到前台

echo

1234567相当于java中System.out.println(userName) [root@localhost ~]# a="hi boy"[root@localhost ~]# echo aa[root@localhost ~]# echo $ahi boy


目录操作

查看目录信息

123ls /   ## 查看根目录下的子节点(文件夹和文件)信息ls -al ##  -a是显示隐藏文件   -l是以更详细的列表形式显示ls -l  ##有一个别名: ll    可以直接使用ll  <是两个L>

切换工作目录

1234cd  /home/hadoop    ## 切换到用户主目录cd ~     ## 切换到用户主目录cd -     ##  回退到上次所在的目录cd  什么路径都不带,则回到用户的主目录

创建文件夹

123mkdir aaa     ## 这是相对路径的写法 mkdir  /data    ## 这是绝对路径的写法 mkdir -p  aaa/bbb/ccc   ## 级联创建目录

删除文件夹

123rmdir  aaa   ## 可以删除空目录rm  -r  aaa   ## 可以把aaa整个文件夹及其中的所有子节点全部删除rm  -rf  aaa   ## 强制删除aaa

修改文件夹名称

12345678910111213141516mv  aaa  boymv本质上是移动mv  install.log  aaa/  将当前目录下的install.log 移动到aaa文件夹中去rename 可以用来批量更改文件名[root@localhost aaa]# lltotal 0-rw-r--r--. 1 root root 0 Jul 28 17:33 1.txt-rw-r--r--. 1 root root 0 Jul 28 17:33 2.txt-rw-r--r--. 1 root root 0 Jul 28 17:33 3.txt[root@localhost aaa]# rename .txt .txt.bak *[root@localhost aaa]# lltotal 0-rw-r--r--. 1 root root 0 Jul 28 17:33 1.txt.bak-rw-r--r--. 1 root root 0 Jul 28 17:33 2.txt.bak-rw-r--r--. 1 root root 0 Jul 28 17:33 3.txt.bak


文件操作

创建文件

12345678touch  somefile.1       ## 创建一个空文件echo "hi,boy" > somefile.2     ## 利用重定向“>”的功能,将一条指令的输出结果写入到一个文件中,会覆盖原文件内容,如果指定的文件不存在,则会创建出来echo "hi baby" >> somefile.2    ## 将一条指令的输出结果追加到一个文件中,不会覆盖原文件内容

vi文本编辑器

12345678910111213141516171819202122232425262728293031323334最基本用法vi  somefile.41 首先会进入“一般模式”,此模式只接受各种快捷键,不能编辑文件内容2 按i键,就会从一般模式进入编辑模式,此模式下,敲入的都是文件内容3 编辑完成之后,按Esc键退出编辑模式,回到一般模式;4 再按:,进入“底行命令模式”,输入wq命令,回车即可常用快捷键一些有用的快捷键(在一般模式下使用):a   在光标后一位开始插入A   在该行的最后插入I   在该行的最前面插入gg   直接跳到文件的首行G    直接跳到文件的末行dd    删除一行3dd   删除3行yy    复制一行3yy   复制3行p     粘贴u     undov        进入字符选择模式,选择完成后,按y复制,按p粘贴ctrl+v   进入块选择模式,选择完成后,按y复制,按p粘贴shift+v  进入行选择模式,选择完成后,按y复制,按p粘贴查找并替换1 显示行号:set nu2 隐藏行号:set nonu3 查找关键字:/you       ## 效果:查找文件中出现的you,并定位到第一个找到的地方,按n可以定位到下一个匹配位置(按N定位到上一个)4 替换操作:s/sad/bbb    查找光标所在行的第一个sad,替换为bbb:%s/sad/bbb      查找文件中所有sad,替换为bbb

拷贝/删除/移动

1234cp  somefile.1   /home/hadoop/rm /home/hadoop/somefile.1rm -f /home/hadoop/somefile.1mv /home/hadoop/somefile.1 ../

查看文件内容

12345678910111213cat    somefile      一次性将文件内容全部输出(控制台)more   somefile      可以翻页查看, 下翻一页(空格)    上翻一页(b)   退出(q)less   somefile      可以翻页查看,下翻一页(空格)    上翻一页(b),上翻一行(↑)  下翻一行(↓)  可以搜索关键字(/keyword)跳到文件末尾: G跳到文件首行: gg退出less :  qtail -10  install.log  查看文件尾部的10行tail +10  install.log  查看文件 10-->末行tail -f install.log    小f跟踪文件的唯一inode号,就算文件改名后,还是跟踪原来这个inode表示的文件tail -F install.log    大F按照文件名来跟踪head -10  install.log   查看文件头部的10行

打包压缩

1234567891011121314151617181920212223242526272829303132333435363738391、gzip压缩gzip a.txt2、解压gunzip a.txt.gzgzip -d a.txt.gz3、bzip2压缩bzip2 a4、解压bunzip2 a.bz2bzip2 -d a.bz25、打包:将指定文件或文件夹tar -cvf bak.tar  ./aaa将/etc/password追加文件到bak.tar中(r)tar -rvf bak.tar /etc/password6、解压tar -xvf bak.tar7、打包并压缩tar -zcvf a.tar.gz  aaa/8、解包并解压缩(重要的事情说三遍!!!)tar  -zxvf  a.tar.gz解压到/usr/下tar  -zxvf  a.tar.gz  -C  /usr9、查看压缩包内容tar -ztvf a.tar.gzzip/unzip10、打包并压缩成bz2tar -jcvf a.tar.bz211、解压bz2tar -jxvf a.tar.bz2


查找命令

常用查找命令的使用

123456789101112131415161718192021222324251、查找可执行的命令所在的路径:which ls2、查找可执行的命令和帮助的位置:whereis ls3、从某个文件夹开始查找文件find / -name "hadooop*"find / -name "hadooop*" -ls4、查找并删除find / -name "hadooop*" -ok rm {} \;find / -name "hadooop*" -exec rm {} \;5、查找用户为hadoop的文件find  /usr  -user  hadoop  -ls6、查找用户为hadoop的文件夹find /home -user hadoop -type d -ls7、查找权限为777的文件find / -perm -777 -type d -ls8、显示命令历史history

grep命令

123456789101112131415161718192021222324252627282930313233343536373839404142431 基本使用查询包含hadoop的行grep hadoop /etc/passwordgrep aaa  ./*.txt 2 cut截取以:分割保留第七段grep hadoop /etc/passwd | cut -d: -f73 查询不包含hadoop的行grep -v hadoop /etc/passwd4 正则表达包含hadoopgrep 'hadoop' /etc/passwd5 正则表达(点代表任意一个字符)grep 'h.*p' /etc/passwd6 正则表达以hadoop开头grep '^hadoop' /etc/passwd7 正则表达以hadoop结尾grep 'hadoop$' /etc/passwd规则:.  : 任意一个字符a* : 任意多个a(零个或多个a)a? : 零个或一个aa+ : 一个或多个a.* : 任意多个任意字符\. : 转义.o\{2\} : o重复两次查找不是以#开头的行grep -v '^#' a.txt | grep -v '^$' 以h或r开头的grep '^[hr]' /etc/passwd不是以h和r开头的grep '^[^hr]' /etc/passwd不是以h到r开头的grep '^[^h-r]' /etc/passwd


文件权限的操作

linux文件权限的描述格式解读

1234567drwxr-xr-x      (也可以用二进制表示  111 101 101  -->  755)d:标识节点类型(d:文件夹   -:文件  l:链接)r:可读   w:可写    x:可执行 第一组rwx:  ## 表示这个文件的拥有者对它的权限:可读可写可执行第二组r-x:  ## 表示这个文件的所属组用户对它的权限:可读,不可写,可执行第三组r-x:  ## 表示这个文件的其他用户(相对于上面两类用户)对它的权限:可读,不可写,可执行

修改文件权限

1234567891011chmod g-rw haha.dat  ## 表示将haha.dat对所属组的rw权限取消chmod o-rw haha.dat  ## 表示将haha.dat对其他人的rw权限取消chmod u+x haha.dat  ## 表示将haha.dat对所属用户的权限增加xchmod a-x haha.dat               ## 表示将haha.dat对所用户取消x权限也可以用数字的方式来修改权限chmod 664 haha.dat   就会修改成   rw-rw-r--如果要将一个文件夹的所有内容权限统一修改,则可以-R参数chmod -R 770 aaa/

修改文件所有权

1234<只有root权限能执行>chown angela  aaa ## 改变所属用户chown :angela  aaa ## 改变所属组chown angela:angela aaa/ ## 同时修改所属用户和所属组


基本的用户管理

1234567添加一个用户:useradd sparkpasswd  spark     根据提示设置密码;即可删除一个用户:userdel -r spark     加一个-r就表示把用户及用户的主目录都删除

添加用户

12345678添加一个tom用户,设置它属于users组,并添加注释信息分步完成:useradd tom          usermod -g users tom   usermod -c "hr tom" tom一步完成:useradd -g users -c "hr tom" tom设置tom用户的密码passwd tom

修改用户

12345678修改tom用户的登陆名为tomcatusermod -l tomcat tom将tomcat添加到sys和root组中usermod -G sys,root tomcat查看tomcat的组信息groups tomcat

用户组操作

123456789101112添加一个叫america的组groupadd america将jerry添加到america组中usermod -g america jerry将tomcat用户从root组和sys组删除gpasswd -d tomcat rootgpasswd -d tomcat sys将america组名修改为amgroupmod -n am america

为用户配置sudo权限

1234567用root编辑 vi /etc/sudoers在文件的如下位置,为hadoop添加一行即可root    ALL=(ALL)       ALL     hadoop  ALL=(ALL)       ALL然后,hadoop用户就可以用sudo来执行系统级别的指令[root@localhost ~]$ sudo useradd xiaoming


系统管理操作

挂载外部存储设备

123456789101112131415可以挂载光盘、硬盘、磁带、光盘镜像文件等1/ 挂载光驱mkdir   /mnt/cdrom      创建一个目录,用来挂载mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom/     将设备/dev/cdrom挂载到 挂载点 :  /mnt/cdrom中2/ 挂载光盘镜像文件(.iso文件)mount -t iso9660 -o loop  /home/hadoop/Centos-6.7.DVD.iso /mnt/centos注:挂载的资源在重启后即失效,需要重新挂载。要想自动挂载,可以将挂载信息设置到/etc/fstab配置文件中,如下:/dev/cdrom              /mnt/cdrom              iso9660 defaults        0 03/ 卸载 umountumount /mnt/cdrom4/ 存储空间查看df -h

统计文件或文件夹的大小

12du -sh  /mnt/cdrom/packagesdf -h    查看磁盘的空间

系统服务管理

1234service sshd statusservice sshd stop service sshd startservice sshd restart

系统启动级别管理

12345678910111213vi  /etc/inittab       # Default runlevel. The runlevels used are:       #   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:       ## 通常将默认启动级别设置为:3

进程管理

1234topfreeps -ef | grep sshkill -9


SSH免密登陆配置

SSH工作机制

12345678910111213141516171819201、相关概念SSH 为 Secure Shell(安全外壳协议) 的缩写。很多ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而SSH就是专为远程登录会话和其他网络服务提供安全性的协议。SSH是由客户端和服务端的软件组成的服务端是一个守护进程(sshd),他在后台运行并响应来自客户端的连接请求。客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。2、认证机制从客户端来看,SSH提供两种级别的安全验证。第一种级别(基于口令的安全验证)只要你知道自己帐号和口令,就可以登录到远程主机。第二种级别(基于密钥的安全验证)需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。

密钥登陆方式配置

123456假如 A  要登陆  B在A上操作:1/ 首先生成密钥对ssh-keygen   (提示时,直接回车即可)2/ 再将A自己的公钥拷贝并追加到B的授权列表文件authorized_keys中ssh-copy-id   B


网络管理

主机名配置

123456781/ 查看主机名hostname2/ 修改主机名(重启后无效)hostname hadoop3/ 修改主机名(重启后永久生效) vi /ect/sysconfig/network

IP地址配置

1234567891011修改IP地址1/ 方式一:setup用root输入setup命令,进入交互式修改界面2/ 方式二:修改配置文件 一般使用这种方法(重启后永久生效)vi /etc/sysconfig/network-scripts/ifcfg-eth03/ 方式三:ifconfig命令(重启后无效)ifconfig eth0 192.168.12.22

网络服务管理

12345678910111 后台服务管理service network status    查看指定服务的状态service network stop     停止指定服务service network start     启动指定服务service network restart   重启指定服务service --status-all       查看系统中所有的后台服务2 设置后台服务的自启配置chkconfig   查看所有服务器自启配置chkconfig iptables off   关掉指定服务的自动启动chkconfig iptables on   开启指定服务的自动启动

你可能感兴趣的:(Linux常用命令)