自学Linux之每天收获一点点(持续更新中)

Posted 彩虹过后的羽翼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自学Linux之每天收获一点点(持续更新中)相关的知识,希望对你有一定的参考价值。

命令 -选项 参数
如果选项是一个单词时,选项前面要加2个-
modprobe -r pcspkr   在终端中输入的时候有声音,可以用这个命令屏蔽声音 ,需要root权限

ls 显示目录下的内容,和Windows下的dir命令相当
  ls -l(L的小写) 以长模式显示
  ls -l /usr 查看usr目录下的内容的信息
  ls -ld /usr 查看usr文件夹本身的信息
  ls -1(数字1)当前目录下的内容一行一行显示
  ls -a 显示包含隐藏文件,以.开头的都是隐藏文件
  ls -s 显示文件,以及文件的大小
  ls -1as 选项可以叠加
  ls -sh 显示文件的大小,有单位,能看懂
 
pwd 显示当前所在目录
clear或者crtl+l 清屏,和Windows下的cls命令相当
date 显示日期
  date + %Y 显示年
  date + %m 显示月
  date + %M 显示分
  date -u 101109452017 设置时间为2017年10月11日9点45分
cal 显示日历
  cal 显示这个月分日历
  cal 2016 显示2016年所有的日历
  cal 05 2016 显示2016年5月的日历
bc 计算器
 bc 回车后可以计算
 1/3 开始等于0,因为默认保留小数点0位
 scale=2 设置保留小数点后2位
 quit 退出计算器
history 显示我们之前敲过的命令,默认最多显示1000个
!22 执行history命令中查询出的序号为22的命令

ctrl+a 跳到命令行的开始位置
ctrl+e 跳到命令行的结束位置
ctrl+左箭头 一个单词一个单词的往左跳
ctrl+右箭头 一个单词一个单词的往右跳
ctrl+u 把当前光标到本行开头的字符全部删掉
ctrl+k 把当前光标到本行结束的字符全部删掉
ctrl+c 结束当前命令的执行
ctrl+d 退出终端,相当于exit命令
ctrl+shift+t 打开多个终端,可以用ctrl+d关掉

按住esc,松手时按. 引用上个命令时的参数
touch xx 创建一个xx文本文件
^xx^yy 重新执行上个命令(touch命令),并且创建的文件名改为yy
whatis ls 告诉我ls这个命令的作用,我们可以用来查看不知道的命令
man ls 显示ls这个命令的章节介绍,man这个命令可以用来查看不知道的命令
   输入/boot 高亮显示文章中的boot字
   n 从上往下查看boot
   N 从下往上查看boot
   q 退出
man -k clock 查看有clock关键字的命令,-k表示关键字
man host.allow 查看host.allow文件的作用,以及如何配置

gedit 打开gedit文本编辑器
gedit oo 使用gedit编辑器打开oo文件继续编辑
rm -f oo 删除oo文件
nano 打开nano编辑器
 ctrl+o写入文件,没有文件名的话需要输入文件名
 ctrl+x 退出
sync 把缓存里的数据写入到硬盘中
shutdown 关机,需要root权限
 shutdown -h 10 10分钟后关机
 shutdown -k 10 10分钟后提示关机,并不会真正关机
 shutdown -h 10:50 10:50时候关机
poweroff 关机
 poweroff -f 立马关机,速度很快
reboot 重启
 reboot -f 立马重启,速度很快

七个运行级别在/etc/rc.d目录下
runlevel 查看当前在哪个运行级别,后面数字是当前在的,前面数字是以前在的
init 3 进入第三个级别,需要root权限
init 3 进入命令界面后输入startx命令,会启动图形化界面这个服务,但是当前还是在第3级别
init 5 进入图形化界面,因为第5个运行级别默认图形化界面启动
init 6 重启
init 0 关机

