linux学习基础

1 shell 是一个程序,可以接受命令行的命令,然后传递给操作系统执行。bash是shell命令的加强版。

2 ctrl+alt+f1~f6 终端输入,terminal是一个仿真终端。

3 $普通用户#超级用户。

4 向上箭头可以找出使用过的命令还有向下箭头,当命令行有命令时按下shift+左右箭头可以跳单词前进后退。

5 date cal(calendar)查看剩余空间数量df 查看空闲空间数量free。退出命令行exit。

6 command options arguments

命令    命令参数    命令作用对象

ls – List directory contents 

--#ls /usr     --#ls ~/usr    --#ls -l   /directory    --#ls -a /~    --#ls -lt --revease /~    

d    rwx    -wx    --x 第一个代表文件类型   文件所有者权限 文件所有群权限 文件其他人的权限

1    root root  硬链接数量 文件所有者是谁 文件群所有者是谁

file – Determine file type

file filename 确定文件是什么文件

less – View file contents
ASCLL码 文本文件shell命令也是文本文件 向上 向下 G g                         q退出

pwd - Print name of current working directory    

  cd - Change directory     

文件目录 (一切皆文件)

/根目录,万物起源。
/bin包含系统启动和运行所必须的二进制程序。
/boot

包含 Linux 内核、初始 RAM 磁盘映像(用于启动时所需的驱动)和启动加载程序。

有趣的文件:

  • /boot/grub/grub.conf or menu.lst, 被用来配置启动加载程序。
  • /boot/vmlinuz,Linux 内核。
/dev这是一个包含设备结点的特殊目录。“一切都是文件”,也适用于设备。在这个目录里,内核维护着所有设备的列表。
/etc

这个目录包含所有系统层面的配置文件。它也包含一系列的 shell 脚本,在系统启动时,这些脚本会开启每个系统服务。这个目录中的任何文件应该是可读的文本文件。

有趣的文件:虽然/etc 目录中的任何文件都有趣,但这里只列出了一些我一直喜欢的文件:

  • /etc/crontab, 定义自动运行的任务。
  • /etc/fstab,包含存储设备的列表,以及与他们相关的挂载点。
  • /etc/passwd,包含用户帐号列表。
/home在通常的配置环境下,系统会在/home 下,给每个用户分配一个目录。普通用户只能在自己的目录下写文件。这个限制保护系统免受错误的用户活动破坏。
/lib包含核心系统程序所使用的共享库文件。这些文件与 Windows 中的动态链接库相似。
/lost+found每个使用 Linux 文件系统的格式化分区或设备,例如 ext3文件系统,都会有这个目录。当部分恢复一个损坏的文件系统时,会用到这个目录。这个目录应该是空的,除非文件系统真正的损坏了。
/media在现在的 Linux 系统中,/media 目录会包含可移动介质的挂载点,例如 USB 驱动器,CD-ROMs 等等。这些介质连接到计算机之后,会自动地挂载到这个目录结点下。
/mnt在早些的 Linux 系统中,/mnt 目录包含可移动介质的挂载点。
/opt这个/opt 目录被用来安装“可选的”软件。这个主要用来存储可能安装在系统中的商业软件产品。
/proc这个/proc 目录很特殊。从存储在硬盘上的文件的意义上说,它不是真正的文件系统。相反,它是一个由 Linux 内核维护的虚拟文件系统。它所包含的文件是内核的窥视孔。这些文件是可读的,它们会告诉你内核是怎样监管计算机的。
/rootroot 帐户的家目录。
/sbin这个目录包含“系统”二进制文件。它们是完成重大系统任务的程序,通常为超级用户保留。
/tmp这个/tmp 目录,是用来存储由各种程序创建的临时文件的地方。一些配置导致系统每次重新启动时,都会清空这个目录。
/usr在 Linux 系统中,/usr 目录可能是最大的一个。它包含普通用户所需要的所有程序和文件。
/usr/bin/usr/bin 目录包含系统安装的可执行程序。通常,这个目录会包含许多程序。
/usr/lib包含由/usr/bin 目录中的程序所用的共享库。
/usr/local这个/usr/local 目录,是非系统发行版自带程序的安装目录。通常,由源码编译的程序会安装在/usr/local/bin 目录下。新安装的 Linux 系统中会存在这个目录,并且在管理员安装程序之前,这个目录是空的。
/usr/sbin包含许多系统管理程序。
/usr/share/usr/share 目录包含许多由/usr/bin 目录中的程序使用的共享数据。其中包括像默认的配置文件、图标、桌面背景、音频文件等等。
/usr/share/doc大多数安装在系统中的软件包会包含一些文档。在/usr/share/doc 目录下,我们可以找到按照软件包分类的文档。
/var除了/tmp 和/home 目录之外,相对来说,目前我们看到的目录是静态的,这是说,它们的内容不会改变。/var 目录存放的是动态文件。各种数据库,假脱机文件,用户邮件等等,都位于在这里。
/var/log这个/var/log 目录包含日志文件、各种系统活动的记录。这些文件非常重要,并且应该时时监测它们。其中最重要的一个文件是/var/log/messages。注意,为了系统安全,在一些系统中,你必须是超级用户才能查看这些日志文件。

