目录 start
目录 end
|2018-06-22| 码云 | CSDN | OSChina
Linux中认为万物皆文件
true > a.txt
sudo apt install lrzsz
cat ~/.ssh/id_rsa.pub | xsel -b
将文件复制到剪贴板free -h
dd if=/dev/zero of=/swapfile bs=1024k count=4096
mkswap /swapfile
swapon /swapfile
/swapfile swap swap defaults 0 0
写入/etc/fstab
文件中,让交换分区的设置开机自启sudo sysctl vm.swappiness=15
临时修改重启注销失效, 查看:cat /proc/sys/vm/swappiness
/etc/sysctl.conf
文件中设置开始使用交换分区的触发值: vm.swappiness=10
10%
才会开始使用交换分区建议,笔记本的硬盘低于 7200 转的不要设置太高的交换分区使用,大大影响性能,因为交换分区就是在硬盘上,频繁的交换数据
sudo swapoff 交换分区文件
sudo swapon 交换分区文件
swapoff -a && swapon -a
参考: 如何在 Linux 中清除缓存(Cache)?
注意要切换到root再运行命令
仅清除页面缓存(PageCache)sync; echo 1 > /proc/sys/vm/drop_caches
清除目录项和inodesync; echo 2 > /proc/sys/vm/drop_caches
清除页面缓存,目录项和inodesync; echo 3 > /proc/sys/vm/drop_caches
if(true){}
都能不执行, 一个变量的值莫名其妙的时刻被修改 )注意加载顺序 /etc/profile -> ~/.*shrc
各种sh的rc文件
bash zsh ash
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
~/.bashrc
添加这段,然后在 .bash_aliases
文件中设置别名
alias Kg.notes='cd ~/Documents/Notes/Code_Notes/'
source ~/.bashrc
不执行命令就重启终端即可 注意你会发现 当前用户 下 Kg.notes 是正常运行的, 但是 sudo Kg.note 就会报错说找不到命令
神奇的是 配置一个别名alias sudo='sudo '
就可以解决这个问题了 stackoverflow 官方说明如下
The first word of each simple command, if unquoted, is checked to see if it has an alias. If so, that word is replaced by the text of the alias.
The characters ‘/’, ‘$’, ‘`’, ‘=’ and any of the shell metacharacters or quoting characters listed above may not appear in an alias name.
The replacement text may contain any valid shell input, including shell metacharacters. The first word of the replacement text is tested for aliases,
but a word that is identical to an alias being expanded is not expanded a second time. This means that one may alias ls to "ls -F", for instance,
and Bash does not try to recursively expand the replacement text. If the last character of the alias value is a space or tab character,
then the next command word following the alias is also checked for alias expansion.
将配置文件分类放
ln -s
pwd/.bash_aliases ~/.bash_aliases
自定义桌面快捷方式文件
[Desktop Entry] #每个desktop文件都以这个标签开始,说明这是一个Desktop Entry文件
Version = 1.0 #标明Desktop Entry的版本(可选)
Name = Firefox #程序名称(必须),这里以创建一个Firefox的快捷方式为例
GenericName = Web Browser #程序通用名称(可选)
Comment = A Web Browser #程序描述(可选)
Exec = firefox %u #程序的启动命令(必选),可以带参数运行,当下面的Type为Application,此项有效
Icon = firefox #设置快捷方式的图标(可选)
Terminal = false #是否在终端中运行(可选),当Type为Application,此项有效
Type = Application #desktop的类型(必选),常见值有“Application”和“Link”
Categories = GNOME;Application;Network; #注明在菜单栏中显示的类别(可选)
/usr/share/applications/
目录下即可cd
cd -
跳转到上一个目录cd !$
把上个命令的参数作为cd参数使用。cd //
系统根目录find
find . -name "*.txt"
查找当前目录的txt后缀的文件sudo find / -name a.java
全盘查找find -type f -name README.md
默认当前目录查找
递归删除目录下所有run后缀的文件
find . -name "*.run" | xargs rm -f
查找文件内容
find etc/ |xargs grep -i java
tree
ls
参数
i
详情a
全部包含隐藏文件 <> A
不显示当前目录和上级目录 .
..
l
使用较长格式列出信息 详细信息h
人类可阅读F
标明文件夹,文件,可执行文件w
100 限制输出每行的字符长度 0 则是无限制 和 l 共用就则无视该限制R
递归显示所有子文件夹r
逆序B
不列出以〜结尾的隐含条目t
按修改时间从顶至下,一般不单用,和 g|l 结合一起用c
按ctime(创建时间)一般是文件夹,文件则是修改时间排列
ls -clt
同上的排列顺序执行ls -l 命令后的输出
ls -lFh
列出所有文件的详细信息, 并且文件大小是人类可阅读的
file
wc
wc [-lmw]
参数说明: -l :多少行-m:多少字符 -w:多少字cat
类似的还有 nl more less
带行号输出 cat -n file
或者 nl file
但是空行不会编号, 除非这样: nl -b a file
nl
less
该命令的导航是和Vi体系一样的, 建议打开大文件使用less或者more 如果用vim,文件全加载到内存了
诸多软件使用到了分页, 怀疑就是借助less实现的, 因为快捷键一模一样, 例如 man命令, 各个软件的-h, git的log 等等..优点很多
tail
tail命令用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。 来自: http://man.linuxde.net/tail
--retry
:即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。此选项需要与选项“——follow=name”连用;-c或——bytes=
:输出文件尾部的N(N为整数)个字节内容;-f或;--follow
:显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效;-F
:与选项“-follow=name”和“--retry"连用时功能相同;-n或——line=
:输出文件的尾部N(N位数字)行内容。--pid=<进程号>
:与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令;-q或——quiet或——silent
:当有多个文件参数时,不输出各个文件名;-s<秒数>或——sleep-interal=<秒数>
:与“-f”选项连用,指定监视文件变化时间隔的秒数;-v或——verbose
:当有多个文件参数时,总是输出各个文件名; tail file (显示文件file的最后10行)
tail +20 file (显示文件file的内容,从第20行至文件末尾)
tail -c 10 file (显示文件file的最后10个字符)
head
查看文件头部, 前十行
grep -vwf 文件1 文件2
rename rename命令的使用(基于perl)
rename "s/.html/.php/" *
//把.html 后缀的改成 .php后缀rename "s/$/.txt/" *
//把所有的文件名都以txt结尾rename "s/.txt//" *
//把所有以.txt结尾的文件名的.txt删掉rename "s/AA/aa/" *
//把文件名中的AA替换成aarename "s/ - 副本/_bak/" *
将文件-副本
结尾改成_bak
结尾chown
chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:用户组名称 文件或目录
chgrp
chgrp group file
ln
ln -s 源文件或目录 目标绝对路径
生成软链接(快捷方式) ln -s `pwd`/a.md ~/a.md
cp
cp -ri 目录或正则 目录
目录所有文件复制过去
rm
rm -rf 目录
不提示性删除
wc
wc [-lmw]
参数说明: -l :多少行-m:多少字符 -w:多少字mv
mv 目录或正则 目录
移动
cat file1 file2 > result
参数 命令 文件
参数
命令
sed -n Np 文件名
sed -in "4i hello" test.md
sed -i "2,4d" test.md
- 截取指定行数到新文件
sed -n ‘开始行数,结束行数p’ info.log > newFile.log
- 修改配置文件中name的值为123
sed -i "s/name=.*/name=123/g" config.conf
awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。
dd if=/dev/zero of=virtual.img bs=1M count=256
查看大小 du -h virtual.img
sudo mkfs.ext4 virtual.img
ls -l /lib/modules/$(uname -r)/kernel/fs
/mnt
:mount -o loop -t ext4 virtual.img /mnt
mount -o loop --ro virtual.img /mnt
sudo umount /mnt
mount [options] [source] [directory]
mount [-o [操作选项]] [-t 文件系统类型] [-w|--rw|--ro] [文件系统源] [挂载点]
mount
sudo fdisk -l
df -h
查看挂载文件系统信息du -sh 目录
查看磁盘占用总大小 h 自动搭配单位(human read )du --max-depth
一级子目录使用情况基本都在
/var/log
下
less /var/log/boot.log
less /var/log/messages
Linux默认自带ZIP压缩,最大支持4GB压缩,RAR的压缩比大于4GB.
tar 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。
下面的参数是根据需要在压缩或解压档案时可选的。
-v 可选
将压缩或解压的过程输出-f 是必须的,-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接文件或目录
tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。
tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,
tar -tf all.tar
这条命令是列出all.tar包中所有文件,
tar -xf all.tar
这条命令是解出all.tar包中所有文件,
-u
是表示更新文件的意思。-r
是表示增加文件的意思。-t
是列出所有文件的意思-x
是解压的意思-p
保留绝对路径符保留文件属性和跟随链接, -p 保留属性 -h 备份的源文件而不是链接本身
tar -cphf etc.tar /etc
tar -cvf jpg.tar *.jpg
//将所有jpg打包成 jpg.tartar -czf jpg.tar.gz *.jpg
//将所有jpg打包成jpg.tar后 生成gzip压缩的包,命名为jpg.tar.gztar -cjf jpg.tar.bz2 *.jpg
//将所有jpg打包成jpg.tar后 生成bzip2压缩的包,命名为jpg.tar.bz2tar -cZf jpg.tar.Z *.jpg
//将所有jpg打包成jpg.tar后 生成umcompress压缩的包,命名为jpg.tar.Z解压
tar -xvf file.tar
//解压 tar包tar -xzvf file.tar.gz
//解压tar.gztar -xjvf file.tar.bz2
//解压 tar.bz2tar -xZvf file.tar.Z
//解压tar.Z压缩
rar a jpg.rar *.jpg
//rar格式的压缩解压
unrar e file.rar
//解压rar压缩
zip images.zip *.jpg
//zip格式的压缩zip -r file.zip code/*
压缩code目录下所有文件
zip -r ./a.zip ./*
压缩当前目录所有文件-q
安静模式, 终端不输出-o
输出文件`-r
表示递归-l
兼容Windows的换行符-e
加密-d filename
在zip中删除某文件 删除某目录dir/*
解压
unzip file.zip
//解压zip
安装 apt install p7zip-full 或者 p7zip man 7z 查看帮助文档
7z <command> [<switches>... ] <archive_name> [<file_names>... ] [<@listfiles>... ]
压缩
解压
*.tar 用 tar -xvf 解压
*.gz 用 gzip -d或者gunzip 解压
*.tar.gz和*.tgz 用 tar -xzf 解压
*.bz2 用 bzip2 -d或者用bunzip2 解压
*.tar.bz2用tar -xjf 解压
*.Z 用 uncompress 解压
*.tar.Z 用tar -xZf 解压
*.rar 用 unrar e 解压
*.zip 用 unzip 解压
Linux 系统配置文件的大致分布
具体配置文件的使用
cat /etc/issue
通用 cat /etc/redhat-release
redhat系
查看内核版本 cat /proc/version
uname -a
/etc/passwd 包含了用户,用户组,用户home目录 shell类型等信息
看第三个参数:500以上的,就是后面建的用户了.其它则为系统的用户.