文件系统
/etc/passwd 用户的账户信息都放在这个文件夹下
/etc/shadow 用户的密码信息都放在这个文件夹下
/etc/group 用户的组信息都放在这个文件夹下
系统根据uid来标记用户的,不是根据用户名
ln -s abc.log hh 给sbc.log文件做一个快捷方式,名字为hh
ls -lh 以查模式显示目录,里面文件的大小有单位
  第一列有10个字符
   第一个字符:-:普通文件(二进制文件或文本文件);d:文件夹;b:设备文件(可以用来存储东西的文件)
               c:设备文件(字符型文件,不能用来存储东西); l:快捷方式
   下面九个字符:代表了文件的权限,把这9个字符分成三组,第一组针对文件所有者(用户)
                 第二组针对用户组里的人,第三组针对其他用户,每组有3个字符
                 这三个字符分别是r:读权限,w-写权限,x:执行权限,如果哪一个组少了什么字符,
                 就是没有什么权限         
chmod 更改用户(u),用户组(g),其他人(o)对某一个文件的权限
chmod u+x,g+w,o-r abc.log 更改为:用户对abc.log文件的权限:加上可执行权限
                                  用户组对abc.log文件的权限:加上写权限
                                  其他人对abc.log文件的权限:减去读权限
chmod ug-rw abc.log 更改用户和用户组对abc.log文件的权限:减去读和写权限
  相同的可以写在一起
x权限如果是在一个文件夹上,有x权限的人可以进入这个目录,即可以cd过来
  没有的话不能cd过来
chmod ug=x abc.log 不管用户和用户组以前对abc.log文件有什么权限,这个命令执行过后只有:可执行权限
chmod a=rw abc.log a的意思就ugo的简写
chmod +r abc.log 在+r权限前没有指明是用户或用户组或其他人,默认对用户添加读权限(但本人测试是对三个都加了)
chmod +w abc.log 在+w权限前没有指明是用户或用户组或其他人,默认对用户和用户组添加写权限
chmod +x abc.log 在+x权限前没有指明是用户或用户组或其他人,默认对三个都添加执行权限
我们把r权限当成4,w权限当成2,x权限当成1
如果说用户对某一个文件的权限是数字5,那么就是有r权限和x权限
chmod 743 abc.log 更改用户、用户组、其他人abc.log的权限,分别是rwx、r、rx权限
chmod 000 /usr 更改usr文件夹的权限为000,不会改变文件夹里面内容的权限
chmod -R 555 /usr 更改usr文件夹以及文件夹里面内容的权限为555,-R表示递归
useradd tom 添加一个tom用户
chown tom /abc.log 把abc.log的所有者(用户)改为tom用户
chown tom:tom abc.log 把abc.log文件的所有者和用户组都改为tom
   冒号(:)可以改成点(.)
chgrp root abc.log 把abc.log文件的所属组改为root
chown -R tom /usr 把usr文件夹以及里面的内容的所有者改为tom
chgrp -R tom /usr 把usr文件夹以及里面的内容的所属组改为tom

file abc.log 查看文件的类型
Linux根目录下有很多文件夹
  bin:存放二进制文件
  boot:系统的启动文件(内核的配置文件等)
  dev:存放设备文件,移动硬盘、u盘等
  etc:配置文件
  home:用户的家目录
  lib:链接库文件
  media:系统的自动挂载点
  mnt:手动挂载点
  opt:当我们使用源码包安装时,一般都会安装在这个目录下的某一个文件夹,如果不指名安装的话,默认安装在usr目录下
  proc:指定内核参数
  root:root的家目录,其他用户的家目录都放在home目录下
  sbin:当我们敲命令时,都是存放在这个目录下
  tmp:临时文件
  usr:默认安装路径
  var:日志文件、缓存文件、数据库文件,占用空间比较大

tree /boot 查看boot目录下的树形结构
/usr/aa/bb 绝对路径,从根目录下开始写
.表示当前目录
..表示上层路径
cd ../../../ 当前目录的上层的上层的上层目录
uname 查看内核,Linux
uname -i 查看架构(64位还是32位)
uanme -r 内核版本
uname -a 查看所有信息
lsb_release -a 查看所有信息
cat /etc/redhat-release