链接文件:符号链接和硬链接

lrwx-rx--x l 为符号链接文件 指向一个共享文件     

通配符 模式

 匹配对象
*所有文件
g*文件名以“g”开头的文件
b*.txt以"b"开头,中间有零个或任意多个字符,并以".txt"结尾的文件
Data???以“Data”开头,其后紧接着3个字符的文件
[abc]*文件名以"a","b",或"c"开头的文件
BACKUP.[0-9][0-9][0-9]以"BACKUP."开头,并紧接着3个数字的文件
[[:upper:]]*以大写字母开头的文件
[![:digit:]]*不以数字开头的文件
*[[:lower:]123]文件名以小写字母结尾,或以 “1”,“2”,或 “3” 结尾的文件

[:alnum:]匹配任意一个字母或数字
[:alpha:]匹配任意一个字母

 cp  -copy  

cp item1 item2                 cp item...    directory

-r -i -a

 mv – Move/rename files and directories  

mv item1 item2         mv item.....directory              移动或者重命题为item2    

-i 覆盖重复文件 询问  -u 只移动不存在的文件 

 mkdir – Create directories    

mkdir directory...

 rm – Remove files and directories    

rm item...

-i        删除文件前询问 -r    删除目录 -f     忽视询问-v    进行操作时 翔实操作

ln – Create hard and symbolic link

硬链接 ln file link  

缺点: 只能在一个文件系统中,指向的是数据不是引用,所以删除链接不会删除数据,只能是文件不能是目录。直到所有文件删除掉才可以没有数据。

符号链接 ln -s file link

可以跨文件系统,原始文件被删除则失效,可以是目录,这个是硬链接的加强。


命令类型 1 shell命令 (builtins)2 可执行程序命令(在目录/usr/bin或者安装软件) 3 shell程序命令集函数shell脚本 4 别名命令

type command    显示命令类型

which command 程序执行路径 2

help command shell命令说明

command --help  

man command 使用less查看命令说明 q 退出

apropos =man -k 查阅手册  whatis 

type foo 检测foo是否被使用作为命令

alias foo=‘cd /usr;ls;’ 编辑一个自己的别名命令  unalias删除别名  当会话结束则消失,怎么创建一个不会消失的别名命令?

重定向:将标准输出或者标准错误输出(默认为屏幕输出到其他地方)。

标准输出:> 每次会重写 >>追加内容  

--#>file.txt 空的标准输出则意思变为清空file.txt文件     0 1 2标准输入 标准输出 标准错误

--# ll  /usr/bin > file.txt 2>&1 表示先输出标准输出 然后输出标准错误加到file.txt后面

等于 --#ll /usr/bin &>file.txt 

cat 显示文件内容到标准输出上    cat file.txt

cat 可以链接被分割的文件 cat      file0*>file

如果cat 没有带任何参数则等待键盘输入到标准输入 所以cat > file.txt 表示从键盘输入的内容输出到file.txt

管道线 |   表示一个命令的输出作为输入到另一个命令

