Linux学习(二)
来源:互联网 发布:mac pro可以玩gta5吗 编辑:程序博客网 时间:2024/06/05 19:43
Linux 用户管理
whoami #查看用户sudo adduser lilei #添加用户
$su -l lilei #切换新用户
sudo 是非root用户使用root权限进行工作的命令。用户必须先加入到sudo用户组才可以使用该命令。
$usermod –a –G sudo lilei
-a :添加
-G :用户组
sudo :用户组名称
$ sudo deluser lilei –remove-home #删除用户
Linux文件权限管理
$ ls –l #列出当前文件夹下的所有文件
-l :表示列出文件的详细说明
-A :列出所有文件包括隐藏文件
$ sudo chown shiyanlou /home/yafei/iphone6 #修改文件的所有者为实验楼
$ sudo chmod 700 iphone6 #修改文件的权限为
Linux 目录结构
1、 FHS系统(Filesystem hierarchy standard)
$ tree \ #直观的查看文件的层级信息
2、 目录路径
使用 cd 命令可以切换目录,在 Linux 里面使用 . 表示当前目录,.. 表示上一级目录(注意,我们上一节介绍过的,以 . 开头的文件都是隐藏文件,所以这两个目录必然也是隐藏的,你可以使用 ls -a 命令查看隐藏文件), - 表示上一次所在目录,~ 通常表示当前用户的 home 目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。
Linux 文件操作
touch test #新建文件 mkdir mydir #新建文件夹
$ mkdir -p father/son/grandson #新建文件夹
-p :同时新建父文件夹
cp test father/son/grandson #复制文件 cp -r fatherfile family #复制文件夹(包括其下的所有文件)
-r :递归复制,就是说有点“株连九族”的意思
rm test #删除文件 rm –f test #强制删除文件
-f :强制删除
$ rm -r family #递归删除family文件夹下的文件
-r :递归删除
Mv(move or rename files)
$ mv file1 myfile1 #修改文件file1的名字
cat test #查看文件 cat -n test #添加编号
-n :表示查看时添加行号
$ more test #显示一屏,点击enter键继续查看下一行,q键退出
$ tail /etc/passwd #查看文件的最后几行
$ vim mytest #编辑文件mytest
点击i键开始编辑,Esc键+:键+wq 保存并退出
gedit hello_world.c #创建并编写文件 gcc -o hello_world hello_world.c #编译和执行该文件
linux搜索文件
与搜索相关的命令常用的有 whereis,which,find 和 locate
$ whereis who
whereis 只能搜索二进制文件(-b),man 帮助文件(-m)和源代码文件(-s)。
$ locate /usr/share/*.jpg #查找 .Jpg 文件
-c :只统计数目
-i :忽略大小写
$ which man #查找是否安装某个软件
$ sudo find /etc/ -name interfaces
在/etc/文件夹下查找文件interface文件
-name :表示按照名称查找
-atime :最后访问时间
-ctime :创建时间
-mtime :最后修改时间
• -mtime n:n 为数字,表示为在 n 天之前的“一天之内”修改过的文件
• -mtime +n:列出在 n 天之前(不包含 n 天本身)被修改过的文件
• -mtime -n:列出在 n 天之内(包含 n 天本身)被修改过的文件
• newer file:file 为一个已存在的文件,列出比 file 还要新的文件名
zip压缩打包、unzip解压文件程序
$ file shiyanlou.zip
-r :递归文件夹内的所有文件
-q :静默安装quiet
-o :输出最后打包后的名称
-h :以利于人读取的方式输出文件的大小
-n :(1-9)设置文件的压缩级别
$ zip -r -l -o shiyanlou.zip /home/shiyanlou #压缩文件
-l :表示压缩文件可以再widows系统中打开,否则因格式问题无法打开(换行符不同)
$ unzip -q shiyanlou.zip -d ziptest #解压到指定文件中
-d :目录不存在,将会自动创建
$ unzip -l shiyanlou.zip #只查看文件不解压文件
磁盘管理
df #查看磁盘的容量 du # 默认同样以 blocks 的大小展示
du -h -d 0 ~ # 只查看1级目录的信息 du -h -d 1 /home # 查看2级
~ :表示当前用户目录等同于 /home/user
-h :表示以人可以读取的方式显示
-d :显示文件的深度
帮助命令
help exit #查看exit命令的用法
Help:命令用来查看内建命令(linux系统启动时就被加载到内存中的程序可由shell直接调用运行) ls –help #查看外建命令的帮助
man ls #查看ls的用法,man没有内建外建命令的区分 info ls #查看ls命令的说明和用法
Linux任务计划crontab
鸟哥私房菜 linux学习的法门!!!
http://linux.vbird.org/linux_basic/0430cron.php
crontab :定时、周期性的执行命令
crontab -e #开始编辑需要定时执行的命令,添加任务 crontab -l #查看当前任务
/1 * * * touch /home/shiyanlou/$(date +\%Y\%m\%d\%H\%M\%S)
* * * * * user-name command to be executed
Min hour day mon day(周一-周日) 命令
ps aux | grep cron #开启crontab pgrep cron #开启crontab
$ sudo tail -f /var/log/syslog #查看系统日志中命令执行的过程
命令执行顺序的控制
$ sudo apt-get update;sudo apt-get install some-tool;some-tool
顺序执行多条命令,使用分号分割(;)
&&和||结合起来使用,那么是否以任意顺序。
管道
进程间的通信,(也可通过socket进行网络通信),它表现出来的形式就是将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。
$ ls -al /etc | less #ls的输出结果作为less命令的输入
其中符号竖线(|)表示管道。
wc 命令,简单小巧的计数工具
$ wc /etc/passwd #输出该文件的行数,单词数,字节数
-l :统计行数
-w :统计单词数
-c :统计字符数
sort 排序命令
$ cat /etc/passwd | sort -t’:’ -k 3 #第三列按照默认的顺序排序
-t :表示将每行文本如何分割,这里按照冒号分割
-k :按照第几列进行排序,这里后面的参数选择的时3,因此是按照第三列进行排序。
文本处理命令
删除 “hello shiyanlou” 中所有的’o’,’l’,’h’
$ echo ‘hello shiyanlou’ | tr -d ‘olh’
将”hello” 中的ll,去重为一个l
$ echo ‘hello’ | tr -s ‘l’
-d :表示删除所有的和后面匹配的字符,与顺序无关
-s :去重
合并命令
join file1 file2 #将文件1和文件2合并 paste -d ‘:’ file1 file2 file3
-d :指定分隔符为冒号,默认根据tab键进行分割
$ paste -s file1 file2 file3
-s :合并文件,每个占用一行
重定向
echo ‘hello shiyanlou’ > redirectfile #将文件重定向 cat redirectfile #读取重定向后的文件
(>):表示重定向符号
正则表达
(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。
实验楼的参考文档:https://www.shiyanlou.com/courses/1/labs/354/document
参数 说明
-b 将二进制文件作为文本来进行匹配
-c 统计以模式匹配的数目
-i 忽略大小写
-n 显示匹配文本所在行的行号
-v 反选,输出不匹配行的内容
-r 递归匹配查找
-A n n为正整数,表示after的意思,除了列出匹配行之外,还列出后面的n行
-B n n为正整数,表示before的意思,除了列出匹配行之外,还列出前面的n行
–color=auto 将输出中的匹配项设置为自动颜色显示
grep –c shiyanlou test #test文件中匹配字符串(shiyanlou)有几处 grep –i –n c test #匹配test中与字母c相匹配的地方所在的行及其行号。
软件安装
sudo apt-get install w3m #安装简易网页
apt是Advance Packaging Tool(高级包装工具)的缩写,apt-get 工具会在本地的一个数据库中搜索关于 w3m 软件的相关信息,并根据这些信息在相关的服务器上下载软件安装。我们需要定期从服务器上下载一个软件包列表,使用 sudo apt-get update 命令来保持本地的软件包列表是最新的。 sudo apt-get –reinstall install w3m # 重新安装
$ sudo apt-get remove w3m #卸载软件
使用 dpkg 安装软件
从本地的使用 dpkg 从本地磁盘安装 deb 软件包,dpkg 本身是一个底层的工具。上层的工具,像是 APT,被用于从远程获取软件包以及处理复杂的软件包关系。”dpkg”是”Debian Package”的简写。(dpkg并不能为你解决依赖关系)
sudo dpkg -i emacs24_24.3+1-4ubuntu1_amd64.deb #安装指定包
-i :安装指定.deb软件包 sudo apt-get -f install #修复依赖关系进行安装
-f :修复依赖关系强制安装
dpkg 命令
-i 安装指定deb包
-R 后面加上目录名,用于安装该目录下的所有deb安装包
-r remove,移除某个已安装的软件包
-I 显示deb包文件的信息
-s 显示已安装软件的信息
-S 搜索已安装的软件包
-L 显示已安装软件包的目录信息
二进制包安装
从网络上下载的二进制包解压后放到合适的目录,然后将包含可执行的主程序文件的目录添加进PATH环境变量即可
Linux进程
进程(process)进程是程序在一个数据集合上的一次执行过程。
并发在一个时间段内,宏观来看有多个程序都在活动,有条不紊的执行
并行在每一个瞬间,都有多个程序都在同时执行,这个必须有多个 CPU 才行
线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。因为线程中几乎不包含系统资源,所以执行更快、更有效率。
Bash (GNU Bourne-Again Shell) 是许多Linux发行版的默认Shell。参考:
http://baike.baidu.com/link?url=BLYpDbC3bULTkZLKyHs6DftSbksSfdJHI_vCrsUzgbMPiLEn0kTsxGVKPGiBQPju-irufQWpNftLPipEdneR3a
Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。分为:图形界面shell(windows, mac等),命令行shell。
进程的查看
$ top #实时查看进程运行状态
load average: 0.29,0.20,0.25 分别对应1、5、15分钟内cpu的平均负载
ps aux #罗列出所有的进程信息 pstree #查看所有进程的之间的相关性
PR 与 nice 来控制进程的优先级,nice 值可以调整的范围是 -20 ~ 19
- Linux 学习(二)
- Linux学习(二)
- linux学习(二)
- linux学习(二)
- linux学习(二)
- Linux学习(二)
- Linux学习(二)
- linux 学习 (二)
- Linux 学习(二)
- Linux学习(二)
- linux学习(二)如何学习linux
- Linux Socket学习(二)
- Linux学习笔记(二 )
- linux学习笔记(二)
- Linux学习笔记(二)
- linux学习杂记(二)
- linux多线程学习(二)
- Linux初步学习 (二)
- 由bt被关有感
- 机器学习中关于判断函数凸或凹以及最优化的问题
- 结构体的三钟定义
- PHP类和对象
- Spring3 MVC请求参数获取的几种方法
- Linux学习(二)
- 用python改变目录里所有图片的尺寸
- [Paper 资源帖]ICML 2017中有关GAN的Paper
- 结构体定义的三钟方式
- 数组的排序
- Spring--ssm整合(分)
- 开发微信公众号授权失败
- javascript 学习笔记
- 目标跟踪之相关滤波:CF及后续改进篇