cd /usr 切换到usr目录
cd 切换到当前用户的家目录,等同于cd ~
cd ~tom 切换到tom用户的家目录,一般用户的家目录在home下,如/home/tom,root用户的家目录是/root
cd ~/tom 切换到当前用户的家目录下的tom文件夹,由此可见~后面有/和无/的区别
whoami 看当前用户是谁
cd - 切换到上次所在的目录
mkdir xx 创建xx目录
mkdir yy zz 同时创建多个目录
rmdir yy zz 同时删除多个目录,rmdir不能删除非空目录
mkdir -p xx/yy 创建xx目录,xx目录下再创建一个yy目录,-p的意思是xx目录不存在的话就创建
mkdir -p rhca/{xx,yy,zz} 创建rhca目录,在rhca目录下创建三个文件夹
rmdir -p rhca/xx 删除xx目录的同时把rhca目录也删掉,需要删掉xx目录后rhca是空的
rm -rf rhca 把rhca目录删掉,-r表示递归,-f表示强制,不管rhca目录下有没有子目录
echo $PATH 查看系统命令路径
gedit xx.sh 创建一个脚本
./xx.sh 执行当前目录下的xx.sh脚本
sh xx.sh 执行xx.sh脚本
  如果我们直接写xx.sh的话,系统默认到PATH路径下找,因为我们没把这个路径加到系统path变量里,
  报找不到命令的错误,如果我们想直接写xx.sh时能找到,就需要在系统path变量里加上这路径,如/home/sun
PATH="/home/sun" 设置系统的path变量路径为/home/sun,如果我们要更改,应该先获得以前的所有命令,
  然后再加上这个路径,这里仅为方便写了
ls -ld --time=atime /boot 以长模式显示boot文件夹自身的信息,其中的时候等于最后访问时间
ls -ld --time=ctime /boot 以长模式显示boot文件夹自身的信息,其中的时候等于创建时间
ls -R / 列出根目录下的文件,-R表示递归,如果文件夹下面还有文件夹,都显示出来

cp /etc/service /home/sun 把etc目录下的service文件拷贝到home/sun文件夹下,名字还是service
cp /etc/service /home/sun/xx 把etc目录下的service文件拷贝到me/sun文件夹下,重命名为xx
cp -rf /etc /home/sun 把etc目录递归、强制拷贝到sun目录,如果不加-rf,cp无法直接拷贝一个目录
cp -p /etc/service /home/sun 把etc目录下的service文件拷贝到home/sun文件夹下,名字还是service
  不加-p的话不会复制文件的属性信息,如创建时间
cp -a /etc /mnt 把etc目录都复制到mnt里,-a表示all,包含-r/-f/-p
cp -u /etc/service /mnt/service 把etc目录下的service文件复制到mnt目录下的service文件中
  如果etc目录下的service比mnt目录下的service新的话就会复制过去,反之不会复制过去
  如果不加-u的话,会有提示的
cp xx yy 把xx文件拷贝为yy文件,如果xx是快捷方式的话,实际上快捷方式的链接没拷贝过去
cp -d xx yy 加上-d,如果xx是快捷方式,会拷贝过去
rm service 删除service文件
alias 查看别名,比如当我们把rm -i命令取别名为rm,当我们敲rm时,实际执行rm -i
ls /boot/grub/grub.conf 查看/boot/grub/目录下的grub.conf,结果包含路径和文件名
basename /boot/grub/grub.conf 查看文件名,结果只有文件名
dirname /boot/grub/grub.conf 查看文件路径,结果只有路径


我们可以使用cat、tac、head、nl、tail、more、less、od查看文档的内容
cat xx 查看xx文件的内容,从前往后显示全部内容,如果内容非常多的时候,
       我们只能看到最后的东西,由此cat适合查看小文件
cat -n xx 查看文件时把每一行都加上一个编号
tac xx 查看文件的内容,从后往前显示
nl xx 查看文件内容,会在每一行前加上行号,和cat -n xx效果一样
nl -b a hosts,空行前也会加上行号
more xx 从前往后显示文件的内容,分屏显示,按enter再显示一行,按空格再显示一屏
        按q退出