sort 可以从一个文件 也可以是标准输入 排序 将结果标准输出

uniq 经常和sort一起用去除 重复的输出

wc 计数 显示行数 字数 字节数 标准输出

grep 功能强大 匹配文本 和匹配模式一起用

head   

tail  打印开头或者结尾   标准输出

tee 加在管道线中间可以指定前面的标准输出到多个文件 tee file1 file2.....



echo 打印一行后面的内容到标准输出

打印文本    echo this is a test 打印路径 echo ~ 打印简单算数  echo $((2+2))    打印花括号展开 echo file_{1..5}打印5个这样的东西

花括号还可以嵌套 echo a{A{1,2},B{1,2}}        echo $USER            echo $(ls)     ls -l `which cp` 是执行which up 返回结果等于$(which up)

引用  $100.00 输出00 少个1   $1  被替换成空字符了    双引号 "" 1 阻止单词分割 2 命令有效

单引号  禁止所有的展开  使用 命令无效

转义字符  \  反斜扛 \a  \b \t \n \r \& \$等

clear 清空屏幕  history 

 X 窗口系统

id 用户身份证号    chmod 更改文件模式(权限)    umask更改系统默认权限    su切换用户     sudo以root用户权限执行

chown 更改文件所有者    chgrp更改文件组所有权    passwd 更改用户密码

——#id    uid=500    gid=500 groups=... 用户id   用户组id  所属组

/etc/passwd 定义了用户的信息     /etc/group 定义了用户组的信息  /etc/shadow 定义了每个用户的密码,名字,家目录,uid,gid等 当它改变时 /etc/passwd /etc/group 也改变

文件类型   - 普通文件    d 目录文件    l 链接文件     c 字符设备(按照字符流处理)终端机     b 块设备(数据块处理设备)硬盘     r w x 读写执行    4 2 1 

——#    chmod 755 file    ——#    chmod u-x,go-wx file

umask 设置默认权限     umask值 002  目录权限 775  文件减一  664

 setuid 位(八进制4000)。当应用到一个可执行文件时,它把有效用户 ID 从真正的用户(实际运行程序的用户)设置成程序所有者的 ID。这种操作通常会应用到 一些由超级用户所拥有的程序。当一个普通用户运行一个程序,这个程序由根用户(root) 所有,并且设置了 setuid 位,这个程序运行时具有超级用户的特权,这样程序就可以 访问普通用户禁止访问的文件和目录。很明显,因为这会引起安全方面的问题,所有可以 设置 setuid 位的程序个数,必须控制在绝对小的范围内。

第二个是 setgid 位(八进制2000),这个相似于 setuid 位,把有效用户组 ID 从真正的 用户组 ID 更改为文件所有者的组 ID。如果设置了一个目录的 setgid 位,则目录中新创建的文件 具有这个目录用户组的所有权,而不是文件创建者所属用户组的所有权。对于共享目录来说, 当一个普通用户组中的成员,需要访问共享目录中的所有文件,而不管文件所有者的主用户组时, 那么设置 setgid 位很有用处。

第三个是 sticky 位(八进制1000)。这个继承于 Unix,在 Unix 中,它可能把一个可执行文件 标志为“不可交换的”。在 Linux 中,会忽略文件的 sticky 位,但是如果一个目录设置了 sticky 位, 那么它能阻止用户删除或重命名文件,除非用户是这个目录的所有者,或者是文件所有者,或是 超级用户。这个经常用来控制访问共享目录,比方说/tmp。

chmod u+s program  -rwsr-xr-x                chmod g+s dir   drwxrwsr-x        chmod +t dir drwxrwxrwt

su -     切换用户到家目录登录到shell 

sudo 让用用户暂时拥有root权限去执行程序(安装,卸载,更新等) useradd groupadd 用户增加 用户组增加(在root权限下才可以添加用户) 

进程   ps 进程工作快照            top显示动态的进程任务(和windows 任务管理器很想) jobs 显示活跃任务    bg fg把任务放在前台后台            kill给进程发送一个信号     killall 杀死一个指定进程    shutdown 关机或者重启





阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

linux学习基础

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