查看当前所在的工作目录
pwd
查看当前系统的时间
date : Thu May 3 01:37:01 CST 2018
date +%Y-%m-%d : 2018-05-03
date +”%Y-%m-%d %H:%M:%S” : 2018-05-03 01:42:40
除此之外还支持时间计算
date –date=”-1 day” :Wed May 2 01:43:57 CST 2018
查看有谁在线(哪些人登陆到了服务器)
who 查看当前在线
last 查看最近的登陆历史记录
切换目录
cd /home 在主目录下查找home
cd .. 返回上一层目录
cd ~ 返回登陆用户的主目录
cd - 返回进入此目录之前所在的目录;
创建文件夹
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 将一条指令的输出结果追加到一个文件中,不会覆盖原文件内容
拷贝文件
cat somefile.1 > somefile.2
cp somefile.1 ./somefile.2
最基本用法
vi somefile.4 使用vi编辑器打开somefile.4文件
1、首先会进入“一般模式”,此模式只接受各种快捷键,不能编辑文件内容
2、按i键,就会从一般模式进入编辑模式,此模式下,敲入的都是文件内容
3、编辑完成之后,按Esc键退出编辑模式,回到一般模式;
4、再按:,进入“底行命令模式”,输入wq命令,回车即可
常用快捷键
gg 直接跳到文件的首行
G 直接跳到文件的末行
dd 删除行,如果 5dd ,则一次性删除光标后的5行
yy 复制当前行, 复制多行 p 粘贴
v 进入字符选择模式,选择完成后,按y复制,按p粘贴
ctrl+v 进入块选择模式,选择完成后,按y复制,按p粘贴
shift+v 进入行选择模式,选择完成后,按y复制,按p粘贴
查找并替换(在底行命令模式中输入)
:%s/sad/8888888888 效果:查找文件中所有sad,替换为8888888888
/you 效果:查找文件中出现的you,并定位到第一个找到的地方,按n可以定位到下一个匹配位置(按N定位到上一个)w
查找可执行的命令:
which ls
查找可执行的命令和帮助的位置:
whereis ls
从某个文件夹开始查找
find / -name “hadooop*”
find / -name “hadooop*” -ls 自带文件格式的查看方式
查找并删除
find / -name "hadooop*" -ok rm {} \;
find / -name "hadooop*" -exec rm {} \;
查找用户为hadoop的文件
find /usr -user hadoop -ls
查找用户为hadoop并且(-a)拥有组为root的文件
find /usr -user hadoop -a -group root -ls
查找用户为hadoop或者(-o)拥有组为root并且是文件夹类型的文件
find /usr -user hadoop -o -group root -a -type d
查找权限为777的文件
find / -perm -777 -type d -ls
****************************************************
显示命令历史
history
查看带有某个字符串的文件所在的行
cat /etc/passwd 查看文件内容
grep hadoop /etc/password 查找文件/etc/password内容附带hadoop的那一行
查看不包含某个字符串的文件所在的行
grep -v hadoop /etc/password
gzip压缩
gzip a.txt
解压
gzip -d a.txt.gz
将当前目录的文件打包
tar -cvf bak.tar . // -c 创建一个打包文件 -v 显示打包进度 -f 指定文件名称
将/etc/password追加文件到bak.tar中(r)
tar -rvf bak.tar /etc/password // -r 追进内容进行 -f指定的文件中
解压
tar -xvf bak.tar
打包并压缩gzip
tar -zcvf a.tar.gz … // -z 压缩 其他参数同上 最后加上需要打包的文件路径
解压缩
tar -zxvf a.tar.gz // -x 解压
解压到/usr/下
tar -zxvf a.tar.gz -C /us
more somefile 翻页查看文件
空格-> 查看下一页 b-> 查看上一页 ctrl+c / q -> 退出
less somefile 翻页查看文件 与上面的效果一样 可以使用上下方向键查看上下一行的文本
gg 跳到文件首行
G 跳到文件末尾
q 退出
tail 查看文件末尾
tail -10 somefile 查看somefile文件的尾部10行
tail +10 somefile 从文件第10行查看somefile,直到尾部
tail -f somefile 跟踪文件唯一的inode号,就算文件改名后,还是跟踪原来这个 inode表示的文件。
tail -F somefile 按照文件名来跟踪
head 查看文件头部
head -10 install.log 查看文件前10行数据。
drwxr-xr-x
第一组rwx : 表示这个文件的拥有者对该文件的权限,可读可写可执行。
第二组r - x : 表示创建该文件用户所在组用户对该文件的权限,可读不可写可执行。
第三组r - x : 表示该文件的其他用户(除了上面2个类型)对该文件的权限,可读不可写可执行。
创建a.txt和b.txt文件,将他们设为其拥有者和所在组可写入,但其他以外的人则不可写入:
chmod ug+w,o-w a.txt b.txt
创建c.txt文件所有人都可以写和执行
chmod a=wx c.txt 或chmod 666 c.txt
将/wolfcode目录下的所有文件与子目录皆设为任何人可读取
chmod -R a+r /wolfcode
将/wolfcode目录下的所有文件与子目录的拥有者设为root,用户拥有组为users
chown -R root:users /wolfcode
对于普通用户来说:
r :对文件来说,是可读的内容,对于文件夹来说,决定了能否 ls。
w:对文件来说,是可修改的文件内容,对于文件夹来说,是可以创建/删除子文件。
x :对文件来说,是能否运行这个文件,对于文件夹来说,是能否cd到这个目录。
当需要为linux添加一个用户的时候,使用 useradd Xxx
为用户设置新的密码 使用passwd Xxx
删除用户的命令是:userdel -r Xxx //-r表示将用户及用户的主目录删掉
使用Linux系统时,经常会被要求使用超级权限,如果拥有root账户那还好,可以直接进行任何操作,但是这并不一个好方法,也不推荐使用。root的权限太过大了,慎用!
对于普通用户来说,一个简单的sudo即可解决大部分问题。然而当我们在使用sudo时(尤其对于一个新的用户第一次使用sudo),会发现终端反馈了XXX is not in the sudoers file. This incident will be reported.(XXX是用户名称)。以下为解决办法:
假如我们去买一个软件,该软件可以是一个光盘,我们通过挂载光盘来读取光盘的内容;也可以是一个镜像文件,通过挂载镜像文件来读取里面的内容。接下来介绍如何挂载这2种不同类型的存储设备:
创建需要挂载的目录:
mkdir /mnt/cdroom
找到光驱的句柄:
cd /dev
ll
挂载光驱,iso9660是文件系统的规范/标准。
mount -t iso9660 -o ro /dev/cdrom /mnt/cdroom
有的时候设备没有光驱 或者买的软件没有只有镜像文件,就需要直接挂载镜像文件,执行的操作如下:
为当前用户创建存储iso文件的目录 .
选中CRT的某个登陆用户的tab 模块。右键Connect SFTP Session 打开SFTP窗口。
cd /home/Xxx/cdrom
put put -r “/Users/lean/Downloads/CentOS-6.8-x86_64-bin-DVD1.iso”
返回用户的命令窗口,挂载镜像文件。
sudo mount -t iso9660 -o loop CentOS-6.8-x86_64-bin-DVD1.iso /mnt/cdroom
不管是挂载光驱还是镜像文件,实际上都是对原有文件的映射,可以通过卸载的形式来取消映射,命令如下:
umount /mnt/cdroom
[root@mini1 mnt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_mini1-lv_root
18G 3.5G 13G 22% /
tmpfs 491M 224K 491M 1% /dev/shm
/dev/sda1 477M 35M 418M 8% /boot
/dev/sr0 3.7G 3.7G 0 100% /media/CentOS_6.8_Final
[root@mini1 /]# du -sh *
4.0K 1.txt
7.7M bin
32M boot
432K dev
40M etc
792K home
201M lib
28M lib64
...
linux启动/运行的时候,有7个级别, 每个级别都有不同的运行模式,级别的定义在/etc/inittab文件中:
vi /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:5:initdefault:
我们可以以 init X 指定以哪种级别启动系统。
linux服务的管理与windows差不多,无非就是启动服务,关闭服务,查看服务的状态,甚至还可以指定开机的时候对服务的预处理。
service –status-all : 查看系统所有服务的进程状态
[root@mini1 init.d]# service --status-all
abrt-ccpp hook is installed
abrtd (pid 1858) is running...
abrt-dump-oops is stopped
acpid (pid 1581) is running...
atd (pid 1885) is running...
auditd (pid 1366) is running...
automount (pid 1668) is running...
...
service –status-all | grep “ssh” : 搜索系统是否存在某个服务 | 表示管道,后者是在前者的基础上继续搜索的。
[root@mini1 init.d]# service --status-all | grep "ssh"
dnsdomainname: Host name lookup failure
grep: /proc/fs/nfsd/portlist: No such file or directory
openssh-daemon (pid 1715) is running...
service sshd status :查看指定服务的状态
[root@mini1 init.d]# service sshd status
openssh-daemon (pid 1715) is running...
除了查看状态,我们还能够对服务进程进行启动,关闭等。如下启动了静态网页服务,停止了防火墙的功能:
service httpd start
service iptables stop
//检验:http://192.168.7.100/
service iptables restart //重启服务
服务的预操作主要与系统运行级别有关,为了能够让服务实现预操作,我们可以设置如下命令:
[root@mini1 ~]# chkconfig httpd off
[root@mini1 ~]# chkconfig --list | grep httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@mini1 ~]# chkconfig httpd on
[root@mini1 ~]# chkconfig --list | grep httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
当然我们可以指定服务在哪个系统运行级别下的预操作,如下:
[root@mini1 ~]# chkconfig --list | grep httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@mini1 ~]# chkconfig --level 35 httpd off
[root@mini1 ~]# chkconfig --list | grep httpd
httpd 0:off 1:off 2:on 3:off 4:on 5:off 6:off
进程的显示:
[root@mini1 ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 11:13 ? 00:00:02 /sbin/init
root 2 0 0 11:13 ? 00:00:00 [kthreadd]
root 3 2 0 11:13 ? 00:00:00 [migration/0]
root 4 2 0 11:13 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 11:13 ? 00:00:00 [stopper/0]
root 6 2 0 11:13 ? 00:00:00 [watchdog/0]
...
也可以查看某一个服务进程,如下1715是当前进程号,而1是父进程:
[root@mini1 ~]# ps -ef | grep sshd
root 1715 1 0 11:13 ? 00:00:00 /usr/sbin/sshd
root 2873 1715 0 11:18 ? 00:00:00 sshd: hadoop [priv]
hadoop 2877 2873 0 11:18 ? 00:01:58 sshd: hadoop@pts/2
root 10945 1715 0 16:21 ? 00:00:00 sshd: root@pts/1
root 11027 10949 0 16:43 pts/1 00:00:00 grep sshd
杀死某个进程,-9表示强制杀掉 不带任何条件:
[root@mini1 ~]# kill -9 1715