less xx 从前往后显示文件的内容,分屏显示,按enter再显示一行,按空格再显示一屏
        less支持往前看,往后看,pageup往前翻,pagedown往后翻
        home翻到第一页,end翻到最后一页
        输入/然后输入要查找的内容,支持查找,按n往下翻,按N往前翻
        按q退出
head xx 查看xx文件的前几行,默认是10行
head -5 xx 查看xx文件的前5行,等同于-n 5
tail xx 查看xx文件的尾几行,默认是10行
tail -5 xx 查看文件的尾5行,等同于-n 5
tail -f xx 查看文件的尾10行,但是不会退出来,我们可以监测日志文件
tailf xx 等同于tail -f xx,按crtl+c退出
service network restart 重启网络
od -t c /bin/ls -t指明显示类型 c指明用什么显示,c表示Ascii码,用于查看二进制文件
strings /bin/ls 查看文本或二进制文件的内容,强大的功能

touch xx 如果xx文件不存在的话,创建一个新文件,名字叫xx
         如果xx文件存在的话,把这个文件的创建时间和修改时间改为当前时间
ll 等同于ls -l 以长模式显示目录内容
touch -t 20121223152536 xx 把xx的文件时间改为20121223152536
      不加时间,默认当前时间

umask 权限过滤壶,可以查看过滤的权限,默认0002,取后面三位
umask 333 设置权限过滤为333,再进行查看的话就是0333
umask -S 查看保留哪些字符,和umask相反
lsattr xx 查看xx文件的隐藏权限
chattr +a xx 修改xx文件的隐藏权限,+a表示只能添加,不能删除
chattr +i xx 表示这个文件不能更改,不能删除
chattr -a xx 减去隐藏a权限
chattr -i xx 减去隐藏i权限

chmod u+s xx 在一个命令的所有者权限上,出现了s时,其他用户对这个文件操作时,将具有所有者的权限
which passwd 查看passwd这个命令所在的路径,结果为/usr/bin/passwd,也可以查看其他命令的路径
whereis passwd 查看passwd命令的路径,以及包含passwd命令的文件
whereis -b passwd 只看包含二进制文件命令的路径
whereis -m passwd 除二进制文件命令之外的其他命令
locate mmm 列出所有文件名有mmm字段的文件路径
   locate找文件时并不是通过硬盘找的,是通过/var/lib/mlocate/mlocate.db数据库找的
   而这个数据库是每天0点更新一次的
   如果我们想通过locate命令查看刚创建的文件,只需更新一下数据库即可
updatedb 更新数据库
locate -i mmm 查找包含mmm文件名的文件路径,不区分大小写,也就是说MMM也能找到
hostname 查看主机名
echo xxxxx 在屏幕中打印出xxxxx
echo xxx`hostname`yyy 当一个命令嵌套在其他命令中,是不会执行的,除非加上反引号·或$()
echo xxx$(hostname)yyy 执行结果和上个一样
chmod 4644 xx 设置xx文件的权限,644表示正常的权限,开始是4表示给u的位置加个S权限
chmod 2644 xx 设置xx文件的权限,644表示正常的权限,开始是2表示给g的位置加个S权限
chmod 1644 xx 设置xx文件的权限,644表示正常的权限,开始是1表示给o的位置加个T权限

find 目录 -属性 值
find / -name xxx 根据文件名,在根目录下查找文件名为xxx为文件路径
find / -user xxx 根据用户名,在根目录下查找所有者为xxx的文件路径
find / -user xxx -group xxx 根据用户名和所属组,在根目录下查找所有者为xxx,且所属组也为xxx的文件路径

以上是关于自学Linux之每天收获一点点(持续更新中)的主要内容,如果未能解决你的问题,请参考以下文章

自学it18大数据笔记-第二阶段Linux-day1——会持续更新……

2D游戏中常见的碰撞检测处理持续更新

oracle数据库自学笔记(持续更新中……)

工作学习中的一些小的收获(持续更新)

有空就来刷几道5G面试题系列 | 安全(最新更新11月17日,持续更新中)

学习网站推荐之,会持续更新中……